首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

Cortex-M3 Flashupdate程序设计的思考

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中然后再执行。
继承事业,薪火相传
返回列表