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 调试器

Guru**** 2382480 points
Other Parts Discussed in Thread: TMDSEMU110-U, TMS570LS0432, LAUNCHXL-TMS57004, RM48L952, HALCOGEN, LAUNCHXL2-570LC43, RM42L432, RM46L852, SEGGER
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/913701/ccs-tmdsemu110-u-debugger

主题中讨论的其他器件:TMDSEMU110-UTMS570LS0432LAUNCHXL-TMS57004RM48L952HALCOGENLAUNCHXL2-570LC43RM42L432RM46L852SEGGER

工具/软件:Code Composer Studio

您好、TI 团队、

我使用的 是 CCS10、MS570ls0432和 TMDSEMU110-U 调试器。 调试器模式为 JTAG。  当我开始调试过程时、调试器固件已自动更新为3.0。  

我在表达式窗口中添加了一个全局变量、当程序运行时、即使  按下了持续刷新、全局变量也没有定期更新。 仅当我按下暂停按钮或程序点击断点时、才能更新该变量。 当我将 TMS570ls0432演示板与板载调试器一起使用时、调试器将在 程序运行时持续刷新表达式窗口中的全局变量。 请提供一些建议。 谢谢。

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

    您好!

    如果您使用的是 LAUNCHXL-TMS57004、它会使用 XDS100v2调试探针、该探针目前比 Cortex R 内核上的 XDS110更快。 要获得基准测试结果、请查看 JTAG 基准测试页面、网址为:  

    https://software-dl.ti.com/ccs/esd/documents/application_notes/appnote-debug_probe_performance_results.html

    因此、在与 XDS110配合使用时、正在努力提高这些内核的性能、而仿真软件包的8月份版本应该有所改进。 这在增强报告 EXT_EP-8977上报告(在下面签名的 SIR 链接中检查其状态)。

    此致、

    拉斐尔

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

    [引用 user="desouza)]为此,在与 XDS110配合使用时,正在努力提高这些内核的性能,而仿真软件包的8月份版本应该有所改进。 [/引述]我将 Judy 的问题视为功能问题、而不是性能问题。

    即、对于 XDS100v2、全局变量的持续刷新在程序运行时有效、但在使用 XDS110时无效。

    虽然我没有 可以连接到 XDS110 的 TMS570LS0432、但我将尝试重复 RM48L952的问题。

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

    [引用用户="Chester Gillon">虽然我没有 可以 连接到 XDS110的 TMS570LS0432、但我将尝试使用 RM48L952来重现此问题。 使用 RM48L952、使用 CCS 10.0.0.00010和 TI 仿真 器9.2.0.00002、我无法重复此问题。 使用以下任一调试探针时、当程序正在运行时、CCS 表达式视图能够持续更新全局变量的值:

    • XDS100v2
    • XDS110
    • XDS200

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

    您好、Rafael、

    感谢您的回复。

    是的、启动板使用 XDS100v2板载调试器。 我们的客户电路板使用 JTAG 接口。 我阅读了您发送的链接、您是说 Hercules MCU 上的 XDS110 JTAG 不支持实时图像更新吗? 此功能将在8月更新? 谢谢

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

    切斯特、您好!

    这是我的问题、它是功能而不是性能。 我使用的软件版本相同、但 MCU 为 TMS570ls0432。

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

    切斯特、您好!

    我附加了屏幕截图和调试器连接日志。第一个屏幕截图显示 程序运行时没有更新、 同时按下了"保持刷新"。 第二个示例显示、如果我按下暂停按钮或程序命中断点、数据已更新。 谢谢。

    e2e.ti.com/.../8446.testBoard.dat

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

    [引用 user="Judy Zhu"]第一个屏幕截图显示 程序运行时没有更新, 同时按下了“保留”按钮。 [/报价]过去、当目标正在运行时、持续刷新出现问题而无法正常工作时、会显示错误、例如"执行状态阻止访问"。

    但是、在您的情况下不会显示错误。

    您能否尝试捕获  工作案例(使用 XDS100v2)和故障案例(使用 XDS100)的 CCS 调试服务器日志?

    Debug Server Logs 可能会显示此问题。

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

    切斯特、您好!

    我附加了日志(使用 XDS110)、该板是客户电路板、它仅具有 JTAG 接口、没有 XDS100v2。 谢谢。

    e2e.ti.com/.../debugFail_5F00_log.zip

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

    [引用 user="Judy Zhu">我附加了日志(使用 XDS110)、该板是客户板、它仅具有 JTAG 接口、没有 XDS100v2。查看日志、我可以看到目标运行时的 GTI_READMEM_ITH_STAT 调用不会返回错误。 例如:

    0x00003940 61080 3 CortexR4轮询 C:使用 STATE 状态读取和状态 EVENT_DSP_RUN
    进行轮询0x00003940 61080 3 CortexR4 GTI C:GTI_READMEM_WIT_STAT (0x000002B7AC3DE2E0、0x08005020、0x00000000、0x00000004、0x00000003、0x00000003、 "RAM"、0x00000000、0x00000000、* 0x000002B7AD4351C = 0x000000BA、0xFFFFFFFF、 *0x000002B7AD45551C ={ 0、0x00000000 })
    0x00003940 61081 3 CortexR4 GTI R:GTI_READMEM_ITH_STAT (0x000002B7AC3DE2E0、0x08005020、0x00000000、0x00000004、0x00000003、 "RAM"、0x00000000、0x00000000、* 0x000002B7AD4351C = 0x000000BA、0xFFFFFFFF、 *0x000002B7AD45551C ={ 0、0x00000000 })= 0x00000000 

    这解释了 CCS 表达式视图不报告错误的原因。

    [引用 user="Judy Zhu">我附加了屏幕截图和调试器连接日志。第一个屏幕截图显示 程序运行时没有更新、 并按了相应的刷新。我从您的第一个屏幕截图中注意到的内容、 调试服务器日志是、当目标运行时、XDS110返回目标存储器的十六进制值"0xBAD0"。 从快速搜索中、我认为值"0xBAD0"意味着存储器读取由于某种原因 n 失败、但目前不确定发生错误的时间点(例如在 CCS 调试服务器或 XDS110探针中)。

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

    切斯特、您好!

    上周我收到了两个 XDS110探针。 我尝试了这两种方法、都是相同的问题。  我还尝试重新安装 CCS 10、但运气不好。 此问题是否与 MCU 存储器锁定有关? 如何解锁? 谢谢!

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

    [引用 USER="Judy Zhu']此问题是否与 MCU 存储器锁定有关?[/引用]我无法确定在目标运行时 XDS110返回0xBAD0数据值的原因。 我希望 Rafael 或 TI 的其他人能够确定这一问题的重要性。

    "存储器锁定"是什么意思?

    您的运行程序是否启用了 MPU 或任何其他保护机制?

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

    切斯特、您好!

    感谢您的支持。 我不会在程序中启用任何 MPU 功能。 我们使用由 Halcogen 生成的 FreeRTOS 代码。

    这是我们的调试器接口。 请您复查一下。 谢谢!

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

    [引用 user="Judy Zhu"]这是我们的调试器接口。 [/引用]我唯一的评论是、3.3V 和 P6引脚5之间的10K R206看起来很高、即仿真器的 VTRef。  仿真和跟踪接头技术参考手册中的建议 是在目标电源和 VTRef 之间使用一个100欧姆限流电阻器。 但是、如果 XDS110的唯一问题是持续刷新无法正常工作、则 R206的值可能不是问题的原因。

    您还可以尝试降低 XDS110的 JTAG TCLK 频率(MHz)、 请参阅 software-dl.ti.com/.../emu_xds110.html

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

    切斯特、您好!

    我已经尝试设置不同的 TCLK 频率、但运气不好。  

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

    Judy、

    对于"消失"、请道歉。 我同意这个问题看起来可以正常工作、但它可能与电路本身相关、从而限制或破坏数据传输- XDS100v2和 XDS110具有不同的 JTAG 线路驱动器、因此取决于电路本身的变体。  

    查看原理图、除了 Chester 的建议、我还会移除电阻器 R203、R204、R206、R207 -它们会使 JTAG 信号降级。 相关信息不仅显示在 LAUNCHXL-TMS57004原理图上、还显示在我们的参考设计指南上、该指南在 XDS 目标连接指南的目标连接设计一节中提供、网址为:

    https://software-dl.ti.com/ccs/esd/documents/xdsdebugprobes/emu_xds_target_connection_guide.html

    请注意、我还会将 R208和 R210降低至4.7kΩ Ω、但这与手头的问题并不实际相关。  

    在这些隔离时间内、我无法访问我的 TMS570LS0432 Launchpad、但我在 LAUNCHXL2-570LC43上进行的测试未揭示 XDS100v2和 XDS110调试探针之间在访问表达式视图上的全局变量方面的任何差异。 我也在使用一个 HalCoGen FreeRTOS 项目。  

    最后一个注释:如果您在 Expressions 视图中标记局部变量、请记住、它们将更改其值或根据调试上下文消失、因此可能会假设尝试访问无效存储器位置的错误值。 对 BAD0值的解释显示在 Chester 的另一个线程上:

    https://e2e.ti.com/support/tools/ccs/f/81/t/914953 

    希望这对您有所帮助、

    拉斐尔

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

    感谢 Rafael 和 Chester 的支持。  

    我们将尝试您的建议

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

    [引用用户="Chester Gillon">虽然我没有 可以 连接到 XDS110的 TMS570LS0432、但我将尝试使用 RM48L952来重现此问题。获得 了 TMS570LS0432、 然后、当 CCS 10.1在程序运行时尝试对全局变量执行连续刷新时、会在使用时显示0xBAD0:

    • LAUNCHXL-TMS57004上的内部 XDS100v2
    • 外部 XDS100v2
    • 外部 XDS110
    • 一个外部 XDS200

    我记得先前的线程 "="" for="" memory="" or="" expression="" views="" to="" work="" hercules="" devices"="">无法获得 CCS 6.1"连续刷新"、因为存储器或表达式视图无法用于 Hercules 器件 、而对于 RM42器件、在目标运行时无法进行连续刷新、原因是:

    [引用]关于 RM42和 RM46之间差异的一个注意事项:RM42没有连接功能路径以允许通过 DAP 访问存储器映射。[/引用]我认为 TMS570LS04x 器件可能具有与 RM42器件相同的限制。

     当 TMS570LS0432在项目属性 Debug -> Auto Run and Launch Options -> Realtime Options 下运行时、我唯一能够持续刷新以显示变量的方法是启用"Halt the target before any debugger access (will impact access of interrupts)"选项、 但这会影响实时性能、因为 CCS 调试器必须一直暂停、然后恢复目标。

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

    切斯特、

    RM42L432是 TMS570LS0432器件的小端字节序变体、而该器件又与 Judy 的器件相同、因此它肯定会对此进行解释。

    遗憾的是、在这些器件内部实现的小型设计选择有时难以跟踪、尤其是因为这些器件在其 JTAG 路由上清晰地显示了 DAP (这通常允许在没有 CPU 干预的情况下进行存储器访问)。  

    [quote user="Chester Gillon">在 TMS570LS0432 运行时、唯一能够持续刷新以显示变量的方法是在项目属性 Debug -> Auto Run and Launch Options -> Realtime Options 是启用"Halt the target before any debugger access (will impact Servicing of interrupts)"选项、 但这会影响实时性能、因为 CCS 调试器必须一直暂停、然后恢复目标。[/quot]

    这当然是针对这种情况的权变措施、但它肯定会损害实时功能。  

    谢谢、

    拉斐尔

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

    [引用 user="desouza">不幸的是、在这些器件内部实现的小设计选择有时难以跟踪、尤其是因为这些器件在其 JTAG 路由上清晰地显示了 DAP (通常允许在没有 CPU 干预的情况下进行存储器访问)。  [/引述]我认为区别在于 器件上是否连接了 DAP 上的 AHB-AP 接口。

    例如、当目标运行时不允许存储器访问的 TMS570LS0432器件的数据表中没有显示 DAP 上的 AHB-AP 接口:

    RM46L852的数据表 确实允许在目标运行时进行存储器访问、而 DAP 上的 AHB-AP 接口为:

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

    切斯特、

    [引述 USER="Chester Gillon"]我认为区别在于 设备上是否连接了 DAP 上的 AHB-AP 接口。[/QUERP]

    很好地发现了;考虑到 AHB 允许通过调试端口(参考)进行高速访问、您可能是对的、但它仍然几乎是一个大文档上的"脚注"。  

    我解析了 TRM、发现 RM46x 提到了 AHB 及其与 VBUSM 的互连(图2-1以及更深入的文本)、而 TMS570LS04x/03x 更简单、没有 AHB 访问端口。 无论如何、我都错过了有关调试子系统的完整章节(例如、我可能可以在 Keystone II 器件中找到该章节)。

    谢谢、

    拉斐尔

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

    [引用 user="desouza)]我解析了 TRM 并发现 RM46x 引用了 AHB 及其与 VBUSM 的互连(图2-1以及更深入的文本)、而 TMS570LS04x/03x 在没有 AHB 访问端口的情况下要简单得多。 当我将 Segger J-Link 与 CCS 10.1一起使用时、每次执行停止时(例如、在一个步骤或达到一个断点之后)、控制台中都会报告以下内容:

    CortexR4:读取寄存器 REG_AHB_DOWNLOAD 时出现问题:未找到1627402249的映射寄存器 

    根据旧线程 CortexR4:写入寄存器 REG_AHB_DOWNLOAD 时遇到问题:未找到 xxxxx 的映射寄存 器:

    [引用 user="KGreb">错误消息向我建议 CoreSight AHB-AP 编程出现问题。  除 LS04x/LS03x 之外、大多数 TMS70LSx 产品都提供此调试外设。[/quot]