stm32 iap 远程升级方案讨论

2019-12-27 19:01发布

我想通过GPRS实现STM32的远程升级,想法是把512kflash分成两个应用程序区,平常工作在A区,如果收到升级数据就先写入B区,全部写完后如果校验通过就在某个位置上置标志位然后重启系统。系统在引导区的时候根据标志位来运行A区或B区。有谁能提供个思路呢???
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
100条回答
xizi
2020-01-06 23:39
回复【11楼】lcslxh
回复【8楼】alvin007  
关注中  
lz的思路时将内置flash分成3个区吧  
引导区  应用区a  应用区b  
其实这里的b区完全作为一个外置数据存储器来用了  
如果是这样何不在引导区加入“升级”程序 直接覆盖a区   
如果像4楼所说真的意外中断了  
也只是没有完成升级 引导程序没遭到破坏  
只需要重新升级即可  
不知这样是否可行
--------------------------------------------------------------------
你的这种思路有一个问题是,如果程序已经在运行了呢?在要升级的时候如何转到引导区呢?如何判断是在升级程序还是转到正常运行状态呢
-----------------------------------------------------------------------

将内置flash分成3个区的好处是升级失败后可以有放弃升级的选择,重新运行原来的代码。

如果内置flash只分成2个区,没有b区,每次升级程序直接覆盖a区。则升级失败后没有选择,只能反复努力,直到升级成功。

程序已经在运行不是问题,要升级的时候放狗咬人即可,复位后转到引导区。

一周热门 更多>