双备份bootloader程序更新

2019-12-13 18:31发布

大家有没有做过这种bootloader,
如果刷写过程中失败,则自动切换到上一次正常的App。
目前的思路是Flash分为3部分:Bootloader + App1 + App2

目前的难点是App1和App2里面的程序中断向量表啥的肯定不一致,没法做到统一。



友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
26条回答
823032003
1楼-- · 2019-12-16 00:16
eleqian 发表于 2019-2-2 08:19
如果只编译一个bin,把中断向量表放到ram还不够,还要把代码编译成位置无关。9楼方法更实用 ...

"把代码编译成位置无关"有什么办法不?
谢谢
nicholasdlut
2楼-- · 2019-12-16 03:32
我是Boot+APP+配置和参数区域,APP升级失败无所谓,有外部外门狗,一直停在Boot区域,会提示需要再次升级;升级之后继承老的配置和参数;我觉得这样挺简单,也不浪费空间
qwe2231695
3楼-- · 2019-12-16 05:34
 精彩回答 2  元偷偷看……
823032003
4楼-- · 2019-12-16 07:12
nicholasdlut 发表于 2019-2-3 10:07
我是Boot+APP+配置和参数区域,APP升级失败无所谓,有外部外门狗,一直停在Boot区域,会提示需要再次升级; ...

双备份目的是升级失败,还可以继续跑之前的程序。
acmilannast
5楼-- · 2019-12-16 12:49
823032003 发表于 2019-2-1 06:45
把app2刷到app1的过程,如果有异常掉电会有问题。。

没啥问题。下次上电继续搬运呗。APP2完整的 没有被破坏。
nyszx
6楼-- · 2019-12-16 16:15
把新APP放到外部flash的方案我也想过,进行完整性校验后再刷机,防止文件接收不全。这样做会不会有安全性问题,是不是需要加密,防止在接收校验通过后,被人恶意拷贝,篡改?

一周热门 更多>