|
最近学习了 ST 官方《STM32 MCUBoot 安全启动与固件升级》课程,梳理下个人理解与踩坑点。1 \# p) r; I8 M. v 一、课程核心收获& T$ V- b8 @( W" M# Y7 P- s 1. 搞懂传统 SBSFU 与新一代基于 MCUBoot 的 OEMiROT 方案差异。MCUBoot 作为开源 Bootloader,实现 Boot 与业务应用解耦,适合 U5/H5/WBA 这类 Cortex‑M33 带 TrustZone 芯片。2. 安全核心机制
安全启动:上电后 MCUBoot 对 APP 镜像做签名、哈希校验,校验通过才跳转运行 App,拒绝非法固件。 固件升级:支持双分区交换、双分区覆盖、单分区 多种升级模式,适配不同 Flash 资源的产品。; _7 M3 ^0 ~" V6 |- \+ C9 V0 ` 防回滚机制:依靠版本计数器,阻止设备被刷回存在漏洞的旧固件。7 v2 k3 n6 V- V; G3 V& g8 O7 M
3. 内存布局是重中之重,Boot 分区、主镜像槽、备份镜像槽、Trailer 元数据分区,划分错误会直接导致编译、升级失败。) q4 a; {5 e; \; }* E
4. 配套工具链:密钥生成、镜像签名加密工具,也支持对接外部 HSM 签名服务器,满足量产密钥管理需求。
二、学习中遇到的疑; x. D8 ]# l+ N9 B+ E 1. Build Actions 配置容易出错,Boot 工程、App 工程预编译、后处理脚本要配套,新手容易遗漏配置。- ~! V9 m* C5 k+ Z 2. 不同升级模式怎么选:Flash 空间紧张选什么模式、断电容错能力怎么权衡,需要结合产品硬件资源做取舍。 ; d; `. U1 h$ a- w1 c/ v 三、实践感受 普通 IAP 升级只有简单拷贝跳转,没有校验保护,很容易被篡改固件。MCUBoot 完整覆盖镜像校验、加密、防回滚、断电保护,对物联网设备安全非常实用。课程从原理、内存布局、工具链到量产部署完整串起来,对做安全 OTA 开发很有参考价值。2 k% `& P2 e5 n- i; d8 ? , U' j0 y; ~( q5 E9 B/ l% o |
《STM32CubeMX2 实战课程》学习笔记+初体验
STM32CubeMX2 学习分享: Parts 经验分享
STM32CubeMX2 学习分享:Middlewares & Utilities 小记
STM32CubeMX2 学习分享:Peripherals 配置小记
STM32CubeMX2 学习分享:界面和配置体验升级
《STM32CubeMX2 实战课程》学习笔记#10 STM32Cube 全家桶,到底干什么用?
《STM32CubeMX2 实战课程》学习笔记#9 STM32Cube:从芯片选型到监控的全流程开发指南
《STM32CubeMX2 实战课程》学习笔记#7 课程06 STM32CubeMX2导出Keil Studio工程
《STM32CubeMX2 实战课程》学习笔记#8 课程07.STM32CubeMX2使用Keil µvision
《STM32CubeMX2 实战课程》学习笔记#6 课程05.STM32CubeMX2导出IAR工程
微信公众号
手机版