实战经验 | STM32H5 DA 之初体验(不带 Trust Zone)
关键词: DA, Debug Authentication, 回退认证, 调试认证
目录预览
1、前言
2、准备工作
3、生成OBK并测试
4、烧录程序再次测试
5、还原
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.0\Projects\NUCLEO-H563ZI\ROT_Provisioning\DA, 在此目录下, 已经包含了默认自带的 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:\workspace\STM32Cube_FW_H5_V1.1.0\Projects\NUCLEOH563ZI\ROT_Provisioning\DA\Binary\DA_ConfigWithPassword.obk 文件, 再点击 Start Provisioning 按键…
结果将弹出对话框提示预配置成功。
3.3. DA 回退
接下来我们直接使用密码进行 DA 回退…
如上图, 在 STM32CubeProgrammer 断开的情况下, 点击 Discover…
如上图所示, 在 Password File Path 处输入密码文件 :C:\workspace\STM32Cube_FW_H5_V1.1.0\Projects\NUCLEOH563ZI\ROT_Provisioning\DA\Binary\password.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 内容已经擦除。
至此, 芯片完全恢复成原始状态。
推荐帖子
- 有没有烧掉过mini2440开发板的液晶屏啊?
- 前几天把板子借同学了,今天他告诉我说刚才调试的时候液晶屏烧掉了说刚才调试的时候有烧焦的味道,后来还看到屏背后冒白烟了:L拿回来之后把线重新插了一边也不行,一直黑屏,但是触摸屏功能测试是正常的;隐约可以看到黑色的屏幕内有闪动,就是屏没有点亮换了另外一块miro2440开发板的同样的液晶屏上去之后显示正常,那看来是我的开发板液晶屏有问题了但是我觉得这样不太可能啊,没有道理烧掉液晶屏嘛?问了几位卖家好像都没遇到过,这样的情况有谁清楚嘛?有没有烧掉过mini2440开发板的液晶屏啊?
- open82977352 嵌入式系统
- 交流同步发电机并车(并联运行)有临些条件?
- 交流同步发电机并车(并联运行)有临些条件?【答】有四个条件:1)两发电机的电势波形必须相等。为此,应当选择同型号的发电机并联运行,因为电势波形取决于发电机的结构。2)两发电机的电压有效值应相同。3)两发电机的频率应相等而且具有相同的初相角。4)两发电机具有相同的相序。注:其中1)条决定于电机的结构,4)条决定于安装接线,而2),3)条则决定于接入时的操作。资料来源:www.zhcyj.com交流同步发电机并车(并联运行)有临些条件?
- penghaibo 电源技术
- E2 studio自动代码生成求助
- 通过E2studio生成一个带rtos的软件项目想在软件里面增加一个sf_message的框架,结果在编译的时候提示找不到sf_message_port.h手动添加进去重新clean后添加的文件会删除,不删除调试的时候提示找不到相应的模块InfileincludedfromD:\Users\amoyhsy\e2_studio\workspace\Test\synergy\ssp\inc\framework\instances\sf_message.h:40:D:\Users\a
- skyworth74 瑞萨电子MCU
- S7-200的通信协议
- S7-200支持多种通信协议,如点对点接口(PPI)、多点接口(MPI)。他们都是基于字符的异步通信协议,带有起始位、8位数据、偶校验和一个停止位。只要波特率相同,三个协议可以在网络中同时运行,不会相互影响。点对点接口(PPI):是主/从协议,网络上的S7-200CPU均为从站,其他CPU、SIMATIC编程器等为主站。如果用户程序中允许PPI主站模式,一些S7-200CPU在RUN模式下可以作为主站(参考SMB30的描述),此时它们可以用网络读(NETR)和网络写(NETW)指令读写
- jek9528 工控电子
- AD转gerber文件导入CopperCam时,导入的电路图错误。
- AD转gerber文件导入CopperCam时,导入的电路图错误。CopperCam导入的电路图不是AD画的电路图。哪位大神可以解决吗?是转gerber文件时的错误还是软件问题呢?双面板和单面板都不能用了。AD转gerber文件导入CopperCam时,导入的电路图错误。如果是AD转gerber文件是为了导入CopperCam雕刻用,不是做PCB用转换之前,改变一下英制单位,把覆铜和补泪滴去掉 没什么用啊,还是不能用,能指导一下吗?这个是为什么呢?
- 搏击风浪 测试/测量
- LED电子显示屏解决方案
- Timson,如果您要查看本帖隐藏内容请回复LED电子显示屏解决方案不错,多谢推荐厂家嘻嘻,,,,,,学习
- 探路者 LED专区