问题:
在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程序后就没有了调试手段,不知道问题在哪里。请问此时可以使用什么调试手段去发现问题?