STM32/STM8技术论坛
直播中

姚志奋

7年用户 143经验值
私信 关注
[问答]

请问STM32F4 IAP升级是一边收数据一边写flash好还是等bin文件都收完了一次写flash好

最近打算做IAP升级,用的STM32F4,遇到一个问题,就是IAP升级时是一边收数据一边写flash好还是等bin文件都收完了一次写flash好。因为有时APP程序会大于SRAM的大小,这样就不能一次收完bin文件再写了。但是一边收一边写flash(假如收2k的数据后就写flash),如果中间通信故障,那么升级失败,连原来的APP程序也运行不了了。
有什么好的办法可以避免这种问题。(也想过先把原来的APP备份在某个扇区,如果中间升级失败在回退,但是不知道这样会不会很耗时间)

回帖(6)

王聪

2018-12-12 08:57:48
升级失败了还可以再次升级的呀
举报

李悛

2018-12-12 09:08:46
无法避免,因为在写APP时已经无法避免了(升级前会先擦除APP扇区)。
你不是还有IAP吗?有IAP在就可以无限次数升级APP。
举报

李景天

2018-12-12 09:25:24
flash1 flash2,一个crcerror 执行另一个
举报

李敏

2018-12-12 09:39:15
如果存储空间够大,备份一下现有的APP,好点时也没关系,在写APP时最好搞个标志,表示升级OK,在写完APP时设置这个存储区,以防中途断电导致升级到一半就挂了,后面IAP进来的话肯定会挂掉
举报

贾飞小

2018-12-12 09:45:11
1、确保IAP程序稳定;
2、增加校验,重传
举报

夏房釜

2018-12-12 09:58:49
引用: 不会不会 发表于 2018-12-12 11:41
flash1 flash2,一个crcerror 执行另一个

也是用的这种, BOOT, APP, APP_BACK, 三个区
举报

更多回帖

发帖
×
20
完善资料,
赚取积分