主题中讨论的其他器件:F29H85X-SYSCONFIG、SOM
工具/软件:
我无法调试目标的 3 个内核、当我启动调试会话时、可以运行和中断内核 1、而当我加载内核 3 程序时、它不工作、在复位后卡在自由运行状态。 
这是 Debug 输出
'
线程:如下所示为 CPU1 running 和 CPU3 free running 状态。 
如何解决此问题、如果有任何多核调试文档、将会有所帮助。
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.
工具/软件:
我无法调试目标的 3 个内核、当我启动调试会话时、可以运行和中断内核 1、而当我加载内核 3 程序时、它不工作、在复位后卡在自由运行状态。 
这是 Debug 输出
'
线程:如下所示为 CPU1 running 和 CPU3 free running 状态。 
如何解决此问题、如果有任何多核调试文档、将会有所帮助。
尊敬的 Mahmoud:
我建议使用此方法: F29H850TU:CCS 版本上的多核调试问题:20.3.0.14__1.9.0。 BTW 当您进入这种自由运行状态时、需要重置调试器。 我还看到您在使用 ISR(很可能是 NMI)、这意味着应该重置 CPU 并重新启动代码。
我目前正在编写多核文档、这些文档将在 TI.com 上发布。
此致、
Aishwarya
我 在 F29H85X-CCM-EVM 上尝试使用 SOM 20.2.0.12_180 运行 CPU1/3 双核和 CPU1/3 双核时遇到了一个非常类似的问题。 似乎任何项目或非项目启动都不会以相同的方式结束。 这是因为两个处理器都显示为正在运行、但没有 LED 闪烁、看起来只是正在处理 NMI。 他们不能暂停,
当您尝试加载程序时、出现上一篇文章中列出的错误、如果我这样做、我会得到相同的结果。 但是、代码中的注释显示加载符号。 如果您仅加载符号、则没有错误、但内核不会运行。
您有没有什么建议可以实现此目标、或者给出文档何时可用的一些指示?
在中、两个工程的存储体模式都更改为两种、即以_c29x1/3 结尾的存储体模式、不过我的理解是、当_c29x1 刷写时、它也会刷写内核 3 的应用程序、因此、当其发布时、可以启动软件。 从这个意义上讲、_c29x3 从不直接刷写、因此不需要更改调试模式、是这样吗?

所采取的步骤
1.导入 led_ex1_blinky_cpu1_cpu3_multi 工程。
2.切换两个 以_c29x1/3 结尾的项目以调试闪存设置、存储体模式 2。
3.已在此处检查其他调试设置 7.1.调试概述—Code Composer Studio 20.3.0 文档。 闪存设置与我介绍的内容不同、但尽可能匹配。
4.. 通过 分组的 led_ex1_blinky_cpu1_cpu3_multi 工程构建这两个工程
5.右键点击_c29x1/targetConfigs/F29H859TU9.ccxml 以开始无工程调试
6.连接到 C29xx_CPU1 并通过 Run->Load->Load Program led_ex1_blinky_cpu1_cpu3_multi_c29x1.out 进行加载。
7、程序加载、运行并在进入时停止
。 
8.单击蓝色箭头运行程序、然后在释放 CPU3 后的 Estop 处停止。 如果该内核此时正在运行、我会期望其中一个 LED 闪烁、但它们不闪烁。

9.连接到 CPU3 和 Run->Load->Load Symbols led_ex1_blinky_cpu1_cpu3_multi_c29x3.out

10.尝试运行在 NMI 中暂停的 CPU1

