12_OTA功能设计
1.01_数据结构2.02_实战项目Zlog日志框架3.03_google测试框架4.04_串口打印print函数5.05_定时器6.06_GPIO输出控制7.07_IO外部中断8.08_了解STM32串口通讯9.09_学会单片机STM32的IIC通信10.10_学会单片机STM32看门狗11.11_学会单片机仿真调试Debug
12.12_OTA功能设计
13.13_实战 USB鼠标14.14_RTOS介绍15.15_搭建freertos工程16.16_freeRTOS 任务控制函数17.17_freeRTOS 任务状态切换18.18_系统时钟管理19.19_系统内存管理20.20_信号量21.21_消息队列22.22_Linux常用指令23.23_Linux工程搭建24.24_linux c多线程25.25_linux c 多进程26.26_linux 文件编程27.27_linux 网络编程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区, 实现修复
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!