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.

[参考译文] TMS320F28388S:与 f28388s 自定义引导加载程序相关的 CPU1和 cm SYNC

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1517988/tms320f28388s-cpu1-and-cm-sync-related-to-the-custom-bootloader-of-f28388s

器件型号:TMS320F28388S
主题:C2000WARE 中讨论的其他器件

工具/软件:

我使用 CPU1和 CM 上的自定义引导加载程序将应用程序下载到 CPU1和 CM 中。
根据 GUI 命令分支到应用程序时存在问题。

1、CPU1分支的应用正常运行、并执行 main 语句。(检查 Status ="init"的输出;)
2.停止在以 cm 为单位的 IPC_SYNC 处。

a. CPU1引导加载程序的应用程序分支代码
作废 JumpToApplication (作废)

sendDebugMessage ("jump command received\r\n");
IPC_SendCommand (IPC_CPU1_L_CM_R、IPC_FLAG0、IPC_ADDR_CORRECTION_ENABLE、
CM_SECTOR_JUMP、0、0);
IPC_waitForAck (IPC_CPU1_L_CM_R、IPC_FLAG0);sendDebugMessage ("跳转到应用程序");
FLASH_disableECC (FlashECC_Base);
_asm (" lb #0x090000");

}

b. CM 引导加载程序的应用程序分支代码
作废 JumpToApplication (作废)

FLASH_disableECC (FlashECC_Base);
void (* app_entry)(void)=(void (*)(void)) 0x00210001;
app_entry();
}


c. CPU1的应用程序主函数
void main (void)

interrupt_initModule();
Interrupt_initVectorTable();

SysCtl_setAUXClock (SysCtl_AUXPLL_ENABLE | SysCtl_AUXPLL_OSCSRC_XTAL |
SysCtl_AUXPLL_IMULT (20)| SysCtl_AUXPLL_FMULT_0 |
SysCtl_AUXPLL_DIV_1);
setupDnetGPIOs();
BOARD_INIT ();
configureAndReleaseCMToWait();

DEVICE_DELAY_US (5000);
releaseCMToApplication();
IPC_clearFlagLtoR (IPC_CPU1_L_CM_R、IPC_FLAG_ALL);
IPC_SYNC (IPC_CPU1_L_CM_R、IPC_FLAG31);
合成
状态="init";
}


d. CM 的应用程序主功能
内部 main (void)

cm_init();
IPC_registerInterrupt (IPC_CM_CPU1_R、IPC_INT0、IPC_ISR0);
INTERRUPT_REGISTERHandler (INT_TIMER0、&cpuTimer0ISR);
IPC_clearFlagLtoR (IPC_CM_CPU1_R、IPC_FLAG_ALL);
IPC_SYNC (IPC_CM_L_CPU1_R、IPC_FLAG31);
GPIO_writePin (DEVICE_GPIO_PIN_94、1);
}

=>要在 CM 的应用程序主函数中进行调试、请使用

GPIO_writePin (DEVICE_GPIO_PIN_94、1);
IPC_SYNC (IPC_CM_L_CPU1_R、IPC_FLAG31);
如果我这样放置、GPIO 94引脚将被输出、但是
IPC_SYNC (IPC_CM_L_CPU1_R、IPC_FLAG31);
GPIO_writePin (DEVICE_GPIO_PIN_94、1);

如果我这样放置、GPIO 94引脚将不会被输出。

查看这种情况、似乎在 IPC_SYNC (IPC_CM_CPU1_R、IPC_FLAG31)处停止;我的 IPC 设置是否出错???