一、前言

STM32H5 是 ST 2023 年新推出的产品系列,与以往 MCU 不同的是, STM32H5 推出新的 product state 功能特性以替代以往的 RDP 功能。

如上图所示,product state 有如下状态 : 

Open(0xED) : 完全 open 状态,相当于以前的 RDP0。 

Provisioning(0x17) : 此状态是专门用来做预配置的。 

iROT-Provisioned(0x2E) : 用于 STiROT 或 OEMiROT。 

TZ-Closed(0xC6): Secure 区域关闭, 相当于 RDP0.5(仅在 TZEN=0xB4 时有效)。 

Closed(0x72): S 和 NS 区域均受到保护,这点有些类似于 RDP1,此时调试口没法对其直接访问,但可通 过 DA 打开调试口或回退,这一点有点类似于 STM32U5 上的可带密码回退的 RDP2。 

Locked(0x5C): 完全关闭芯片的外部访问,相当于以往 STM32 芯片的 RDP2 保护等级。

整体如下图所示:

其状态切换如下图所示 :

如上图所示,product state 从 open->provisioning->iROT-Provisioned->TZ-Closed->Closed 如此从左到右是可切换的,但是,要从右到左如此回退,则必须要经过 DA[Debug Authentication]过程。如上图所示,经过 DA 后,要么完全回退到 Open 状态,要么部分回退到 TZ-Closed 状态。

所谓的 DA,就是通过向芯片提供证书(STM32H503 是提供密码),通过芯片的身份认证后,允许向 芯片发起 product state 状态回退,或者重新打开调试口请求(仅当 TZEN=0xB4 时)。

由于新的 product state 和 DA 的引入,所有 STM32H5 开发者都必须掌握 DA 的用法。因此,本 文档针对 STM32H5 初学者,演示当 TZEN=0xB4 时, 使用证书来完成 DA 过程。

二、准备工作

开发板 : NUCLEO-H563ZI 

软件包 : STM32Cube_FW_H5_V1.1.0

工具:

STM32CubeProgrammer v2.14.0 

Tera Term 串口终端显示 

Trust Package Creator(安装 STM32CubeProgrammer 时一并安装, 注意勾选)

IDE: STM32CubeIDE v1.13.0 

STM32CubeH5 包我们需要将其放到一个没有空格没有中文的路径下,在本动手实验中,我们 默认将其放在路径 C:\workspace\目录下。

三、生成 OBK 并测试

在 STM32CubeH5 包下的路径 STM32Cube_FW_H5_V1.1.0\Projects\NUCLEOH563ZI\ROT_Provisioning\DA,在此目录下,已经包含了自带的默认 obk,密钥以及证书。其实 我们可以直接使用这些 obk 以及对应的证书和密钥,这里我们将重新生成一套,并测试它是否 OK。

3.1. 重新生成密钥对打开 TPC(TrustedPackageCreator)工具 

在 xml file 处,导入 DA_Config.xml 文件 :

C:/workspace/STM32Cube_FW_H5_V1.1.0/Projects/NUCLEO-H563ZI/ROT_Provisioning/DA/Config/DA_Config.xml

如上图,在导入 DA_Config.xml 文件后,点击 Regenerate 按键后,将在 Keys 目录下重新生成公钥私钥对 :

文章链接

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。