• 正文
  • 相关推荐
申请入驻 产业图谱

APM32F4xx IAP 在线升级全攻略:Bootloader+APP 一键实现

10小时前
132
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

在量产产品中,IAP(In-Application Programming)在线升级已经是必备功能。APM32F4xx 系列 MCU 内置大容量 Flash,可轻松划分 Bootloader 与 APP 区域,通过串口、USB、网口、蓝牙等方式实现免拆壳固件更新。AN1084 应用笔记以串口 Ymodem 协议为例,完整讲解 IAP 原理、地址划分、向量表重定向、跳转机制与升级流程,照着做就能快速实现稳定升级。

资料获取:AN1084_APM32F4xx_IAP应用笔记

1. IAP 是什么?为什么一定要用?

IAP 可以理解为自定义 Bootloader,是一段烧录在 Flash 开头的启动程序,负责:

  • 开机初始化
  • 判断是否需要升级 APP
  • 接收新固件并写入 Flash
  • 校验固件完整性
  • 跳转到 APP 运行

使用 IAP 后,产品出厂后不用拆机、不用仿真器,直接通过串口 / 无线完成升级,大幅降低售后成本。

2. APM32F4xx Flash 地址划分(核心)

AN1084 给出最稳定的分区方案(以 1MB Flash 为例):

  • IAP Bootloader:0x08000000 ~ 0x08004000(大小 16KB)
  • APP 程序区:0x08004000 ~ 0x08100000(剩余空间)

要点:

  1. 地址必须按扇区对齐(16KB 倍数)
  2. IAP 占前 16KB 足够存放 Bootloader
  3. APP 从 0x08004000 开始

3. IAP 完整工作流程

  1. 芯片上电,从0x08000000启动 IAP
  2. 初始化串口、Flash、Ymodem 协议
  3. 显示菜单,等待指令:
    • 按 1:更新 APP
    • 按 2:读取 APP
    • 按 3:直接跳转到 APP

     

  4. 升级时通过 Ymodem 接收.bin文件
  5. 擦除 Flash → 写入 APP → 校验
  6. 自动跳转到 APP 运行

4. IAP 与 APP 最关键配置(必改)

4.1 APP 中断向量表重定向

APP 不在默认地址,必须修改偏移,否则中断无法使用:

// main函数开头加入
SCB->VTOR = FLASH_BASE | 0x4000;

4.2 MDK 工程 ROM 设置

  • IROM 起始地址:0x08004000
  • 大小:0x000FC000

4.3 生成.bin 固件

在 Keil 的 User 选项卡添加命令:

fromelf.exe --bin -o ./@L.bin !L

编译后自动生成可升级的 bin 文件。

5. IAP 程序结构(AN1084 标准方案)

  1. Flash 驱动:擦除、写入、读取
  2. USART1 驱动:PA9/PA10,115200 波特率
  3. Ymodem 协议:稳定传输 bin 文件
  4. 升级菜单:串口交互指令
  5. APP 跳转函数:栈顶地址 + 复位指针跳转

6. APP 程序设计要点

  1. 重定向中断向量表 SCB->VTOR = 0x08004000
  2. 正常初始化外设
  3. 跑 LED / 业务代码即可
  4. 编译后必须用 bin 文件升级

7. 升级操作步骤(超级终端 + Ymodem)

  1. 烧录 IAP 程序到0x08000000
  2. 打开串口调试助手(115200 8N1)
  3. 复位模块,看到 IAP 菜单
  4. 按1进入接收模式
  5. 通过 Ymodem 发送 APP 的.bin 文件
  6. 提示 “Programming Completed” 即成功
  7. 按 3 或等待超时自动跳转 APP

8. IAP 常见坑(AN1084 重点提醒)

  1. 中断向量表必须偏移,否则 APP 死机
  2. 只能用bin 文件,不能用 hex
  3. Flash 必须先擦除再写入
  4. 跳转前要关闭所有中断
  5. 地址必须扇区对齐,不能随便填
  6. 升级时必须保证不断电

AN1084 是 APM32F4xx 最实用的IAP 升级官方手册,提供完整可直接量产的方案:

  • Flash 分区清晰
  • 中断重定向明确
  • 代码结构标准
  • Ymodem 稳定可靠
  • 升级流程简单

只需修改少量参数,即可快速实现串口 IAP,也可扩展到 USB、网口、WiFi、蓝牙无线升级。

相关推荐