stm32 OTA实践

1.Bootloader工程
分区大小:

要实现的功能:

  1. 串口打印状态
  2. 检查升级标志
  3. 擦除App1区
  4. 烧写App1新固件
  5. 跳转App1

2.APP1区工程
要实现的功能:

  1. 应用程序功能
  2. 检查是否有升级信号
  3. 接收固件
  4. 写升级标志并复位

3.APP2区工程
要实现的功能:

  1. 同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函数。要实现的功能如下:

  1. 上电后串口打印状态
  2. 检查升级标志
posted @ 2025-11-03 16:47  seekwhale13  阅读(9)  评论(0)    收藏  举报