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/TMS320F28388D:器件正在获得随机复位、且复位后 CPU 卡在复位矢量上

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/871084/ccs-tms320f28388d-device-is-getting-random-reset-and-after-reset-cpu-stuck-at-reset-vector

器件型号:TMS320F28388D

工具/软件:Code Composer Studio

我的器件上遇到了这个奇怪的复位问题。 在我运行代码后、代码会挂起、当我暂停时、我看到 PC 指向复位矢量。 这是正常复位、CPU 应经历复位周期并从复位矢量开始、并继续执行引导代码、但在这种情况下、它会卡在复位矢量处、并且不会执行任何操作、就像已发出调试器复位并且 CPU 暂停一样 复位向量。 我的问题是-

  • CCS 是否可以通过任何方式强制将复位到 CPU? 例如、总线挂起条件会导致 CCS 强制进行调试复位?
  • 如果是、我可以在 CCS 中禁用此功能吗?

此致、

Vivek Singh

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

    您好、Vivek、  

    [引用 user="Vivek Singh"]在运行代码后,代码会挂起,当我暂停时,我看到 PC 指向复位矢量。 (...) 但在这种情况下、它会停留在复位矢量、并且不会执行任何操作、就像已发出调试器复位并且 CPU 在复位矢量处暂停一样。[/quot]

    我看到这种情况的原因是、去芯探头仍然认为它已完全连接到目标内核、但实际上内核/器件要么可以自由运行、 时钟域断电或处于低功耗模式-遗憾的是调试探针只能对硬件状态有如此多的了解。

    如果这个器件看起来有一个 ICEPICK、内核状态显示什么? 请查看 CCS 用户指南的第7.5.7节:

    https://software-dl.ti.com/ccs/esd/documents/users_guide/index.html

    CCS 可以通过 JTAG 或通过 nRESET (系统复位)引脚发出复位命令。 后者要求硬件到位、但"软"复位模式可能能够恢复、或者至少为您提供有关可能发生的情况的额外指示-我已经看到这两种情况: 调试探针重新获得对器件的控制、或报告器件从未从复位状态恢复。

    如果调试器检测到内核挂起、如果它认为可以恢复连接、它将始终提示执行该操作。 对于这个特定条件、请在以下位置检查调试 JTAG 页面的"器件挂起"部分:  

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

    希望这对您有所帮助、

    拉斐尔

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

    您好、Rafael、

    感谢您的快速响应。

    [引用] CCS 可以通过 JTAG 或 nRESET (系统复位)引脚发出复位命令。 后者要求硬件到位、但"软"复位模式可能能够恢复、或者至少为您提供有关可能发生的情况的额外指示-我已经看到这两种情况: 调试探针重新获得对器件的控制、或报告器件从未从复位状态恢复。 [/报价]

    CCS 如何通过 JTAG 发出 RESET 命令? 是否有方法在 CCS 中禁用此功能。 在什么情况下 CCS 也会发出该复位命令。 在本例中、系统时钟可能会在应用程序运行期间关闭一段时间(30-40个周期)。 这会触发 CCS 发出复位命令(通过 JTAG 或 nRESET)吗?

    此致、

    Vivek Singh

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

    Vivek、

    [引用 user="Vivek Singh"] CCS 如何通过 JTAG 发出 RESET 命令?

    调试探针访问的其中一个寄存器对器件的复位功能有一定的控制。 不过、我并不完全确定如何将其映射到 CCS GUI。  

    [引用 user="Vivek Singh">是否有方法在 CCS 中禁用此功能。 在什么情况下 CCS 也会发出该复位命令。

    只要您没有显式发出此命令、CCS 默认不会重置目标。 请记住、项目或调试配置可能启用选项"在连接时重置目标"、"在程序加载或重新启动时重置目标"。 此外、GEL 文件可能会发出重置命令。 有关调试配置选项的详细信息、请参阅 CCS 用户指南的第7.2.2节(菜单 Help -> Contents)。  

    [引用 USER="Vivek Singh"[报价用户="Vivek Singh]")在我们的案例中,在应用程序运行期间,系统时钟可能会关闭一段时间(30-40个周期)。 这会触发 CCS 发出复位(通过 JTAG 或 nRESET)吗?

    我认为这将简单地通知调试探针器件/内核处于断电模式、并且不会自动触发复位。 在这种情况下、您可以将内核置于"Free Run"(Ctrl+F8)模式、并且它应该在这些电源转换中滑行而不会出现毛刺脉冲。  

    希望这对您有所帮助、

    拉斐尔