公司最近在STM32在线升级的方案,技术汇总了一下在线升级的设计思路,也想请大家一起来批评指导。
如下图所示,设计一个BOOT程序,BOOT程序的功能是引导程序跳转执行APP1或者APP2程序。
当最开始的时候,先烧录BOOT程序,后烧录APP1程序。在利用串口或者网络的方式将需要升级的APP2程序HEX文件放置到到0X02开始的位置,然后改变BOOT引导到重启到APP2的位置。
到APP2升级APP1的时候亦是如此,
这样设计对存储空间要求比较大。请问还有更优的设计方案吗。?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
去掉每次,后面每次启动只检查版本,相同就跳过。
不然太慢,也很快就烧坏了。
是的啊,如果在APP里进行远程升级的话,那是需要分APP1+APP2的,在APP1里接收APP2成功并校验通过,就可以复位到Bootloader里了,然后将APP2代码移到APP1里,跳转就可以了。
但如果不需要远程升级,就是个串口升级,只需要1个APP1,因为升级过程中可能接收失败或写flash失败,所以如果失败了boolodaer重启继续等升级,如果成功就跳转。
请问您SPI FLASH是使用的那款?
一周热门 更多>