问题:
在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程序后就没有了调试手段,不知道问题在哪里。请问此时可以使用什么调试手段去发现问题?
Annie Liu:
为更加有效地解决您的问题,我们建议您将问题发布在E2E英文技术论坛上https://e2e.ti.com/support/microcontrollers/c2000/f/171,将由资深的工程师为您提供帮助。我们的E2E英文社区有TI专家进行回复,并得到全球各地工程师的支持,分享他们的知识和经验。
Annie Liu:
回复 user5981661:
谢谢您的分享。