新聞中心

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

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

        作者: 時間:2024-01-17 來源:STM32單片機 收藏

        01 前言

        本文引用地址:http://www.104case.com/article/202401/454921.htm

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

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

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

        此外, 由于 STM32H503 不帶 TrustZone, 它的 DA 過程與 H563 不開啟 TZ 的情況下類似。除此之外, 與 H563 不同的是, H503 內(nèi)部沒有 OBK 區(qū)域, 因此, 預(yù)配置過程會將密碼對應(yīng)的 obk 文件寫入芯片內(nèi)部的 OTP 中。

        02 準備工作

        開發(fā)板: 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, 在此目錄下, 已經(jīng)包含了默認自帶的 obk密鑰。其實我們可以直接使用這些 obk 以及對應(yīng)的密鑰, 但在這個文檔我們將重新生成一套,并測試它是否 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 處輸入你想要設(shè)置的密碼, 這里我們直接使用默認密碼即可。然后在 output file 處設(shè)置輸出文件, 我們也使用默認即可。最后點擊 Generate OBkey 按鍵, 在 Binary 目錄下生成對應(yīng)的 obk 文件和bin 文件 :

        圖片

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

        3.2. 預(yù)配置 DA(provisioning)

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

        圖片

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

        圖片

        然后使用 STM32CubeProgrammer 進行預(yù)配置 :

        圖片

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

        圖片

        結(jié)果將彈出對話框提示預(yù)配置成功。

        3.3. DA 回退

        接下來我們直接使用密碼進行 DA 回退…

        圖片

        如上圖, 在 STM32CubeProgrammer 斷開的情況下, 點擊 Discover…

        圖片

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

        然后點擊 Full Regression 按鍵…

        圖片

        如上圖所示, 成功時會彈出提示對話框。

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

        04 燒錄程序再次測試

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

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

        05 還原

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

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



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

        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 翁牛特旗| 井冈山市| 宁武县| 固阳县| 瑞昌市| 湟中县| 莱西市| 万盛区| 鄂托克旗| 枝江市| 乐都县| 灵台县| 平泉县| 屏东市| 英超| 合阳县| 德格县| 中宁县| 西宁市| 宁乡县| 奉新县| 田林县| 乐陵市| 太原市| 行唐县| 阿勒泰市| 茂名市| 河间市| 平阴县| 潼关县| 大洼县| 镇康县| 文安县| 沂南县| 雷山县| 武乡县| 静安区| 邵阳县| 隆德县| 靖远县| 太仆寺旗|