Other Parts Discussed in Thread: TMS320F280037C, LAUNCHXL-F280039C, TMS320F2800137
器件型号: TMS320F280037C
主题中讨论的其他器件: LAUNCHXL-F280039C、 TMS320F2800137
背景: 目前我们正在 C2000 平台上实施 TI CAN 引导加载程序。 它将在 TMS320F2800137 和 TMS320F280037C 中使用。 正在使用 LAUNCHXL-F280039C 并使用 CCS 12.8.0.000012 进行测试。 我们使用 UCFlash 和 CCS 存储器浏览器工具、确保了闪存中的数据与十六进制数据进行传输。 CRC 验证也会执行以验证数据传输。
问题描述: 目前我们面临的问题是引导加载程序没有跳转到应用程序代码。 对于故障排除、我们保留了 2 个 LED;一个在引导加载程序中、另一个在应用程序中用于检查状态。
这是引导加载程序部分、用于处理应用程序启动。
void CpuStartUserProgram (void)
{
void (* pProgResetHandler)(void);
if (FlashVerifyChecksum ()== BLT_false)
{
TI_setgpio_high ();
DELAY_ms (100);
TI_setgpio_low ();
DELAY_ms (100);
返回;
}
DINT;
IER = 0x0000;
IFR = 0x0000;
TI_TIMER_RESET();
EALLOW;
//关键:重置堆栈指针
_asm(“ MOV SP、#0x400“);
//严重:清除状态位
_asm(“ CLRC INTM“);
__asm(“ RPT #7 || NOP“);
__asm(“ CLRC DBGM “);
EDIS;
//pProgResetHandler =(void (*)(void) CPU_USER_PROGRAM_STARTADDDR_ptr;
TI_setgpio_high ();
//__asm(“ lb 0x0008E20A“);
//pProgResetHandler();
__asm(“ RPT #7 || NOP“);
asm(“ MOVL XAR7、ACC “);
asm(“ LB *XAR7 “);
DELAY_ms (100);
TI_setgpio_low ()
}
//代码结束--
为了确认程序正在跳转到应用程序、我要使应用程序部分中 Launchpad (137) 开发板的 LED 闪烁。 但是、LED 不会闪烁且持续熄灭。
另一个观察结果是程序计数器卡在主函数的地址上。 这是通过 CCS 进行调试时观察到的。
其他信息:
在应用程序中配置了两个_c_int () 函数并尝试在我的 cpu_user_program_STARTADDDR_ptr 中调用这两个地址。 但是仍然没有初始化应用程序。
PC 0x08E235 程序计数器【核心】->应用程序端(单独测试)
PC 0x08490D 程序计数器【内核】->引导加载程序侧(单独测试)
单独的测试意味着仅通过 JTAG 刷写来测试引导或应用程序
为了更好地理解、我还会附加链接器和映射文件。
Files_map_and_linker.zip
如果您需要任何其他说明、请告诉我。

