Cortex-M3 Flashupdate程序设计的思考
 
- UID
- 1029342
- 性别
- 男
|
Cortex-M3 Flashupdate程序设计的思考
flashupdate程序的一般设计方法是:
程序从ROM搬入到RAM中,然后把新的程序烧入到FLASH中去。
唯一需要注意的是:flashupdate程序中不能调用ROM中的程序,防止在运行过程中把自己擦除掉。
flashupdate是否可以放到单独ROM BANK中?
如果flashupdate不把自己搬运到RAM中去,直接在一块ROM BANK中运行。
但是这样可以擦除flashupdate之前的RO只读段,但是很难擦除flashupdate后面的RW数据段。
因为:
arm linker的载入视图
RO
RW
ZI
RO,RW,ZI按照顺序排列,不能把RW插入到RO中去
即
RO RW ZI flashupdate 这种加载视图不可以
除非单独写flashupdate程序。也有一个难点在于,APP程序如何找到flashupdate的入口点。
如果flashupdate程序和APP程序融合在一起,升级的时候可以用嵌入式汇编临时把flashupdate程序拷贝到RAM中然后再执行。 |
|
|
|
|
|