我已与 CCS 团队一起解决了这个问题、得出的结论是、这个问题更有可能与 F28379D 中的引导固件相关。
这是原始帖子、演示了如何重现问题的步骤。 总之、对内核进行分组后、CCS 无法在第一次尝试时恢复和暂停执行、而不会产生错误。 https://e2e.ti.com/support/development_tools/code_composer_studio/f/81/t/559771
以下是客户直接提出的一些结论和问题、他们精通 C2000器件的引导加载程序流程:
- 由于引导 ROM 中存在 ESTOP0、运行两个内核会导致它们停止。 为什么代码中会出现这种情况? 为什么在连接调试器时停止代码执行? 我们只希望代码在启动时读取硬件跳线以确定引导模式。 这是引导 ROM 源代码声明的内容:
-
void WaitBoot (void) { // sysctl_wdog_enable ();//用于调试 if ((((otp_boot_configure_word & 0xFF000000)>> 24)= 0x5A)//检查键匹配是否失败 { if ((((otp_boot_configure_word >> 8)& 3)= 0x1) }{ cbrothe_boot};}in 1} sysctl_wdog_enable(); } //如果仿真器在这里停止 // a)将 EMU_KEY 更改为0x55AA // b)将适当的引导模式写入 EMU_BMODE // c)执行调试器复位并运行 asm (" ESTOP0"); for (;) { }
谢谢!