This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CCS/TMDSEMU110-U:CCSv7 OMAP-L138_LCDK.gel 脚本报告使用 XDS110写入目标时出错

Guru**** 2587365 points
Other Parts Discussed in Thread: OMAP-L138

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/607700/ccs-tmdsemu110-u-ccsv7-omap-l138_lcdk-gel-script-reports-error-writing-to-target-with-xds110

器件型号:TMDSEMU110-U
主题中讨论的其他器件:OMAP-L138OMAPL138

工具/软件:Code Composer Studio

配置:CCSv7 / XDS110 / LCDKOMAPL138 / StarterWare UART 示例(或任何其他应用)

以下日志显示了调试会话失败、显示访问 DDR 存储器时出现问题。 根据 XDS 功能 wiki

"如果您的 XDS 不支持自适应时钟、则可能需要适配器来实现器件的全 JTAG 运行速率。 如果 XDS 不支持自适应时钟、则以低于 ARM 功能时钟速率1/8的 TCK 速率运行 XDS 也是一个选项。"

但即使在最低频率(100kHz)下、结果也不会更好。 参见第二个日志。  

1) 1)默认配置下的控制台输出(CCS 目标配置窗口)

============================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================
ARM9_0:输出:   目标已连接。
ARM9_0:输出:-------------------------------------------------------    
ARM9_0:输出:   存储器映射被清除。
ARM9_0:输出:-------------------------------------------------------    
ARM9_0:输出:   存储器映射设置完成。
ARM9_0:输出:-------------------------------------------------------    
ARM9_0:输出:   PSC 启用完成。
ARM9_0:输出:-------------------------------------------------------    
ARM9_0:GEL:执行 OnTargetConnect()时出错:目标写入0x01C11138失败
   AT (*(unsigned int *)(0x01C11000 + 0x138))|=0x1)[OMAP-L138_LCDK.gel:16]
   在 DEVICE_PLL0 (0、24、1、0、1、 11、5)[OMAP-L138_LCDK.gel:403]
   在 SET_Core_300MHz ()[OMAP-L138_LCDK.gel:468]
   在 Core_300MHz_mDDR_150MHz ()[OMAP-L138_LCDK-GEL:245]
   在 OnTargetConnect()
ARM9_0:文件加载器:验证失败:地址0xC1080000处的值不匹配请验证目标存储器和存储器映射。
ARM9_0:GEL:文件:C:\ti\OMAPL138_StarterWare_1_10_04_01\build\armv5\cgt_ccs\omapl138\lcdkOMAPL138\UART\Debug\uartEcho.out:发生数据验证错误、文件加载失败。
ARM9_0:无法终止存储器下载:0x320处的缓冲器指针为空

============================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================

2) 2) JTAG TCLK = 100kHz 时的控制台输出。

============================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================
ARM9_0:输出:   目标已连接。
ARM9_0:输出:-------------------------------------------------------    
ARM9_0:输出:   存储器映射被清除。
ARM9_0:输出:-------------------------------------------------------    
ARM9_0:输出:   存储器映射设置完成。
ARM9_0:输出:-------------------------------------------------------    
ARM9_0:输出:   PSC 启用完成。
ARM9_0:输出:-------------------------------------------------------    
ARM9_0:GEL:执行 OnTargetConnect()时出错:目标写入0x01C11138失败
   AT (*(unsigned int *)(0x01C11000 + 0x138))|=0x1)[OMAP-L138_LCDK.gel:16]
   在 DEVICE_PLL0 (0、24、1、0、1、 11、5)[OMAP-L138_LCDK.gel:403]
   在 SET_Core_300MHz ()[OMAP-L138_LCDK.gel:468]
   在 Core_300MHz_mDDR_150MHz ()[OMAP-L138_LCDK-GEL:245]
   在 OnTargetConnect()