您能告诉我我我出了什么问题吗? 我尝试了在 CPU3 上加载程序并尝试了基于工程的调试、但它们最终都在同一个位置。
此致
Simon
Mahmoud / Simon,
绝对不要将程序加载到 CPU3 中、因为在第三步中会执行该操作。 换句话说、我们通过 CPU1 加载 CPU3 代码。
已将两个工程的组模式更改为两种、即以_c29x1/3 结尾的模式、不过我的理解是、当_c29x1 刷写时、它也会刷写内核 3 的应用程序、因此、释放后将有软件启动。 从这个意义上讲、_c29x3 从不直接刷写、因此不应该更改调试模式、是否正确?
是的、只需从 CPU1 更改存储体模式、因为您 实际上是在尝试对 SSU_GEN_REGS.BANKMODE 寄存器进行编程。 从技术上讲、您可以从 CPU3 写入此值、但不需要。 更具体地说、闪存 BANKMGMT 扇区中 BANKMODE 和 BANKMAP 的值在启动时自动加载到 SSU 寄存器中。
能否确认 SSU_GEN_REGS.BANKMODE 的值? 对于 BANKMODE2、该值应为 0x9。 我注意到该示例不包括一个必要的步骤、即在闪存设置工具中配置 BANKMODE 之后与器件断开连接并向器件发出 XRSN。 此外、还要确保适当地使用 RAM 或闪存构建。
此外、不确定您使用哪块电路板、但请参考原理图、确保示例中的 GPIO 与电路板上的 LED 相匹配。
在重试之前、复位 CPU1 + POR 以清除 NMI/ESM/EA(更多详细信息请参见 TRM)。
此致、
Aishwarya
作为前面所述的调试启动过程的一部分、我不知道在何时以及在何处检查和执行此操作。
“能否确认 SSU_GEN_REGS.BANKMODE 的值? 对于 BANKMODE2、该值应为 0x9。 我注意到该示例不包括一个必要的步骤、即断开与器件的连接并在闪存设置工具中配置 BANKMODE 之后向器件发出 XRSN。“
请告诉我在哪里将这些步骤插入我的清单、以及如何实现这些步骤。 我在闪存设置中未看到任何内容、也无法通过观察查看 BANKMODE。
我指的是这种方法 7.1.调试概述—Code Composer Studio 20.3.0 文档 ,当我尝试通过 CPU1 加载 CPU3 时,由于持续故障状态,它会再次导致自由运行问题,但对于 CPU1 而言 
我现在稍微更改了程序、得到了不同的结果。
1.从调试面板启动 F29H850Tu9.ccxml 上的调试会话
2.连接至 CPU1
3.右键点击、属性、闪存设置存储体模式 2、点击程序存储体管理。
4. run> Load->Load Program led_ex1_blinky_cpu1_cpu3_multi_c29x1.out
5.进入 SsuGenRegs.BANKMODE 现在为 9

运行 CPU1 至 ESTOP0
7.连接至 CPU3
8. run> Load->Load Symbols led_ex1_blinky_cpu1_cpu3_multi_c29x3.out
9.运行 CPU1
这仍会导致 NMI
我注意到在调试输出上、它明确地说必须在对 BANKMGMT 进行编程后通过 XRSn 复位器件、您如何操作? 网络建议这是复位引脚、那么您只是按下板上的复位按钮吗?
全部、
总之、以下是运行代码所需的确切步骤:
此致、
Aishwarya
Aishwarya,
Mahmoud 和我正在进行相同的设置。 我们使用的是正在开发的固件应用、而不是示例工程。 已选择存储体模式 2。 正如我在上一个线程中提到的、我遵循以下步骤:
右键点击 Core 1 target config file、然后选择 Start less Debug
连接内核 1
加载程序内核 1
将内核 1 运行至 ESTOP0
连接核心 3
运行内核 3 和内核 1
加载符号内核 3
内核 3 按预期运行和停止。
内核 1 无法停止、调试器输出显示:C29xx_CPU1:警告:目标 CPU 可能会卡在持续故障状态中
由于内核 1 正在运行并且无法停止、因此我无法分辨其正在执行的操作以及如何对这种情况进行故障排除(目标 CPU 可能会卡在持续故障状态中)。 请注意、它确实会在 ESTOP0(在初始加载程序之后)停止、但在那之后不会再次停止。 你有什么建议吗?
Robert、
如错误日志所示、错误与中断退出@0x1002064C 有关。 确保您具有正确的中断属性、无论是 INT 还是 RTINT。 这很可能是问题所在。 您可以在任何相关示例工程中参阅 SysConfig board.h。 如果尚未使用 SysConfig、请这样做以防止出现此类问题。
我指的是示例工程以及 device_support 文件夹中的默认链接器命令。
是的、这是有意义的、因为问题与中断有关。 但是、如果您将此注释掉、则不会执行中断。
此致、
Aishwarya
Robert、
TRM + F29x 错误处理和调试指南中详细介绍了错误处理。 请参阅以下内容、了解如何调试错误。 下一次 TRM 迭代将进一步详细介绍不同的错误及其含义。
1) 是否有办法将中断退出地址映射到导致问题的中断?
在应用代码和“Disassembly"中“中、该地址到底指向了什么? 地址将指向错误所在的位置、例如、如果您看到问题出在通用 RETI.INT 中、您可以设置断点或甚至注释掉 ISR 以确定哪个断点。 在不知道您的代码是如何构建的情况下、我只能提供这些一般性建议。
2) 如何确定给定中断的正确属性 INT 或 RTINT?
您可以在任何示例工程中为此引用 SysConfig board.h。 如果尚未使用 SysConfig、请这样做以防止出现此类问题。 [/报价]任何使用中断的 F29x SDK 示例都会为 board.h 中的中断生成正确的设置 只要您在中断的原始定义中具有此属性、就无需在整个代码库中重复此操作。
[quote userid=“220407" url="“ url="~“~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1568059/f29h850tu-multicore-debugging/60510983) 最新的 EA 状态显示:
类似的问题是、如何映射此值以确定导致问题的原因?
[/报价]如第一个答案中所述、检查该存储器中的内容并从该存储器中退出。 另请参阅资源。 看起来您可能 更改了代码、但这导致了另一个问题?
此致、
Aishwarya