|
最近学习了 ST 官方《STM32 MCUBoot 安全启动与固件升级》课程,梳理下个人理解与踩坑点。5 C* o/ C$ i: f , A9 O; ^' L3 a' i' K3 ?8 F 一、课程核心收获 1. 搞懂传统 SBSFU 与新一代基于 MCUBoot 的 OEMiROT 方案差异。MCUBoot 作为开源 Bootloader,实现 Boot 与业务应用解耦,适合 U5/H5/WBA 这类 Cortex‑M33 带 TrustZone 芯片。: C" |6 K& h* {) u4 z
2. 安全核心机制 安全启动:上电后 MCUBoot 对 APP 镜像做签名、哈希校验,校验通过才跳转运行 App,拒绝非法固件。3 l3 j: D/ Z0 C2 b* Q: f& z 固件升级:支持双分区交换、双分区覆盖、单分区多种升级模式,适配不同 Flash 资源的产品。/ l* y7 ?0 l8 F0 _" Y6 } 防回滚机制:依靠版本计数器,阻止设备被刷回存在漏洞的旧固件。/ |8 g2 q6 T0 H3 a: q4 y
3. 内存布局是重中之重,Boot 分区、主镜像槽、备份镜像槽、Trailer 元数据分区,划分错误会直接导致编译、升级失败。
4. 配套工具链:密钥生成、镜像签名加密工具,也支持对接外部 HSM 签名服务器,满足量产密钥管理需求。. ^+ r- ^& x, m* P' ]; K' a
二、学习中遇到的疑问2 Y% F+ T: z* H9 A; v 1. Build Actions 配置容易出错,Boot 工程、App 工程预编译、后处理脚本要配套,容易遗漏配置。( u! s/ T! \( X* {7 [% d, @ 2. 不同升级模式怎么选:Flash 空间紧张选什么模式、断电容错能力怎么权衡,需要结合产品硬件资源做取舍。 三、实践感悟 普通 IAP 升级只有简单拷贝跳转,没有校验保护,很容易被篡改固件。MCUBoot 完整覆盖镜像校验、加密、防回滚、断电保护,对物联网设备安全非常实用。课程从原理、内存布局、工具链到量产部署完整串起来,对做安全 OTA 开发很有参考价值。 2 t- U! F$ l" W4 Z |
《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工程
微信公众号
手机版