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条回答
vjcmain
1楼-- · 2019-12-11 16:10
.titrwh 发表于 2018-5-3 17:09
不用交替也行,boot里做好判断,没有程序或者升级失败就再升级一次,boot永远好着就行 ...


如果在boot模式,iap host 是关机的情况呢,这种情况怎么办。 我还没考虑好。
vjcmain
2楼-- · 2019-12-11 19:01
想实现类似似BIOS的dual boot技术,ROM空间够大,IAP做的时候把程序写入第二个空间里,写入完成校验成功修改boot后跳转地址,就ok了,不成功不修改跳转地址,原来系统还是可以用的
liansh2002
3楼-- · 2019-12-12 00:34
 精彩回答 2  元偷偷看……
lindabell
4楼-- · 2019-12-12 06:10
bootloader做好校验就可以了啊,校验对了才拷贝,拷贝完再校验一次;无误后把info flage擦掉。
只要不是app固件本身有问题,是刷不死的。
小小菜
5楼-- · 2019-12-12 08:02
vjcmain 发表于 2018-5-3 17:19
问下两个APP交叉升级时。升级用的bin文件的向量表偏移地址 和 keil设置的IROM1那里的地址 应该如何处理的 ...


https://www.amobbs.com/forum.php ... =%E6%90%9E%E5%AE%9A
可以参考一下,网上有很多这个偏移地址的操作说明
q457344370
6楼-- · 2019-12-12 11:48
vjcmain 发表于 2018-5-3 17:28
flag & info 区域数据量不大,如果要改写参数,把这个区域的数据保存到内存,然后擦除掉再从内存重新写到 ...

你要考虑到中途断电或者干扰复位的情况,如果复位就挂了,双应用要保证在任何升级的时候掉电都要能正常使用,或者最起码要保证能失败后回滚到上个版本

一周热门 更多>