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.

[FAQ] 【分享】C2000双核交叉触发

Other Parts Discussed in Thread: C2000WARE

在多核的MCU调试中,几个核之间的程序同步显得非常重要。在调试过程中,当一个核暂停的时候,我们会希望另外的核都能同时暂停,Cross Trigger的功能也就成为了多核调试的必备功能之一。

本文介绍了在CCSv5环境下,双核C2000 调试过程中Cross Trigger功能的使用方法,供大家参考。

Cross Trigger步骤:

1. 启动仿真器后,选择两个Core并右键单击。在弹出菜单中选择“Group core(s)”,如下所示。(以Concerto为例)

分组后,调试窗口如下所示。

注:连接前或连接后对core进行分组都没关系。

 

2. 将程序下载到两个core。

在一个core中设置断点。假设在C28x核中设置一个断点,例如如下所示。

在断点窗口中,也可以找到断点。

 

3. 使能全局断点

右键单击调试窗口中的“Group 1”,然后在弹出菜单中选择“Enable Global Breakpoints”。

完成此操作后,将在每个core标签上看到“Global breakpoint on”。

 

4. 运行程序并检查cross trigger。

先运行不带断点的内核。如果需要运行顺序,例如Concerto,每次M3核都需要第一时间运行,不要设置断点在第一个运行的核。

然后用断点运行另一个内核。当它到达断点时,两个内核将同时挂起。

单击带有断点的核的标签“main()…”,可以看到它在断点处停止。

如果你点击“main()…”标签的核没有断点,你可以看到它停在某个地方但你不知道它停止之前在哪里,这是因为它是由带断点的内核交叉触发的。

 

你可以使用C2000ware中的双核例程测试这个功能。