TI中文支持网
TI专业的中文技术问题搜集分享网站

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

Annie Liu:

为更加有效地解决您的问题,我们建议您将问题发布在E2E英文技术论坛上https://e2e.ti.com/support/microcontrollers/c2000/f/171,将由资深的工程师为您提供帮助。我们的E2E英文社区有TI专家进行回复,并得到全球各地工程师的支持,分享他们的知识和经验。

Annie Liu:

回复 user5981661:

谢谢您的分享。

赞(0)
未经允许不得转载:TI中文支持网 » 28377D 二次 boot 跳转 APP后执行异常的问题
分享到: 更多 (0)