IAP程序升级失败,产品变砖如何解决这个问题?

2019-07-21 08:29发布

大家好,IAP远程升级代码的时候,因为环境的因素,在通过串口无线烧录时有时会失败,这种情况很容易导致产品死机无法使用,大家有没想到更保险的方案呢?我看有些产品是用flash空间比较大的MCU,在IAP升级的过程中会先把原来可以用的代码先拷贝到别的地方,然后把新的代码下载进来,如果中途升级失败,再把旧的代码拷回原来的位置继续使用,这样不会导致产品无法使用,有没有人试过这种方法,或者有更好的方案,希望指教一下,感激不尽!!!!!!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
31条回答
钩月黄昏
1楼-- · 2019-07-24 13:07
憨厚诚实大叔 发表于 2016-6-1 17:26
我现在就是这样做的,直接在一个APP里面写另外一个APP的flash区的数据,写完校验无错后过去

我想在有两个产品硬件复用,我准备直接同一个芯片烧写两个固件进入,在生产的时候通过boot区选择进入那个APP区,这样就可以两个产品无差别的生产,只在出厂的时候在boot运行时设置一下···
电脑小白
2楼-- · 2019-07-24 14:42
钩月黄昏 发表于 2016-6-1 16:46
我觉得这样做不是有些繁琐吗?boot区,APP1区,APP2区,分成这个3个区,现在一个APP区运行待另一个APP区 ...

APP1和APP2的中断向量表不一样的,不能用同一个固件的。做两个工程岂不是更麻烦了么。
DongInker
3楼-- · 2019-07-24 20:17
/*
+----------+ 0X08000000
| Boot Code|
+----------+
| Boot Cfg | 1 Page
+----------+ 0X08002000
| Api Code |
+----------+
| License  | 1 Page
+----------+
| ResetTime| 2 Page
+----------+
| RunTime  | 2 Page
+----------+
| Api Cfg  | 2 Page
+----------+ MCU MAX ADDR
*/
ROM分配 其中Boot Cfg是可以供Api Code及Boot Code共同配置及访问。
电脑小白
4楼-- · 2019-07-24 20:38
DongInker 发表于 2016-6-2 20:55
/*
+----------+ 0X08000000
| Boot Code|

加上license和config的想法真的不错哦。
尤尤
5楼-- · 2019-07-24 21:23
 精彩回答 2  元偷偷看……
candylife9
6楼-- · 2019-07-24 21:52
本帖最后由 candylife9 于 2018-10-30 22:58 编辑

STM32F103远程网络升级,www.sharing-iot.com有一个视频课程,附参考代码。思路就是将新程序保存在一片FLASH中,无误后替换旧程序。有错误不进行替换,这样就不会变砖。

一周热门 更多>