12_OTA功能设计
OTA功能设计
芯片划分
芯片开头一块划分为: bootloader
后面一些划分为: 应用程序数据
bootloader区地址不变, 那么通过网络就可以远程修改应用程序区数据实现OTA
OTA流程
1
通过WIFI模块将100k的更新数据发送到STM32芯片
2
STM32芯片分为BOOT引导程序区, APP应用区, 存储区, 升级标志, 备份区(成熟APP)
3
WIFI模块先将数据存储到存储区, 待到数据发送完毕使用CRC, MD5或者其他校验数据完整性方法, 确认无误后, 打开升级标志, 进行重启
4
Boot引导程序进行重启, 先查看升级标志, 有标志就进行升级操作, 将存储区的数据覆盖到App区, 升级完成后, 将升级标志关闭, 如果在升级过程中出现掉电情况, 那么下次重启Boot查看升级标志还是打开的继续升级覆盖
5
没有升级标志就正常运行APP程序
6
如果WIFI模块下载到STM32芯片的包是错误的有问题的, 那么通过Boot更新后APP会出现错误, 那么这时候就需要备份区的数据, 备份区的数据来源是芯片出场写入或App区正常运行的数据或者存储器确认没错误的数据
7
那么在重启时, 有一个button, 我们按住button重启, Boot引导程序就去备份区拿数据覆盖APP区, 实现修复