Other Parts Discussed in Thread:TMS320F280041C, C2000WARE
您好,我使用的TMS320F280041C进行IAP升级,但是41C只有一个bank0,可以在bank0中对部分的sector进行擦除吗?还是说只能在ram中对bank0进行擦除
Green Deng:
可以擦除部分扇区,但是只能在ram中运行擦除程序,也就是flashAPI函数。
,
user6510954:
不可以在flash中运行吗,如果在ram中运行的话,我是不是就没办法进行app更新了 因为ram会断电失效
,
user6510954:
我是想做一个通过can进行在线的IAP升级,但是我的程序是下在flash里面进行运行的(因为我需要断电重启之后程序仍然继续工作),所以我现在想做到保留我的boot部分,删除部分扇区,来进行app的在线升级
,
Green Deng:
可能我没说全,所以你误解我的意思了。flashAPI函数是跟主程序一起保存在flash中的,需要使用的时候就将程序从flash搬移到ram中运行,因为flashAPI函数必须运行在ram中。
详细的你可以参考一下flashAPI的说明文档:C:\ti\c2000\C2000Ware_3_04_00_00\libraries\flash_api\f28004x
另外,TI也提供了一个基于SCI的在线升级例程,你可以参考一下:C:\ti\c2000\C2000Ware_3_04_00_00\driverlib\f28004x\examples\flash
,
user6510954:
哦哦哦,明白了。感谢
,
user6510954:
#pragma CODE_SECTION(Example_CallFlashAPI, ramFuncSection);
我看到例程里面有这么一句话,是不是就是跳转到ram中运行Example_CallFlashAPI这个函数
,
Green Deng:
这是定义了一个ram段,用于把Example_CallFlashAPI函数放入这个段中。真正执行搬移的是memcpy函数。
,
user6510954:
请问这种问题怎么解决
,
Green Deng:
你的cmd文件有做过更改吗?还是说用的旧工程的cmd?
可以尝试换一个cmd文件,官方有提供基于flashAPI的:C:\ti\c2000\C2000Ware_3_04_00_00\device_support\f28004x\common\cmd