IAP,APP1和APP2两个应用程序交替更新的问题

2019-12-10 18:13发布

本帖最后由 vjcmain 于 2018-5-3 17:26 编辑

如题,想实现交替升级的方式来解决变砖的问题,booloader 主要做app 完整性诊断以及app 切换的功能,不知道原理上是否可行。
因为这个MCU比较特殊,控制着整个板卡的电源,板卡上跑X86PC host(COME)  想通过host给BMC 升级,因此升级的过程中不能断电。
IP.PNG (40.71 KB, 下载次数: 0) 下载附件 2018-5-3 16:50 上传



退而求其次的方案是 Application B 规划为固件暂存区,app 收到升级指令时往固件暂存区 写入新固件,然后下次重启的时候bootloader 把暂存区的固件搬运到 Application A 区。

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
29条回答
plc_avr
1楼-- · 2019-12-10 22:42
可行....,其实不用整的这么复杂
小小菜
2楼-- · 2019-12-11 01:47
可行本质上就是一个擦写FLASH和跳转的问题
.titrwh
3楼-- · 2019-12-11 02:34
不用交替也行,boot里做好判断,没有程序或者升级失败就再升级一次,boot永远好着就行
vjcmain
4楼-- · 2019-12-11 05:16
 精彩回答 2  元偷偷看……
q457344370
5楼-- · 2019-12-11 05:46
flag应该存2份,因为flash的特性只能按区擦除和从1写0,你这样可能会导致更新A的时候无法跳转到B
vjcmain
6楼-- · 2019-12-11 11:01
q457344370 发表于 2018-5-3 17:23
flag应该存2份,因为flash的特性只能按区擦除和从1写0,你这样可能会导致更新A的时候无法跳转到B ...

flag & info 区域数据量不大,如果要改写参数,把这个区域的数据保存到内存,然后擦除掉再从内存重新写到flash。 不知道这样行不行

一周热门 更多>