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.

28377D 二次 boot 跳转 APP后执行异常的问题

问题

在28377D调试二次boot时,出现跳转到APP程序后,APP程序只有部分功能正常,另一部分功能不正常的问题(EMIF与FPGA通信正常,测了两路串口通信都不正常)。

背景

二次boot程序在F2837xD_sci_flash_kernels_cpu01工程的基础上修改的。跳转部分测试过两种代码:

第一种:ROM内例程中的exitboot()的汇编函数。

第二种:

static void (*APPEntry)(void);

APPEntry = (void (*)(void))(EntryAddr);

(*APPEntry)();

两种跳转程序情况下,效果相同。

APP程序使用仿真器运行,或者将begin配置到0x008000,APP程序都是正常运行的,所有功能正常。

二次boot程序配置在Flash时,boot在FLASHA-FLASHD区,APP在FLSAHE-FLASHH区,APP begin在0x088000。在这种情况下,跳转到APP后,EMIF通信正常,SCI无法通信。

二次boot程序在RAM中,APP begin配置到0x008000,跳转到APP后,EMIF通信正常,SCI无法正常通信。但是,掉电重启后,APP所有功能都是正常的。


刚才又测试了一下串口自动向外发送的功能,调试正常功能串口自动向外发送一段数据。但是在boot进入APP情况下,串口也在自动向外发送,发送的是乱码。


增加

在初始使用RAM中boot下载时,下载的文件,下到一定程度,总是报

ERROR Status: PROGRAM_ERROR
ERROR Address: 0x3 (或其他地址)

然后到处找没找到问题,在英文TI技术支持网站发现,可以通过将cmd文件中的ALIGN(4)修改成ALIGN(8),来解决问题,当时修改后就解决了,不知道这一块是不是影响到当前的问题了。我把ALIGN(8)修改回ALIGN(4),再编译后,下载后仍报错。

 

请各大神帮助分析一下:

1.问题的原因可能在哪里?

2.当前情况下,跳转到APP程序后就没有了调试手段,不知道问题在哪里。请问此时可以使用什么调试手段去发现问题?