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.
我已与 CCS 团队一起解决了这个问题、得出的结论是、这个问题更有可能与 F28379D 中的引导固件相关。
这是原始帖子、演示了如何重现问题的步骤。 总之、对内核进行分组后、CCS 无法在第一次尝试时恢复和暂停执行、而不会产生错误。 https://e2e.ti.com/support/development_tools/code_composer_studio/f/81/t/559771
以下是客户直接提出的一些结论和问题、他们精通 C2000器件的引导加载程序流程:
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 (;)
{
}
谢谢!
Lenio、
每当 CPU1复位时、CPU2也会复位。 因此调试这种情况的正确方法是在 CPU1上执行调试复位并重新启动,在应用程序中 CPU1在 main()等待时,在 CPU2上执行调试复位并重新启动,这样现在两个 CPU 都位于各自的 main()上,现在您可以运行这两个 CPU。
因此、CPU1的调试复位必须在 CPU2之前始终发生。 在 CPU1复位时、不能期望 CPU2仍在运行。
现在、要一个接一个运行一个内核、这取决于应用。 CPU2应用程序在 CPU1应用程序根据需要配置系统资源之前无法运行、 因此、只要 CPU1应用程序向 CPU2应用程序发出运行就绪信号、并且只要 CPU2应用程序等待来自 CPU1应用程序的此信号、您就可以按任何顺序运行内核。 但是、如果不是、CPU1应用程序必须在 CPU2应用程序之前运行。
希望这对您有所帮助。
此致
Santosh Athuru