🟦 u5-06 启动与安全:Boot 模式与生命周期

🟦 STM32U575 数据手册初学者精讲 · 第 6 / 10 章
🗨️ U575 上电后从哪启动、TrustZone 开不开、代码能不能被读出来,这些问题由 Boot 模式、TZEN 和 RDP 生命周期共同决定。
这一章在干嘛? 学会看 Boot 配置、理解安全启动与 RDP 等级,避免调试时因为安全设置而锁死芯片。

Boot 模式:芯片上电后先去哪取指令

STM32U575 通过 BOOT0 引脚BOOT1 选项位 决定启动来源:

启动来源触发条件用途
主 FlashBOOT0=0(默认)正常运行用户程序
系统存储器BOOT0=1运行 ST 出厂 bootloader,用于串口/I2C/SPI/USB 下载
SRAM选项字节配置调试或临时加载代码
日常开发中,BOOT0 通常接地,上电后直接从 Flash 跑你的程序。

TrustZone 启动:安全世界先跑

TZEN=1 时,芯片上电后先进入 安全世界,执行安全启动代码。安全代码完成初始化后,再跳转去非安全世界的用户程序。

对初学者的影响:

如果你的 CubeMX 工程默认开启了 TrustZone,但你并没有写安全世界代码,可能会发现程序进不了 main()。这时先把 TZEN 关掉,专注于非安全世界开发。

RDP:读保护等级

RDP 控制外部调试器能否读取 Flash 内容:

等级功能风险
Level 0无保护,可读可写代码容易被抄
Level 0.5非安全 Flash 可读,安全 Flash 不可读TrustZone 场景用
Level 1不能读/写/擦除 Flash,可改回 Level 0调试器读不出代码,但可以降级
Level 2永久关闭调试接口,不可降级芯片彻底锁死调试
RDP Level 2 不可逆!调试阶段绝对不要设 Level 2,否则 JTAG/SWD 永不可用。

安全固件安装 SFI

SFI 允许你在生产线上把加密的固件烧进 Flash,芯片内部解密后运行。即使代工厂拿到你的固件文件,也无法反编译。

对初学者来说,SFI 属于进阶话题;知道有这个东西即可,量产高安全产品时再用。

生命周期与调试密码

U575 支持 RDP 密码调试认证。即使 RDP Level 1 也可以配置一个密码,合法调试器输入密码后获得临时访问权限。

如果你做产品需要保护代码又不想锁死调试,可以考虑 RDP Level 1 + 调试密码,而不是直接 Level 2。
🧠 小测验
默认情况下,BOOT0 接什么电平会从主 Flash 启动?
低电平(接地)。
TZEN=1 时 CPU 先进入哪个世界?
安全世界(Secure World)。
RDP Level 2 有什么后果?
JTAG/SWD 调试接口永久关闭,无法恢复。
← 上一篇🏠 顶层目录下一篇 →