<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > STM32H5 DA 之初體驗(不帶 Trust Zone)

STM32H5 DA 之初體驗(不帶 Trust Zone)

作者: 時(shí)間:2024-01-17 來(lái)源:STM32單片機 收藏

01 前言

本文引用地址:http://dyxdggzs.com/article/202401/454921.htm

本文是接著(zhù)之前文檔《 DA 之初體驗(帶 )》的后續之作。

由于新的 product state 和 DA 的引入, 所有 開(kāi)發(fā)者都必須掌握DA 的用法。63 在 打開(kāi)和不打開(kāi)兩種情況下, DA 所采用的策略是不相同的。當 TZ 打開(kāi)時(shí), 使用證書(shū)進(jìn)行 DA, 而當 TZ 不打開(kāi)時(shí), 則使用密碼來(lái) DA。

因此, 本文檔針對 STM32H5 初學(xué)者, 演示當 TZEN=0xC3( 不打開(kāi))時(shí), 使用密碼來(lái)完成 DA 回退。當 TrustZone 未激活時(shí), 不支持 DA 調試,只支持 DA 回退。

此外, 由于 STM32H503 不帶 TrustZone, 它的 DA 過(guò)程與 H563 不開(kāi)啟 TZ 的情況下類(lèi)似。除此之外, 與 H563 不同的是, H503 內部沒(méi)有 OBK 區域, 因此, 預配置過(guò)程會(huì )將密碼對應的 obk 文件寫(xiě)入芯片內部的 OTP 中。

02 準備工作

開(kāi)發(fā)板: NUCLEO-H563ZI

圖片

軟件包: STM32Cube_FW_H5_V1.1.0

工具:

? STM32CubeProgrammer v2.14.0

? Tera Term 串口終端顯示

? Trust Package Creator (安裝 STM32CubeProgrammer 時(shí)一并安裝, 注意勾選)

IDE: STM32CubeIDE v1.13.0

STM32CubeH5 包我們需要將其放到一個(gè)沒(méi)有空格沒(méi)有中文的路徑下, 在本動(dòng)手實(shí)驗中, 我們默認將其放在路徑 C:workspace目錄下。

03 生成OBK并測試

在 STM32CubeH5 包下的路徑 STM32Cube_FW_H5_V1.1.0ProjectsNUCLEO-H563ZIROT_ProvisioningDA, 在此目錄下, 已經(jīng)包含了默認自帶的 obk密鑰。其實(shí)我們可以直接使用這些 obk 以及對應的密鑰, 但在這個(gè)文檔我們將重新生成一套,并測試它是否 OK。

3.1. 生成 DA OBK 文件和密碼文件

打開(kāi) 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 處設置輸出文件, 我們也使用默認即可。最后點(diǎn)擊 Generate OBkey 按鍵, 在 Binary 目錄下生成對應的 obk 文件和bin 文件 :

圖片

如上圖所示, DA_ConfigWithPassword.obk 是用來(lái)做預配置(provisioning)用的, 而password.bin 則是在 DA 過(guò)程中需要的密碼文件了。

3.2. 預配置 DA(provisioning)

接下來(lái)我們將做預配置 DA, 在此之前我們確保 TZEN=0xC3。

圖片

然后將 product state 配置為 provisioning 狀態(tài) :

圖片

然后使用 STM32CubeProgrammer 進(jìn)行預配置 :

圖片

如上圖所示, 在 OBKey file path 處輸入C:workspaceSTM32Cube_FW_H5_V1.1.0ProjectsNUCLEOH563ZIROT_ProvisioningDABinaryDA_ConfigWithPassword.obk 文件, 再點(diǎn)擊 Start Provisioning 按鍵…

圖片

結果將彈出對話(huà)框提示預配置成功。

3.3. DA 回退

接下來(lái)我們直接使用密碼進(jìn)行 DA 回退…

圖片

如上圖, 在 STM32CubeProgrammer 斷開(kāi)的情況下, 點(diǎn)擊 Discover…

圖片

如上圖所示, 在 Password File Path 處輸入密碼文件 :C:workspaceSTM32Cube_FW_H5_V1.1.0ProjectsNUCLEOH563ZIROT_ProvisioningDABinarypassword.bin

然后點(diǎn)擊 Full Regression 按鍵…

圖片

如上圖所示, 成功時(shí)會(huì )彈出提示對話(huà)框。

這表示, 之前 DA 預配置的 obk 文件與當前輸入的密碼文件是匹配的。

04 燒錄程序再次測試

接下來(lái), 我們正式燒錄一個(gè)程序并測試。在 product state=open 狀態(tài)下, 且 TZEN=0xC3 時(shí), 此時(shí)燒錄任何一個(gè)不帶 TrustZone 的程序,并確保其在 OPEN 狀態(tài)下能正常運行,然后將 product state 切換到 provisioning 狀態(tài)進(jìn)行 DA 預配置, 重復 3.2 節步驟。

在預配置成功之后, 然后將 product state 切換到 CLOSED(0x72)狀態(tài). 此時(shí) STLink 是無(wú)法再連接的, 然后檢查程序是能依然正常運行。這就是最終想要達到的效果。在此狀態(tài)下, 可以通過(guò) DA 進(jìn)行回退。

05 還原

還原的過(guò)程參考 3.3 節, 步驟完全一致。最終還原成功后, 全片 Flash 內容已經(jīng)擦除。

至此, 芯片完全恢復成原始狀態(tài)。



關(guān)鍵詞: STM32H5 TrustZone DA調試

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>