|
最近学习了 ST 官方《STM32 MCUBoot 安全启动与固件升级》课程,梳理下个人理解与踩坑点。 一、课程核心收获. S3 Z0 @4 W8 s9 W2 J! l 1. 搞懂传统 SBSFU 与新一代基于 MCUBoot 的 OEMiROT 方案差异。MCUBoot 作为开源 Bootloader,实现 Boot 与业务应用解耦,适合 U5/H5/WBA 这类 Cortex‑M33 带 TrustZone 芯片。2. 安全核心机制! o+ [; x9 F. F j1 M
安全启动:上电后 MCUBoot 对 APP 镜像做签名、哈希校验,校验通过才跳转运行 App,拒绝非法固件。/ }* r: c; g! G3 l/ |$ X 固件升级:支持双分区交换、双分区覆盖、单分区 多种升级模式,适配不同 Flash 资源的产品。 防回滚机制:依靠版本计数器,阻止设备被刷回存在漏洞的旧固件。1 E; Y% |$ }/ b5 S
3. 内存布局是重中之重,Boot 分区、主镜像槽、备份镜像槽、Trailer 元数据分区,划分错误会直接导致编译、升级失败。
4. 配套工具链:密钥生成、镜像签名加密工具,也支持对接外部 HSM 签名服务器,满足量产密钥管理需求。! P% f+ [0 I4 T! r7 o6 e9 A3 H
二、学习中遇到的疑 1. Build Actions 配置容易出错,Boot 工程、App 工程预编译、后处理脚本要配套,新手容易遗漏配置。" M# B- B8 N) h1 h, S3 a. s8 X 2. 不同升级模式怎么选:Flash 空间紧张选什么模式、断电容错能力怎么权衡,需要结合产品硬件资源做取舍。 三、实践感受 普通 IAP 升级只有简单拷贝跳转,没有校验保护,很容易被篡改固件。MCUBoot 完整覆盖镜像校验、加密、防回滚、断电保护,对物联网设备安全非常实用。课程从原理、内存布局、工具链到量产部署完整串起来,对做安全 OTA 开发很有参考价值。% r8 k* \0 U& n8 v# C' k& @' V* C ; `& l# d3 J0 L+ O I$ L |
《STM32CubeMX2 实战课程》学习笔记#7 课程06 STM32CubeMX2导出Keil Studio工程
《STM32CubeMX2 实战课程》学习笔记#8 课程07.STM32CubeMX2使用Keil µvision
《STM32CubeMX2 实战课程》学习笔记#6 课程05.STM32CubeMX2导出IAR工程
《STM32CubeMX2 实战课程》学习笔记#5-课程04 使用STM32CubeIDE打开CMake工程
《STM32CubeMX2 实战课程》学习笔记#4-课程03.STM32CubeMX2开发GPIO Toggle CMake工程并使用STM32CubeIDE for VS Code打开
《STM32CubeMX2 实战课程》学习笔记#3--课程2:STM32CubeMX2获取开发包和例程
《STM32CubeMX2 实战课程》学习笔记#2--课程4:STM32CubeMX和STM32CubeMX2官方中文入门教程
收到活动奖品
《MCUBoot 课程》学习笔记 + 物联网设备固件安全落地心得
《MCUBoot 课程》学习笔记 + 物联网设备固件安全落地心得
微信公众号
手机版