主题中讨论的其他器件:SysConfig、 C2000WARE、 LAUNCHXL-F28379D
您好:
我正在测试led_ex2_sysconfig示例、但遇到了一些意外行为。 如果您能回顾一下这个问题、我将不胜感激。
我的环境:
-
CCS: v12.8.0
-
C2000Ware: v5.05.00.00
-
电路板: LAUNCHXL-F28379D
-
项目:
C2000Ware_5_05_00_00\driverlib\f2837xd\examples\dual\led\led_ex2_sysconfig_cpu*
配置:
-
CPU1 和 CPU2 工程的构建配置均已设置为 闪存中 。
-
_LAUNCHXL_F28379D添加到了预定义符号中。 -
程序通过 CCS 直接加载到目标上。
问题描述:
首先、我将独立测试 CPU1 工程。 为此、我注释掉了IPC_sync()中的行main.c、如下所示。
[修改后的 main.c ]
// This is the code from the led_ex2_sysconfig_cpu* example with the IPC_sync line commented out.
#include "driverlib.h"
#include "device.h"
#include "board.h"
void main(void)
{
Device_init();
Device_initGPIO();
Board_init();
Interrupt_initModule();
Interrupt_initVectorTable();
// The original code would halt here, which is expected as CPU2 is not running.
// IPC_sync(IPC_CPU1_L_CPU2_R, IPC_SYNC);
EINT;
ERTM;
for(;;)
{
GPIO_writePin(DEVICE_GPIO_PIN_LED1, 0);
DEVICE_DELAY_US(500000);
GPIO_writePin(DEVICE_GPIO_PIN_LED1, 1);
DEVICE_DELAY_US(500000);
}
}
观察到的行为:
-
当我使用调试器构建并运行 CPU1 项目时、程序正确地进入
for循环main()、LED 开始按预期闪烁。 -
但是、如果我再按 硬件复位按钮 在电路板上、电路板复位后 LED 不再闪烁。
-
在引导过程中、程序似乎在某个地方停止。 由于这是由硬件复位触发的、因此我无法使用调试器来确定代码卡住的位置。
其他信息:
-
为了进行比较、我
led_ex1_blinky_cpu*在完全相同的条件下测试了(非 SysConfig 版本)示例。 此工程运行良好、即使在硬件复位后、LED 也能正确闪烁。
您能否对此进行调查? 在基于 SysConfig 的led_ex2示例中、引导或初始化序列似乎存在差异、导致其在独立复位后挂起。
感谢您的支持。