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.

[参考译文] TMS320F28P650DK:复位双 CPU 调试会话的正确方法

Guru**** 2447250 points
Other Parts Discussed in Thread: TMS320F28P650DK, C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1524189/tms320f28p650dk-proper-way-to-reset-dual-cpu-debug-session

器件型号:TMS320F28P650DK
主题: C2000WARE 中讨论的其他器件

工具/软件:

 在新 CCS 的调试会话 (v20.1.1.8__1.7.1) 中、我们一直在重置 TMS320F28P650DK。 我找不到 CPU 的 CPU/系统重置选项组合、该组合将正确重置整个系统、就像正常的开机顺序一样。 文档似乎建议使用“系统复位“、因为它会复位外设、但几乎总是会导致以下消息被重复写入 Debug Output 视图。

C28xx_CPU2: Trouble Reading Register RPC: (Error -1137 @ 0x13) Device is held in reset. Take the device out of reset, and retry the operation. (Emulation package 20.1.0.3429) 

有时、在没有上述消息的情况下、CPU2 看起来会正确复位、但当我们选择“Continue All“时、CPU2 将反复在随机位置停止执行、就好像存在断点一样。 恢复正常功能的唯一方法是重新启动调试会话并再次加载固件。 复位系统的正确方法是什么?

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

    尊敬的 Derrick:

    您按哪个顺序执行系统重置? 是否确定对两个内核都执行该操作? 这应该是正确的过程来重置 CPU、但我也需要在我这边进行测试。 顺便说一下、我们有一个新的 CCS 更新 v20.2、该更新应该有调试改进

    此致、

    彼得

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

    我已经尝试了两个内核、无论顺序如何。 我也尝试用 CPU reset 命令混合它,并按不同的顺序执行,但我们的整个团队仍然从我的原始帖子收到错误消息。 尝试从该状态继续会使 CPU2 在代码中没有断点的看似随机的位置停止。

    今晚我将尝试更新 CCS。

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

    尊敬的 Derrick:

    您能告诉我调试环境是什么样的吗? 您是否使用 CCS v20 的 CLI? 我刚刚进行了测试、当直接从 CCS IDE 界面重新启动时、我没有遇到任何问题、因为它使用绿色图标返回到 main 的开头。 然后、按下“Resume"时“时、它从主菜单正常开始。 这是在我们 C2000WARE SDK 中的示例闪烁 LED 示例上进行的测试

    此致、

    彼得

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

    这是有效的、但不是我们想要的。 我们需要在外设所在的位置进行完整的 MCU 复位 信号 重置为默认值。 根据此处的文档 (7.4.2. 调试视图)、但不会执行以下操作:

    • 重新启动:  在符号或程序加载到目标器件时发出重新启动命令。 A  重新启动  只需将 PC 寄存器重新定位到入口点(通常或复位矢量) _c_int00 
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Derrick:

    我明白你在说什么。 您可以通过右键点击内核、然后进入 Reset > CPU Reset 来执行完全 MCU 复位。 您应该能够按照以下步骤来复位两个 MCU、就像完成初始程序加载一样。

    CPU 复位 CPU1

    2. CPU 重置 CPU2

    3.重新启动 CPU1(返回 MAIN)

    4. 继续 CPU1(启动 MCU)

    5.重新启动 CPU2

    6.继续 CPU2

    我在我的 CCS 版本上尝试了这个方法、应该可以通过它重新启动程序

    此致、

    彼得