01前言
本文是接着之前文档《STM32H5 DA 之初体验(带 TrustZone)》的后续之作。
由于新的 product state 和 DA 的引入, 所有 STM32H5 开发者都必须掌握DA 的用法。STM32H563 在 TrustZone 打开和不打开两种情况下, DA 所采用的策略是不相同的。当 TZ 打开时, 使用证书进行 DA, 而当 TZ 不打开时, 则使用密码来 DA。
因此, 本文档针对 STM32H5 初学者, 演示当 TZEN=0xC3(TrustZone 不打开)时, 使用密码来完成 DA 回退。当 TrustZone 未激活时, 不支持 DA 调试,只支持 DA 回退。
此外, 由于 STM32H503 不带 TrustZone, 它的 DA 过程与 H563 不开启 TZ 的情况下类似。除此之外, 与 H563 不同的是, H503 内部没有 OBK 区域, 因此, 预配置过程会将密码对应的 obk 文件写入芯片内部的 OTP 中。
02准备工作
开发板: 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目录下。
03生成OBK并测试
在 STM32CubeH5 包下的路径 STM32Cube_FW_H5_V1.1.0ProjectsNUCLEO-H563ZIROT_ProvisioningDA, 在此目录下, 已经包含了默认自带的 obk密钥。其实我们可以直接使用这些 obk 以及对应的密钥, 但在这个文档我们将重新生成一套,并测试它是否 OK。
3.1. 生成 DA OBK 文件和密码文件
打开 TPC 工具。
左边选择 H5, 上方选项卡选择 OBKey, 然后在 xml file 处选择C:/workspace/STM32Cube_FW_H5_V1.1.0/Projects/NUCLEOH563ZI/ROT_Provisioning/DA/Config/DA_ConfigWithPassword.xml, 然后在 Password 处输入你想要设置的密码, 这里我们直接使用默认密码即可。然后在 output file 处设置输出文件, 我们也使用默认即可。最后点击 Generate OBkey 按键, 在 Binary 目录下生成对应的 obk 文件和bin 文件 :
如上图所示, DA_ConfigWithPassword.obk 是用来做预配置(provisioning)用的, 而password.bin 则是在 DA 过程中需要的密码文件了。
3.2. 预配置 DA(provisioning)
接下来我们将做预配置 DA, 在此之前我们确保 TZEN=0xC3。
然后将 product state 配置为 provisioning 状态 :
然后使用 STM32CubeProgrammer 进行预配置 :
如上图所示, 在 OBKey file path 处输入C:workspaceSTM32Cube_FW_H5_V1.1.0ProjectsNUCLEOH563ZIROT_ProvisioningDABinaryDA_ConfigWithPassword.obk 文件, 再点击 Start Provisioning 按键…
结果将弹出对话框提示预配置成功。
3.3. DA 回退
接下来我们直接使用密码进行 DA 回退…
如上图, 在 STM32CubeProgrammer 断开的情况下, 点击 Discover…
如上图所示, 在 Password File Path 处输入密码文件 workspaceSTM32Cube_FW_H5_V1.1.0ProjectsNUCLEOH563ZIROT_ProvisioningDABinarypassword.bin
然后点击 Full Regression 按键…
如上图所示, 成功时会弹出提示对话框。
这表示, 之前 DA 预配置的 obk 文件与当前输入的密码文件是匹配的。
04烧录程序再次测试
接下来, 我们正式烧录一个程序并测试。在 product state=open 状态下, 且 TZEN=0xC3 时, 此时烧录任何一个不带 TrustZone 的程序,并确保其在 OPEN 状态下能正常运行,然后将 product state 切换到 provisioning 状态进行 DA 预配置, 重复 3.2 节步骤。
在预配置成功之后, 然后将 product state 切换到 CLOSED(0x72)状态. 此时 STLink 是无法再连接的, 然后检查程序是能依然正常运行。这就是最终想要达到的效果。在此状态下, 可以通过 DA 进行回退。
05还原
还原的过程参考 3.3 节, 步骤完全一致。最终还原成功后, 全片 Flash 内容已经擦除。
至此, 芯片完全恢复成原始状态。
上一篇:STM32的ADC实验
下一篇:STM32定时器(三)输入捕获
推荐阅读最新更新时间:2024-11-09 11:08
设计资源 培训 开发板 精华推荐
- ESP12F-舵机控制开关灯
- 只因卡(爱坤)
- LTC2637-LZ10 四通道、10 位数模转换器的典型应用
- LT3091MPT7 具有 LDO 输入至输出控制的高效低噪声单电感正负转换器的典型应用
- 使用 NXP Semiconductors 的 PCA9632 的参考设计
- 使用 Richtek Technology Corporation 的 RT9178 的参考设计
- 使用 Infineon Technologies AG 的 OMR7812NH 的参考设计
- NCP3163BSTEVB,用于 NCP3163 24V /700 毫安 DC-DC 转换器的评估板
- DER-507 - 175mW恒定电压、通用输入、非隔离降压转换器
- 具有 400kHz 电荷泵开关的 LT8494EUF 宽输入和输出范围 SEPIC 转换器的典型应用电路
- 【已结束】TI 有奖直播|CAN SIC(信号改进功能)
- 只为汽车更安全,下载 TI DRV3000系列产品手册,抢楼截图入好礼喽!
- 阅1SP0350V SCALE-2单通道即插即用型门极驱动器,参与PI答题享好礼!
- 炎夏来临,足不出户也能尽享2018东芝PCIM在线展会
- Microchip有奖直播:如何充分利用零漂移运算放大器
- 直播已结束【使用 TI 低成本 MSPM0 MCU 快速开发 – 生态详解系列之二】(9:45开始入场)
- 沁恒CH579M-R1开发板免费测评,丰富外设等你体验
- 看视频瓜分红包:面向高效高密度开关电源的先进功率 MOSFET 技术及应用
- 考眼力:高速数字设计的秘籍 藏在哪里? 走近Keysight PATHWAVE,提升工作效率