STM32F4 IAP升级方案探讨

2019-07-20 12:08发布

最近打算做IAP升级,用的STM32F4,遇到一个问题,就是IAP升级时是一边收数据一边写flash好还是等bin文件都收完了一次写flash好。因为有时APP程序会大于SRAM的大小,这样就不能一次收完bin文件再写了。但是一边收一边写flash(假如收2k的数据后就写flash),如果中间通信故障,那么升级失败,连原来的APP程序也运行不了了。

有什么好的办法可以避免这种问题。(也想过先把原来的APP备份在某个扇区,如果中间升级失败在回退,但是不知道这样会不会很耗时间)
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
11条回答
xlong_06
1楼-- · 2019-07-20 17:08
 精彩回答 2  元偷偷看……
ZhuMX
2楼-- · 2019-07-20 19:02
 精彩回答 2  元偷偷看……
lzq12
3楼-- · 2019-07-21 00:39
我目前是用外部SRAM来接收需要升级的bin,接收完毕校验通过之后,再从外部SRAM那里把数据写入FLASH,目前这个方法用在SD卡升级和网络升级中都是稳定运行,突然断电也不会出问题,整个升级过程要十来秒钟
xlong_06
4楼-- · 2019-07-21 01:24
 精彩回答 2  元偷偷看……
ZhuMX
5楼-- · 2019-07-21 05:53
lzq12 发表于 2017-9-5 17:02
我目前是用外部SRAM来接收需要升级的bin,接收完毕校验通过之后,再从外部SRAM那里把数据写入FLASH,目前这 ...

请问你是分包接收还是一次性接收的bin文件?用的哪种校验方式?想参考下,谢谢
lzq12
6楼-- · 2019-07-21 11:25
ZhuMX 发表于 2017-9-5 17:06
请问你是分包接收还是一次性接收的bin文件?用的哪种校验方式?想参考下,谢谢

严格来说我基本都算不上校验,就是检测一下接收到的数据的一些标志。网络升级的校验完全就是靠协议,完全不担心数据丢失。这个是SD卡升级的:http://www.openedv.com/forum.php ... id=90835&extra=,这个是网络升级的:http://www.openedv.com/forum.php ... d=104667&extra=

一周热门 更多>