主题中讨论的其他器件:LAUNCHXL-F28379D、 C2000WARE
尊敬的 TI 专家:
我希望在电源复位后从闪存运行双 CPU、但我还无法成功。
我正在使用 LaunchxL-F28379D。
我从导入了示例项目 /driverlib/f2837xd/example/dual/led
一个是 LED_ex1_blinky_CPU1、另一个是 LED_ex1_blinky_CPU2。
由于这些配置用于 RAM、我更改了 CPU1的编译配置'CPU1_FLASH_Standalone '和 CPU2的'CPU2_FLASH'。
编译成功、并使用 CCS 调试将.out 分别加载到 CPU1内核和 CPU2内核中。
当我运行时、它无法正常工作。
在 Device_bootCPU2的以下部分中、我跟踪并发现 CPU1正在阻止
//
// Wait until CPU02 control system boot ROM is ready to receive
// CPU01 to CPU02 INT1 interrupts.
//
do
{
bootStatus = HWREG(IPC_BASE + IPC_O_BOOTSTS) &
C2_BOOTROM_BOOTSTS_SYSTEM_READY;
} while ((bootStatus != C2_BOOTROM_BOOTSTS_SYSTEM_READY));
我在代码下面进行了注释、
#ifdef _STANDALONE
#ifdef _FLASH
//
// Send boot command to allow the CPU2 application to begin execution
//
Device_bootCPU2(C1C2_BROM_BOOTMODE_BOOT_FROM_FLASH);
#else
//
// Send boot command to allow the CPU2 application to begin execution
//
Device_bootCPU2(C1C2_BROM_BOOTMODE_BOOT_FROM_RAM);
#endif // _FLASH
#endif // _STANDALONE
然后、它运行良好。
但发生了另一个问题。
在我按下"S"重置按钮后、CPU1工作正常、但 CPU2未运行其代码。
我认为这是因为 CPU1未使用 Device_bootCPU2引导 CPU2。
除了将构建配置..._RAM 更改为..._FLASH 或..._FLASH_standalone 之外、我没有做任何更改。
还有什么需要我做的吗?
期待从 TI 专家处获得任何指南。
提前感谢您。
James Kim