[其他ST产品]

STM32CubeU5 TFM 应用程序入门

[复制链接]
217|0
手机看帖
扫描二维码
随时随地手机跟帖
豌豆爹|  楼主 | 2023-2-13 09:54 | 显示全部楼层 |阅读模式
引言本文档描述如何入门 STM32CubeU5 TFM(Arm® Cortex®-M 的可信固件)应用程序,该应用程序作为 STM32CubeU5 软件包组成部分提供。
STM32CubeU5 TFM 应用程序提供了包含安全启动和安全固件更新功能的可信根解决方案。该解决方案在执行应用程序之前使用,提供一组安全服务,这些服务与非安全应用程序相互隔离但可以在运行时间被非安全应用程序使用。STM32CubeU5 TFM应用程序基于已移植到 STM32U5 系列微控制器(以下统称为 STM32U5)上的开源 TF‑M 参考实现,目的是利用 STM32U5 的硬件安全特性,例如:
• Arm® Cortex®‑M33 TrustZone®和存储器保护单元(MPU)
• TrustZone®感知外设• 存储器保护 (HDP, WRP)
• 增强生命周期方案 (RDP)
另外,添加一个安全元件(STSAFE-A110 微控制器(以下统称为 STSAFE))可增强安全性。
安全服务是一种可升级的代码,提供了一组服务,非安全应用程序可以在运行时间使用这些服务,这些服务管理着与非安全应用程序相隔离的关键资产。非安全应用程序不能直接访问任何关键资产,但可以调用使用关键资产的安全服务:
• 安全启动 (可信根服务)是不可变代码段,总是在系统复位后执行。在每次执行前,它检查 STM32U5 静态保护,激活STM32U5 运行时间保护,然后验证所安装固件的真实性和完整性。以此确保无效或恶意代码无法运行。
• 安全固件更新应用程序是一种不可变代码,它检测可用的新固件映像,检查其真实性,并在安装代码之前检查其完整性。可对整个固件映像执行固件更新,包括固件映像的安全和非安全部分。或者,也可单独对固件映像的安全部分和/或非安全部分执行更新。在覆盖模式或交换模式下也可执行固件更新。可以明文或加密形式接收固件。
安全服务是实现了一组服务的可升级代码,这些服务管理着与非安全应用程序相隔离的关键资产。这意味着非安全应用程序不能直接访问任何关键资产,而只能调用使用关键资产的安全服务:
• 密码:基于不透明密钥 API 的安全密码服务
• 受保护存储:保护数据的机密性/真实性/完整性
• 内部可信存储:保护内部 Flash 存储器中数据的机密性/真实性/完整性(为微控制器实现的最安全的存储空间)
• 认证:通过实体认证令牌证明产品身份
本文档中的 TFM 应用程序是[TF-M]的完整实现。第二个仅实现[TF-M]安全启动和安全固件更新功能的应用程序名为STM32CubeU5 SBSFU,也可以在 STM32CubeU5 MCU软件包中获得。有关 SBSFU 应用程序的详细信息,请参见[AN5447]。
本文档的前面几章(第 4 至第 6 章)介绍了开源 TF‑M 部分(v1.3.0)。本文档的最后几章(第 7 至第 12 章)介绍了移植到STM32U5 微控制器并集成到 STM32CubeU5 MCU 软件包中的 TF‑M。
STM32CubeU5 TFM 应用程序和 SBSFU 应用程序示例是为 B-U585I-IOT02A 板提供的。
请参考[TF-M]获取关于开源 TF‑M 参考实现的更多信息。
1 概述
STM32CubeU5 TFM 应用程序在 STM32U5 系列 32 位微控制器上运行,这些微控制器基于具有 Arm® TrustZone®的 Arm® Cortex®‑M33 处理器。
提示 Arm 和 TrustZone 是 Arm Limited(或其子公司)在美国和或其他地区的注册商标。
表 1 给出了相关的缩略语定义,帮助您更好地理解本文档。


003135v7kbcbylyltwkcem.png

003134s9j7p2ccjmciun9i.png

2文档和看IYUN软件资源

003135c5a0r4bxla6xn6aw.png

3 STM32Cube 概述
STM32Cube 源自意法半导体,旨在通过减少开发工作量、时间和成本,明显提高设计人员的生产率。STM32Cube 涵盖整个 STM32 产品系列。STM32Cube 包括:
• 一套用户友好的软件开发工具,覆盖从概念到实现的整个项目开发过程,其中包括:
– STM32CubeMX 图形软件配置工具 STM32CubeMX,可通过图形向导自动生成初始化 C 代码。
– STM32CubeIDE 一种集外设配置、代码生成、代码编译和调试功能于一体的开发工具
– STM32CubeProgrammer (STM32CubeProg),图形版本和命令行版本中可用的编程工具。
– STM32CubeMonitor (STM32CubeMonitor、STM32CubeMonPwr、STM32CubeMonRF 和STM32CubeMonUCPD)功能强大的监控工具,用于实时微调 STM32 应用程序的行为和性能
• STM32Cube MCU 和 MPU 软件包,特定于每个微控制器和微处理器系列的综合嵌入式软件平台(如用于STM32U5 系列的 STM32CubeU5),它包含:
– STM32Cube 硬件抽象层(HAL),确保在 STM32 各个产品之间实现最大限度的可移植性。
– STM32Cube 底层 API,通过硬件提供高度用户控制,确保最佳性能和内存开销– 一组一致的中间件组件,如 ThreadX、FileX / LevelX、NetX Duo、USBX、USB-PD 触控库、网络库、mbed-crypto、TFM 和 OpenBL
– 嵌入式软件实用工具以及全套外设和应用实例
• STM32Cube 扩展包,其中包含嵌入式软件组件,这些组件用以下内容补充 STM32Cube MCU 和 MPU 软件包的功能:
– 中间件扩展和应用层
– 在特定的意法半导体开发板上运行的实现案例

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

497

主题

1869

帖子

4

粉丝