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

TMS320F28062: 在做Bootloader升级时,现在通过CCS10(插上TI的仿真器)全速运行或者是断点运行,都能够实现正常烧录了。但是

Part Number:TMS320F28062Other Parts Discussed in Thread:C2000WARE

在做Bootloader升级时,现在通过CCS10(插上TI的仿真器)全速运行或者是断点运行,都能够实现正常烧录了。但是拔掉仿真器,直接上电后,进入APP(FLASH的SECTION B——SECTION H)区域运行,后发指令进入Bootloader(FLASH的SECTION A)区域模式,但是整个升级过程停在erase APP(SECTION B——SECTION H)这一步,erase返回一个擦除失败的状态,并且验证了APP程序确实没有被擦除。

关键是通过CCS10仿真运行时,程序应该是在RAM中运行的,这一套升级过程(包含erase和program)都是已经实现了功能,无任何异常。但是为什么现在程序从FLASH运行,就无法擦除FLASH的APP区域了呢?请问下这个问题可能是什么原因造成的?谢谢!

Green Deng:

你好,C2000操作flash函数:flashAPI,是需要运行在ram中的,所以当你将程序烧写进flash之后,为了保证flashAPI函数运行在ram中,需要加上memcpy(或者memcopy)函数将这部分代码从flash搬移到ram中运行。你的问题可能是没有搬移?

具体方法可以参考flashAPI的说明和例程,路径如下:C:\ti\c2000\C2000Ware_4_00_00_00\libraries\flash_api\f2806x

,

siqi wen:

感谢Green Deng的回复,确实是FLASHAPI函数需要放在RAM中运行,否则该函数放在FLASH中会出现奇怪的现象。使用memcpy是肯定可以的,但是有些bootloader程序也会将部分重要的函数或者是库单独放在RAM中,只要能确定FLASHAPI函数在RAM中,该问题就不存在了。

赞(0)
未经允许不得转载:TI中文支持网 » TMS320F28062: 在做Bootloader升级时,现在通过CCS10(插上TI的仿真器)全速运行或者是断点运行,都能够实现正常烧录了。但是
分享到: 更多 (0)

© 2024 TI中文支持网   网站地图 鲁ICP备2022002796号-1