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.

[参考译文] TMS320F28379D:在 Code Composer 中调试时 CPU2未运行...

Guru**** 2522770 points
Other Parts Discussed in Thread: TMS320F28379D, UNIFLASH

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1252355/tms320f28379d-cpu2-not-running-when-debugging-in-code-composer

器件型号:TMS320F28379D
主题中讨论的其他器件: UNIFLASH

我正在运行采用 TMS320F28379D 的专有电路板。

我使用的是 Code Composer Studio 版本8.3.1.00004。

我可以使用 UniFlash v8.3.0.4307对 CPU1和 CPU2进行编程。

如果我只是给板加电、让 CPU 正常运行、一切都会正常运行。

如果我使用 Code Composer,并选择 CPU1项目并在 CPU1上启动调试会话,CPU1会出现并在 main()处停止,然后等待。  然后、我可以恢复 CPU1、它开始正常运行、包括设置断点、暂停、检查变量等的功能。   但是、我有充分的理由相信 CPU2根本没有运行。

如果我然后针对调试会话"终止/断开所有连接"、然后对电路板进行下电上电、则两个 CPU 都正常运行。

注:

 -在 CPU 上运行的项目从 TI 示例项目中移植,并为我们的操作进行了修改。

 -作为在 CPU1上启动调试会话的一部分,该会话对 CPU1上的闪存进行重新编程。

 当 CPU2按预期运行时,它为 EtherCAT 端口提供服务,并通过由 CPU1控制的串行端口接口输出的共享内存发送连续的简单心跳消息。  这些操作在调试会话中都不起作用、因此这就是我认为 CPU2在调试会话中根本就没有运行的原因。

 -奇怪的是,当自由运行时,CPU1串行端口配置产生115200波特率。  在调试模式下、 CPU1串行端口配置会产生56000波特率。  不是一个大问题,但可能是一个线索...

是否存在我操作错误的配置、启动操作等?

谢谢。

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

    您好 Evan:

    要在器件上运行调试会话、您需要首先在 CPU1上运行调试会话、确保目标已连接到程序、然后连接到 CPU2目标并使用相应的.out 文件加载。 要执行最后一步、请打开 Debug 窗口并右键点击 CPU2项目:

    单击 Connect Target。 然后前往 Run > Load 并为 CPU2选择.out 文件(或浏览文件资源管理器找到):

    然后、应正确加载 CPU2进行调试。 若要在调试会话中的 CPU 之间切换、只需从 Debug 窗口中选择相应的 CPU (请记住、未共享的寄存器、存储器等将从所选 CPU 的角度显示、 因此、如果外设不碰巧共享、则寄存器配置可能不匹配)。

    此致、

    阿米尔·奥马尔

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

    Omer:

     感谢您的快速回复。  它看起来像你给我工作的基本指示!   我根据说明通过调试器按钮加载 CPU1、然后加载 CPU2、接着在 CPU1上执行了 Resume (Run - F8)、然后是 CPU2。

     我遇到的一个问题是 CPU1在 F2837xD_IPC_Driver_Util.c 中一直等待 (bootStatus!= C2_BootROM_BOOTSTS_SYSTEM_READY)。  我只需停止 CPU1并将变量 bootStatus 的值更改为 C2_BootROM_BOOTSTS_SYSTEM_READY、然后恢复、一切顺利。  (看起来此问题的变体已经在其他论坛主题中讨论过。)

    我现在可以在其中一个或两个 CPU 上进行调试、非常棒!

    再次感谢!

    埃文