stm32 OTA实践
1.Bootloader工程
分区大小:
要实现的功能:
- 串口打印状态
- 检查升级标志
- 擦除App1区
- 烧写App1新固件
- 跳转App1
2.APP1区工程
要实现的功能:
- 应用程序功能
- 检查是否有升级信号
- 接收固件
- 写升级标志并复位
3.APP2区工程
要实现的功能:
- 同APP1
生成.bin文件
分区:
| 区域 | 起始地址 | 大小 | 结束地址 | 说明 |
|---|---|---|---|---|
| Bootloader | 0x08000000 | 20 KB (0x5000) | 0x08004FFF | 负责启动、升级判断、擦写App1、跳转等 |
| App1 (主应用程序) | 0x08005000 | 40 KB (0xA000) | 0x0800EFFF | 实际运行的主应用程序区 |
| App2 (固件缓存区) | 0x0800F000 | 40 KB (0xA000) | 0x08018FFF | 临时保存从上位机接收的新固件 |
| 参数区(可选) | 0x08019000 | 4 KB | 0x08019FFF | 存储升级标志、版本号等信息 |
| 保留区 | 0x0801A000 ~ 0x0801FFFF | ~24KB | 可后续扩展 |
1.Bootloader
Bootloader听起来似乎只是ota程序前起到一个检测升级的功能,但实际上与我们平常写的stm32程序没有区别,都有完整的中断向量表,完整的上电启动流程,完整的main函数。要实现的功能如下:
- 上电后串口打印状态
- 检查升级标志

浙公网安备 33010602011771号