自己编写了一个基于28377D的CAN Bootloader程序,程序位于FLASHA和FLASHB。要升级的程序放在FLASHE。
目前的问题是,上位机传送烧写完之后,dsp断电重启不能跳转至FLASHE中的APP程序(通过GPIO口高低电平判断是否进入bootloader)
随后,我进行了以下几个实验:
(1) 将APP程序利用仿真器烧入FLASH-E(不擦除FLASHA、B中的Bootloader程序),DSP开机后可成功由Bootloader跳转至APP程序;
(2) 使用上位机向DSP的FLASH-E中烧写HEX文件,利用仿真器擦除FLASHA、B中的Bootloader程序并重新烧写Bootloader程序(不擦除FLASH-E中的 APP程序),在线单步运行时,可以由Bootloader跳转至APP程序,并自动运行;
(3) 我分别对比了HEX数据、利用仿真器烧入FLASH-E中的数据和利用上位机程序烧入FLASH-E中的数据,对比结果是地址和数据完全正确。
希望大侠帮助一下,谢谢!
Eric Ma:
“我分别对比了HEX数据、利用仿真器烧入FLASH-E中的数据和利用上位机程序烧入FLASH-E中的数据,对比结果是地址和数据完全正确。”
Eric:
根据你做的实验,我的建议有两个,
1. 通过CCS 的on chip flash 验证一下两个烧写情况下的CRC校验码,如果一致,则代码一致。
2. 注意一下Flash的ECC功能,是否是ECC出问题,导致程序没办法运行。
,
user6568038:
请教ERIC一个问题,我在做SCI在线升级,flash启动模式。刚开始完成了在线升级的功能,但是当我把应用程序中的函数(设计用于信号处理)随机的删除一点内容,不涉及CMD,系统初始化之类的,再次升级后,flash都不报错,数据都写入flash,但不能从bootloader跳转到应用程序。如果应用程序调试和单独运行都没问题。想请教一下这是什么问题?谢谢