0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

實戰(zhàn)經(jīng)驗 | TrustZone 架構下 LPBAM 使用導致的 HardFault

STM32單片機 ? 來源:未知 ? 2023-10-20 15:05 ? 次閱讀
wKgaomUyJ8mAUJSZAAHUHXdxAL4994.gif

關鍵詞:TrustZone,HardFault

目錄預覽

1、簡介

2、問題分析

3、總結

01

簡介


客戶使用 STM32U5 進行開發(fā),并使能了 TrustZone 架構,程序需要從 bootloader 跳轉到app。在之前版本都是正常跳轉的,某一天 IAR 從 9.20 升級到 9.30 后,程序跳轉失敗,并且會導致 hardfault,想知道為什么會失敗。

wKgaomUyJ8qAXhuzAAWv_yD84y0479.png

圖1.IAR9.20 和 IAR9.30 生成的匯編代碼對比

02

問題分析


通過斷點和單步調試,我們發(fā)現(xiàn)出現(xiàn)問題的指令如下所示:

wKgaomUyJ8qAQSBjAAVSMORkRzs862.png

圖2.程序下一步將 Hardfault

而沒有發(fā)生 hardfault 的版本匯編代碼,如下圖:

wKgaomUyJ8qAIr2yAAlBO4Ea5y0597.png

圖3.程序不會發(fā)生 Hardfault

通過單步調試,我們知道了 VLSTM SP 這條指令導致了 hardfault。接著我們再確認下 SP 指針,錯誤版本的 SP 的內容為:0x300020b4,正確版本的 SP 內容為:0x30000258。首先,我們對比了生成的 map 文件中 stack 的地址信息,發(fā)現(xiàn)其中 Stack 的地址和這里 SP 指令是相符的。

然后繼續(xù)查找了 VLSTM 這條指令相關的描述,關于 VLSTM 在 PM0264 中有以下描述:

wKgaomUyJ8qAJ8EWAAIos6_SmHs908.png

圖4.關于 VLSTM 指令

從上圖可以看到,VLSTM SP 這條指令會把安全的浮點運算寄存器的值保存到 SP 地址中,并清除安全浮點寄存器的內容,如果 CPU 的狀態(tài)是非安全的,那么這條指令相當于空指令,也不會導致 hard fault,所有從這里也還是分析不出為什么會導致 hard fault。

重新回到這條指令,現(xiàn)在問題可能比較大的就是 SP 的地址了。有問題的版本的 SP 內容為:0x300020b4,會不會是對齊導致的呢?

基于這個猜測,我們直接在 IAR 界面強制修改了 SP 的地址為 0x300020b8,并繼續(xù)單步執(zhí)行,然后程序可以正常執(zhí)行了。所以目前所知的結論就是 VLSTM SP 這條指令,要求 SP 必須 8 字節(jié)對齊,可能 IAR 在編譯的時候并沒有注意到這一點。

然后,把這些信息反饋到 IAR 以后,IAR 的工程師回復如下:

根據(jù)目前的信息,問題應該是在 VLSTM 要求 8 字節(jié)對齊上。在 9.30.1 中,由于 PUSH.W {R4, R5, R7-R11}指令執(zhí)行后,相當于占用了 28 個字節(jié)的??臻g,導致了 SP 和 9.20.1 相比,不是 8 字節(jié)對齊。

03

總結

在調試 TrustZone 工程的時候,由于使用了新的架構及新的匯編指令,需要對這些指令有一定基本的了解。在調查問題的時候,可以進行單步調試來定位發(fā)生問題的指令,然后再繼續(xù)深入了解下為什么會導致 hardfault。

wKgaomUyJ8qAFOqEAAHiBpzEGaQ933.png

完整內容請點擊“閱讀原文”下載原文檔。


原文標題:實戰(zhàn)經(jīng)驗 | TrustZone 架構下 LPBAM 使用導致的 HardFault

文章出處:【微信公眾號:STM32單片機】歡迎添加關注!文章轉載請注明出處。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 單片機
    +關注

    關注

    6037

    文章

    44558

    瀏覽量

    635397
  • STM32
    +關注

    關注

    2270

    文章

    10900

    瀏覽量

    356087

原文標題:實戰(zhàn)經(jīng)驗 | TrustZone 架構下 LPBAM 使用導致的 HardFault

