stm32 iap 远程升级方案讨论

2019-12-27 19:01发布

我想通过GPRS实现STM32的远程升级,想法是把512kflash分成两个应用程序区,平常工作在A区,如果收到升级数据就先写入B区,全部写完后如果校验通过就在某个位置上置标志位然后重启系统。系统在引导区的时候根据标志位来运行A区或B区。有谁能提供个思路呢???
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
99条回答
lcslxh
1楼-- · 2019-12-30 05:16
目前我的板子上挂了块sst25vf016b的flash,上电启动后运行在引导区,引导区通过串口接收升级数据存放在sst25vf016b,等全部接收完毕后置标志位,然后将外部flash的数据COPY进0x08002000开始的内部flash中,程序已经可以正常运行了,用户程序用到了ucos,没发现有个别用户说的带操作系统升级不成功现象
gghyoo
2楼-- · 2019-12-30 06:49
一个引导区,一个应用区,一个标志区

系统复位之后,进入引导区,引导程序判断标志区是否为0xAA,如果是,这进入应用程序,否则,进入ISP程序。

应用程序在运行时,接收到更新固件的命令之后,将标志区擦除,然后复位,复位后即可以进入ISP。

ISP程序在完成之后,将标志区写入0xAA,然后复位,复位后既可以进入应用程序。
gghyoo
3楼-- · 2019-12-30 09:30
引导区包含了ISP程序
James_King
4楼-- · 2019-12-30 13:08
关注
liouravr
5楼-- · 2019-12-30 17:33
 精彩回答 2  元偷偷看……
tothen5
6楼-- · 2019-12-30 20:38
远程升级不在于分几个区,这个功能都可以实现, 主要是GPRS断点续传,完整率的问题!

一周热门 更多>