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 內容已經擦除。
至此, 芯片完全恢復成原始狀態。
審核編輯:湯梓紅
-
芯片
+關注
關注
455文章
50816瀏覽量
423615 -
STM32
+關注
關注
2270文章
10900瀏覽量
356011 -
串口
+關注
關注
14文章
1554瀏覽量
76516
原文標題:實戰經驗 | STM32H5 DA 之初體驗(不帶 Trust Zone)
文章出處:【微信號:STM32_STM8_MCU,微信公眾號:STM32單片機】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論