AN2606 是意法半导体(ST)官方发布的STM32 全系列微控制器系统内存启动权威应用笔记,也是嵌入式开发、量产烧录、设备救砖的必备参考文档。它完整定义了 STM32 系统内存启动模式的工作原理、激活方式、通信接口、硬件规范与编程限制,覆盖从入门级 C0 系列到高端 H7/U5 安全系列的全型号适配规则,是搞定 STM32 底层烧录与启动配置的核心手册。
资料获取:【应用笔记】AN2606 STM32微控制器系统内存启动模式
1. 系统内存启动:STM32 的官方底层烧录入口
系统内存是 STM32 芯片出厂时固化在 ROM 中的专属存储区域,ST 在其中烧录了不可擦除、不可修改的官方自举 Bootloader 程序。
系统内存启动模式的核心作用:芯片上电后优先运行 ROM 内的 Bootloader,而非用户 Flash 中的应用程序,通过指定串行接口完成固件烧录、读取、保护配置等操作,是设备程序损坏、加密锁死时的 “自救通道”,也是量产批量烧录的标准方案。
2. 系统内存启动的两种激活方式
AN2606 明确了 STM32 全系列的启动激活规则,分为硬件引脚配置和选项字节软件配置两类,覆盖文档中 16 种激活模式,开发中最常用的是以下两种:
2.1 硬件 BOOT 引脚配置(通用首选)
通过BOOT0/BOOT1引脚电平组合切换,主流系列通用规则:
- 主 Flash 启动(正常运行):BOOT0 = 低电平
- 系统内存启动(Bootloader 模式):BOOT0 = 高电平
- 内置 SRAM 启动(调试专用):BOOT0/BOOT1 均为高电平(部分系列支持)
不同系列引脚定义略有差异,AN2606 按型号提供了完整对照,硬件设计建议预留 BOOT 引脚调试接口。
2.2 选项字节软件配置
无需改动硬件,通过软件修改选项字节锁定启动模式,适合量产设备远程切换启动方式,新系列(L5/U5)还支持 TrustZone 安全环境下的启动配置。
3. 系统内存 Bootloader 支持的通信接口
官方 Bootloader 支持多类串行接口,不同 STM32 系列适配不同组合,AN2606 已按型号标注完整:
- 全系列通用:USART 串口(最常用,低成本烧录、调试)
- 中高端系列:USB DFU、CAN/FDCAN、I2C、SPI
- 安全系列:L5/U5/WB/WL 支持安全环境下的引导通信
- 极简系列:C0/G0 仅支持 USART+I2C 基础接口
所有接口均遵循 ST 官方通信协议,可直接搭配STM32CubeProgrammer工具完成固件操作。
4. 启动流程:Bootloader 自动选择逻辑
芯片进入系统内存启动后,Bootloader 会按固定流程自动检测通信接口:
- 系统复位,禁用中断与无用外设时钟
- 初始化 GPIO、IWDG、SysTick 基础资源
- 按优先级检测 USART→I2C→SPI→USB→CAN 接口
- 检测到有效通信指令后,锁定对应接口并进入命令循环
- 超时未检测到指令,部分系列会自动休眠
不同型号的检测顺序略有差异,AN2606 针对每个系列都给出了专属选择流程图。
5. 硬件连接规范:各接口接线要求
AN2606 明确了所有接口的硬件连接标准,避免通信失败:
- USART:TX-RX 交叉连接,GND 共地,建议加 100KΩ 上拉电阻
- USB DFU:DP/DM 直连,部分系列需外部 1.5KΩ 上拉电阻
- I2C:SCL/SDA 各接 1.8KΩ 上拉电阻,7 位从地址固定
- SPI:NSS 接 GND,SCK 加下拉电阻,主从模式对接
- CAN:加 120Ω 终端电阻,通过 CAN 收发器连接
6. 核心操作规范:存储器管理与编程限制
6.1 支持的存储区域
可操作内部 Flash、SRAM、选项字节、OTP、数据存储区,系统内存本身只读不可写。
6.2 编程对齐要求
Flash 写操作必须字对齐(地址为 4 的倍数),数据长度也需为 4 的倍数,非对齐操作会直接失败。
6.3 波特率检测规则
USART 接口分软件检测和自动波特率两种:
- 软件检测:F0/F1/F2/F3/F4/F7/L0/L1/L4 系列,存在 ±1%~±6% 抖动,建议用低波特率(57600bps)
- 自动波特率:G0/G4/H7/WB/WL/U5 系列,无抖动,支持 115200bps 高速通信
6.4 安全特性:ExitSecureMemory
针对 G0/G4 等带安全存储区的系列,提供 ExitSecureMemory 函数,可锁定安全存储区权限,保护敏感代码与密钥。
7. 实用场景与避坑要点
核心使用场景
- 设备救砖:程序跑飞、升级失败、读保护锁死时,恢复固件
- 量产烧录:生产线批量下载程序,无需仿真器
- 远程升级:通过串口 / USB/I2C 远程更新固件
- 安全配置:修改选项字节、配置读保护、烧录密钥
AN2606 重点提醒
- 进入 Bootloader 后需在规定时间内发起通信,超时会休眠
- 开启 RDP 读保护 Level2 后,无法进入系统内存启动
- 不同系列的 Bootloader 版本、指令集存在差异,严格对照型号章节
- USB/CAN 接口部分系列需外部 HSE 时钟,否则无法通信
AN2606 是 STM32 系统内存启动的唯一官方权威指南,覆盖全系列芯片的启动激活、接口适配、硬件规范、编程限制,是嵌入式工程师必须掌握的底层文档。
198