ARM9_0:错误:(错误-1060 @ 0x2E18)器件未响应请求。 重置设备、然后重试此操作。 如果错误仍然存在、请确认配置、对电路板进行下电上电和/或尝试更可靠的 JTAG 设置(例如、较低的 TCLK)。 (仿真包6.0.628.3)
ARM9_0:错误:(错误-1029 @ 0x2B5F)从 ICECrusher 寄存器读取的数据无效。 重置设备、然后重试此操作。 如果错误仍然存在、请确认配置、对电路板进行下电上电和/或尝试更可靠的 JTAG 设置(例如、较低的 TCLK)。 (仿真包6.0.628.3)
ARM9_0:20次尝试后无法确定目标状态
ARM9_0:在断开连接之前无法从目标中删除调试状态。  程序存储器中仍可能嵌入了断点运算代码。  建议您在连接之前重置仿真器、并在继续调试之前重新加载程序
============================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================

是否有人确认 XDS110与 OMAPL138搭配使用时表现良好?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Josh、

    我刚刚尝试了 XDS110和我的 OMAPL138 LCDK、我能够在 ARM9和 DSP 上加载和运行简单的程序。

    我确实看到了与您看到的第一个错误相同的错误:
    ARM9_0:GEL:执行 OnTargetConnect()时出错:目标写入0x01C11138失败
    AT (*(unsigned int *)(0x01C11000 + 0x138))|=0x1)[OMAP-L138_LCDK.gel:16]
    在 DEVICE_PLL0 (0、24、1、0、1、 11、5)[OMAP-L138_LCDK.gel:403]
    在 SET_Core_300MHz ()[OMAP-L138_LCDK.gel:468]
    在 Core_300MHz_mDDR_150MHz ()[OMAP-L138_LCDK-GEL:245]
    在 OnTargetConnect()

    但我没有得到其他误差。 我将会看到我是否可以找到 Starterware 示例并进行试用。

    此致、
    John
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如果我使用 StarterWare 示例、我可能会遇到与您相同的错误。 这些负载加载到 DDR、这是有意义的、因为我们看到的第一个错误是 DDR 上的 setrrupt。 我将尝试其他一些调试探针、看看问题是否与探针有关。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如果我使用 XDS100v2、则 DDR 初始化成功完成、并且能够将程序加载到 DDR 中。 我需要咨询 XDS110专家、了解这是否是自适应时钟的限制。



    ARM9_0:输出:目标已连接。
    ARM9_0:输出:-------------------------------------------------------
    ARM9_0:输出:存储器映射被清除。
    ARM9_0:输出:-------------------------------------------------------
    ARM9_0:输出:存储器映射设置完成。
    ARM9_0:输出:-------------------------------------------------------
    ARM9_0:输出:PSC 启用完成。
    ARM9_0:输出:-------------------------------------------------------
    ARM9_0:输出:针对内核:300MHz、EMIFA:25MHz 完成 PLL0初始化
    ARM9_0:输出:DDR 初始化正在进行中....
    ARM9_0:输出:针对 DDR:150MHz 完成 PLL1初始化
    ARM9_0:输出:使用 DDR2设置
    ARM9_0:输出:完成150MHz 的 DDR2初始化
    ARM9_0:输出:-------------------------------------------------------
    ARM9_0:输出:DSP 唤醒完成。
    ARM9_0:输出:-------------------------------------------------------
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢 Johns、
    以前、我将 XDS200与另一个 OMAPL138LCDK 结合使用、一切都很顺利。 这次、当 TI 支持人员告诉我 XDS110即将取代 XDS100系列(v1、v2、v3)时、我即将购买 XDS100v2 ...
    我可以确认、当我构建一个"Hello World"示例、将程序加载到共享 RAM 中时、即使出现与您第一次尝试类似的错误日志、它也能正常工作。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    通常、XDS110是 XDS100的替代产品。 但是、对于我们的一些使用自适应时钟的旧版 ARM926器件、如 OMAPL138、这可能是一个问题。 XDS200和 XDS560v2支持自适应时钟。 我认为 XDS100v2也能以非常低的频率工作。 我今天将尝试确认这一点。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我刚才确认、此探针对于具有带自适应时钟的 ARM926内核的 OMAPL138等器件不会很好地工作。 我将确保我们的网页得到更新以反映这一点。

    此致、
    John
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    好的、再次感谢。
    现在、我手中有一个无用的探针、并将购买 XDS200。 客户服务能否收回我的 XDS110?
    此致、
    J.W.
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Josh、

    我们应该能够找出一些东西。 我将向您发送一个朋友请求、我们可以离线通话。

    John
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    很好、提前感谢。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Josh、

    如果您希望在发送 XDS200的同时继续使用 XDS110、则需要提供一个额外的详细信息。 当寄存器 PLLCMD 设置为重新锁定 PLL 时、XDS110将失去与器件正确通信的能力-这发生在 OMAP-L138_LCDK.gel 的第716行。

    在本例中、将 GEL 例程转换为 C (实际上很容易将 GEL 转换为 C)并将其包含在项目中可以帮助您解决此问题、因为 XDS110不需要经历 PLL 引起的时钟转换 (因此不会失去对目标的读取/写入的同步/能力)。  

    为了供您参考(以及其他对本次讨论感兴趣的人)、我发送了一个附加的小型项目、该项目在我的 LCDK 上运行、并在两个文件中执行整个 GEL 初始化:init.c 和 init.h

    此致、

    拉斐尔

    e2e.ti.com/.../OMAPL138_5F00_Test.zip

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Raphael、
    您的示例项目似乎可以正常运行... 但是、我建议您尝试 StarterWare 或任何其他将程序加载到 DDR 存储器中的示例工程。 您可能会重现我们所讨论的问题。 事实上、当我通过用 DDR2替换 SHRAM 来修改 OMAPL138.cmd 时、我可以得到以下结果:
    --------------------------------------------------
    ARM9_0:文件加载器:验证失败:地址0xC0000000处的值不匹配请验证目标存储器和存储器映射。
    ARM9_0:GEL:文件:C:\work\0016-agx\OMAPL138_Test\OMAPL138_Test\Debug\OMAPL138_Test.out:发生数据验证错误、文件加载失败。
    ARM9_0:无法终止存储器下载:0x320处的缓冲器指针为空
    --------------------------------------------------
    尽管如此、正如您为供我参考而提到的、现在我可能更了解 GEL 脚本的用途。
    谢谢。

    J.W.
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Josh、

    我理解这一点,而且应该更清楚。 我发送给您的项目会执行硬件初始化、因为 CCS 调试器会通过 GEL 文件完成、这涉及到配置 PLL、DDR 等

    因此、在加载此代码并运行该代码直至其完成初始化后、您应该准备好完全配置的硬件和外设(DDR、PLL 等)以加载任何使用 DDR 存储器的可执行文件-包括 Starterware 项目。 只要您在加载代码之前(或之后)不重置器件、这是正确的、因为必须重新完成硬件初始化。

    本练习说明了在开发的后续阶段您将为生产代码执行的操作-毕竟、 对于独立产品、您将无法使用整个调试基础架构来"启动处理器"、因此我发送的项目中提供的初始化文件仍然有用。

    我希望我的事情不会过于复杂、但可以随时提出进一步的问题。

    此致、
    拉斐尔
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    好的、Rafael、

    我没有明白这个想法。 真有意思。 使用示例项目,我可以执行硬件初始化,然后切换到另一个项目,并在不使用 GEL (“目标配置”窗口中的“初始化脚本”字段)的情况下对其进行调试(使用 XDS110)。

    以前、我将 AIS 引导加载程序用于独立软件、但没有查看 GEL 在调试环境中的作用。 现在很清楚。

    此致。
    J.W.