【学习笔记】STM32U585/STM32U575系列使用TrustZone+TFM+SBSFU
·
1. 引言
写这个文章的目的就是记录使用U5系列单片机在TrustZone的功能开发。STM32U5系列是STMicroelectronics推出的基于Arm® Cortex®-M33内核的超低功耗微控制器,其核心特性之一是集成了Arm TrustZone®硬件安全扩展。结合TFM(Trusted Firmware-M)和SBSFU(Secure Boot and Secure Firmware Update),可以构建一个从启动到应用更新的完整安全解决方案。本文旨在梳理相关概念、开发流程与实践要点,为后续项目开发提供参考。
2. 核心概念解析
2.1 Arm TrustZone® for Cortex®-M
TrustZone技术为系统提供了硬件级别的安全隔离,将资源(内存、外设、中断等)划分为安全(Secure)和非安全(Non-secure)两个世界。在STM32U5上,这允许敏感代码(如加密、密钥管理)与普通应用代码完全隔离运行。
2.2 Trusted Firmware-M (TFM)
TFM是Arm为Cortex-M系列处理器定义的参考安全固件实现。它运行在安全世界,提供一系列基础安全服务(如加解密、安全存储、 attestation),并通过PSA(Platform Security Architecture)标准化的接口向非安全世界的应用提供服务。
2.3 Secure Boot and Secure Firmware Update (SBSFU)
SBSFU是ST提供的一套解决方案,确保设备仅能启动经过认证的固件,并支持安全的无线(OTA)或有线固件更新。它通常作为安全世界的一部分,与TFM协同工作。
3. 开发环境与工具准备
3.1 硬件平台
- STM32U585或 STM32U575开发板
- ST-LINK/V2 或 V3 调试器
- 必要的串口/USB连接线
3.2 软件工具
- STM32CubeIDE :集成开发环境。
- STM32CubeU5 MCU Package:github地址
https://github.com/STMicroelectronics/STM32CubeU5 - STM32CubeProgrammer:用于烧录、配置选项字节(Option Bytes)和安全配置。
- Python 3:用于运行ST提供的签名脚本(
imgtool.py等)。
4. 项目结构与配置流程
典型的项目包含三个核心部分:
- 安全启动加载程序 (SBSFU):第一个上电运行的代码,负责验证和跳转。
- 可信固件 (TFM):提供安全服务。
- 用户应用程序:运行在非安全世界的主程序。
4.1 从示例工程开始
- 我用的是STM32CubeIDE,参考例程是
STM32CubeU5\Projects\B-U585I-IOT02A\Applications\SBSFU,这里有三个工程
- 我做的第一步工作就是将SBSFU工程代码提取出来,不在cube包里面编译使用。
- 第一步是将SBSFU文件夹复制到一个空白目录,先打开SBSFU_Boot工程,此时发现会缺失很多文件,在Cube包拷贝过来,一一对应重新添加进去即可。

- 我会把重新整理出来的stm32u585工程同步提交到gitcode中,后面会发出来
- 持续更新中…
更多推荐


所有评论(0)