文章出處:【微信號:STM32_STM8_MCU,微信公眾號:STM32單片機】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    珠海航展無人機搭載相機選擇的深度解析

    軒展科技,作為無人機視頻產(chǎn)品解決方案提供商,具有15年的一體化攝像機模組二次開發(fā)實戰(zhàn)經(jīng)驗,能為無人機通過各種分辨率、不同輸出接口及性能的一站式視頻產(chǎn)品解決方案,滿足各種應用場景的需求。
    的頭像 發(fā)表于 11-16 10:26 ?250次閱讀

    【全新課程資料】正點原子《基于GD32 ARM32單片機項目實戰(zhàn)入門》培訓課程資料上線!

    ,提高編程能力和實戰(zhàn)經(jīng)驗 四、適合人群 (1)單片機編程初學者 (2)電子工程師 (3)對ARM32單片機有興趣的技術愛好者 五、課程詳細介紹 1、培訓課程包含: (1)全套培訓課程視頻(已全部錄制
    發(fā)表于 09-24 18:06

    遇見一個編譯優(yōu)化導致的bug

    最近在調試 can 通信,因為 c8t6 flash 很小,而魚鷹培訓工程完成的驅動越來越多,導致 flash 不足,因此把 bsp 的優(yōu)化級別設置成 -O2,誰知道在串口輸入數(shù)據(jù)時直接 hardfault 了。
    的頭像 發(fā)表于 08-12 17:26 ?336次閱讀
    遇見一個編譯優(yōu)化<b class='flag-5'>導致</b>的bug

    STM32H5和STM32U5在trustzone上有哪些不同?

    我要做空調的空中升級FOTA的方案,需要加密,對于trustzone功能,采用那款芯片比較合適?STM32H5和STM32U5在trustzone上有哪些不同?
    發(fā)表于 07-05 07:03

    請問STM32L5和STM32H5對trustzone有哪些不同?

    STM32L5和STM32H5對trustzone有哪些不同?
    發(fā)表于 07-04 08:08

    運行ble_hello_sensor時出現(xiàn)了HardFault_Handler,為什么?

    當我運行 ble_hello_sensor 時,出現(xiàn)了 HardFault_Handler。 我認為 cy_rtos_create_thread(cybt_platform_task.c) 用于
    發(fā)表于 05-21 07:35

    STM32H7在設置MPU時為什么會進入hardfault?

    MPU配置截圖 這樣配置會進入hardfault,這么配置的原因是這段里某些地址我用做了ETH和LWIP的緩存 標識符啥的 不知道這么配置為什么就會進入Hardfault,但是如果我把MPU Cacheable Permission打開后,就是正常的 不知道各位大佬有沒
    發(fā)表于 05-17 15:02

    STM32程序運行時會莫名的進入HardFault硬件中斷中,為什么?

    中斷,串口中斷,在進入HardFault后這些中斷還在正常運行,可以排除是這些中斷導致進入HardFault; 一周嘗試下來,確定的現(xiàn)象就是將代碼改動一問題就會消失或者重新出現(xiàn),但是
    發(fā)表于 04-10 06:29

    STM32H5 DA證書鏈實戰(zhàn)經(jīng)驗

    之前我們已經(jīng)講過了如何通過 DA 認證來回退芯片產(chǎn)品狀態(tài),或者重新打開調試口,這樣開發(fā)人員在芯片為 Closed 狀態(tài)時仍可以調試芯片。
    的頭像 發(fā)表于 03-12 14:08 ?1101次閱讀
    STM32H5 DA證書鏈<b class='flag-5'>實戰(zhàn)經(jīng)驗</b>

    基于STM32U5片內溫度傳感器正確測算溫度實戰(zhàn)經(jīng)驗分享

    STM32 在內部都集成了一個溫度傳感器,STM32U5 也不例外。這個位于晶圓上的溫度傳感器雖然不太適合用來測量外部環(huán)境的溫度,但是用于監(jiān)控晶圓上的溫度還是挺好的,以防止芯片過溫運行。
    的頭像 發(fā)表于 02-22 17:27 ?4213次閱讀
    基于STM32U5片內溫度傳感器正確測算溫度<b class='flag-5'>實戰(zhàn)經(jīng)驗</b>分享

    STM32H5 DA 之初體驗(帶 TrustZone)

    電子發(fā)燒友網(wǎng)站提供《STM32H5 DA 之初體驗(帶 TrustZone).pdf》資料免費下載
    發(fā)表于 02-19 14:19 ?0次下載
    STM32H5 DA 之初體驗(帶 <b class='flag-5'>TrustZone</b>)

    網(wǎng)絡攻防模擬與城市安全演練 | 數(shù)字孿生

    在數(shù)字化浪潮的推動,網(wǎng)絡攻防模擬和城市安全演練成為維護社會穩(wěn)定的不可或缺的環(huán)節(jié)?;跀?shù)字孿生技術我們能夠在虛擬環(huán)境中進行高度真實的網(wǎng)絡攻防模擬,為安全專業(yè)人員提供實戰(zhàn)經(jīng)驗,從而提升應對網(wǎng)絡威脅的能力。同時,在城市安全演練中通過精準模擬各類緊急情況,幫助城市管理者制定更有
    的頭像 發(fā)表于 02-04 10:48 ?668次閱讀
    網(wǎng)絡攻防模擬與城市安全演練 | 數(shù)字孿生

    安路科技完成新一屆董事會、監(jiān)事會換屆,文華武任總經(jīng)理,陳利光擔任監(jiān)事

    據(jù)了解,文華武在安路科技核心部門已有十余年豐富履歷,長時間致力于市場需求響應和產(chǎn)品研發(fā)推進,具備相當?shù)捻椖?b class='flag-5'>經(jīng)驗和對FPGA行業(yè)深邃理解。在把此類具有豐富實戰(zhàn)經(jīng)驗且實力不俗的人才納入到上市企業(yè)管理系統(tǒng)后,有利于更高效地構建公司組織架構
    的頭像 發(fā)表于 01-23 13:56 ?1194次閱讀

    圣暉集成手單余額13.19億,穩(wěn)步攀升

    作為潔凈室項目相關賽道的先驅,圣暉集成深入電子企業(yè),熟知業(yè)界實用技藝如凈化工程、氣候調節(jié)、微振控制及環(huán)境破壞風險防范等,且經(jīng)過實踐驗證積累了豐富的實戰(zhàn)經(jīng)驗;
    的頭像 發(fā)表于 01-16 11:30 ?577次閱讀

    BlueNRG系列協(xié)處理器實戰(zhàn)經(jīng)驗簡介

    BlueNRG 系列芯片從最早的一代 BlueNRG-MS 開始就支持協(xié)處理器模式。
    的頭像 發(fā)表于 01-05 18:16 ?1885次閱讀
    BlueNRG系列協(xié)處理器<b class='flag-5'>實戰(zhàn)經(jīng)驗</b>簡介