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. 项目结构与配置流程

典型的项目包含三个核心部分:

  1. 安全启动加载程序 (SBSFU):第一个上电运行的代码,负责验证和跳转。
  2. 可信固件 (TFM):提供安全服务。
  3. 用户应用程序:运行在非安全世界的主程序。

4.1 从示例工程开始

  1. 我用的是STM32CubeIDE,参考例程是STM32CubeU5\Projects\B-U585I-IOT02A\Applications\SBSFU,这里有三个工程
    在这里插入图片描述
  2. 我做的第一步工作就是将SBSFU工程代码提取出来,不在cube包里面编译使用
  3. 第一步是将SBSFU文件夹复制到一个空白目录,先打开SBSFU_Boot工程,此时发现会缺失很多文件,在Cube包拷贝过来,一一对应重新添加进去即可。
    在这里插入图片描述
  4. 我会把重新整理出来的stm32u585工程同步提交到gitcode中,后面会发出来
  5. 持续更新中…
Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