之前没有做过IAP方式的程序升级,看了些资料,大多都是在BootLoader里面串口接收程序升级包然后进行升级在进入主程序。我现在是想在主应用程序中接收升级包然后复位板子进入BootLoader让其进行升级,那么有什么好的方案呢?我这样想可行吗:我BootLoader程序的设置是
即留了64K字节的空间给BootLoader,主应用程序的地址就是0x8010000。主程序负责接收程序升级包,升级包存放在没有用到的ROM区域,BootLoader的作用就是把升级包拷到0x8010000地址然后启动新的程序,这样可行吗,或者有其他好的方式?
我的设计方法是
1 主程序要进入升级,触发升级事件。
2 标记内存记号。
3 主程序软重启。
4 重启boot代码检测内存标记对比(前提boot工程设计是“不对”内存标记的地址初始化,保证主程序写入重启数据不倍擦除)
5 对比符合进入boot更新代码。
一周热门 更多>