色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

調試TrustZone時,如何處理HardFault?

jf_pJlTbmA9 ? 來源:恩智浦MCU加油站 ? 作者:恩智浦MCU加油站 ? 2023-09-27 16:33 ? 次閱讀

TrustZone

恩智浦基于Cortex M33內核的MCULPC55S6x/LPC55S1x, RT600/RT500等產品提供了對TrustZone的支持,并在SOC上提供了安全AHB控制器等功能,旨在幫助客戶完成良好的安全隔離,并建立可信執行環境。

在產品設計之初,我們就要有一個基本的“隔離”的概念。

需要考慮的問題大致有以下兩個方面:

產品中的哪些功能和模塊應該放在安全區?(這部分代碼往往是核心且精簡,且經過安全審查的,安全區的內容不允許非安全區的代碼觸碰);

哪些功能應該放在非安全區?(這樣放在非安全區中的代碼,即使出現安全漏洞(例如棧溢出漏洞等等)后被攻擊,MCU的安全區中的資源和外設也無法被攻擊者利用)。

令人頭疼的HardFault

對于MCU工程師,TrustZone是一個比較新的技術,在開發調試過程中,由于TrustZone配置問題,時常遇到各種意料之外的HardFault,我們也經常調侃,這個TrustZone也太安全了,連我們自己都進不去。

其實這種問題往往是由于在開發階段,我們實際的行為和我們對TrustZone的劃分不一致。

平常我們認為正常的行為與操作,對于TrustZone來說,已經越界違規了,這就會使TruztZone觸發HardFault,并阻止違規行為。

在這種情況下,我們就需要找到導致HardFault的原因,并調整對于TrustZone的配置。

注:TrustZone相關的故障會觸發SecureFault異常。在芯片上電后的默認情況下,SecureFault異常并沒有被使能,因此,此異常會被“升級”為HardFault。在通常情況下,建議使用默認的設置,因為HardFault擁有更高的中斷優先級,可以使故障在第一時間被響應。

獲取違規操作的蛛絲馬跡

Cortex M33內核本身在SAU中提供了兩個寄存器:SFSR(Secure FaultStatus Register,安全故障狀態寄存器)和SFAR(Secure Fault Address Register,安全故障地址寄存器)。

wKgZomUD8tuAGxXSAAH1BBYq2ps696.png

SFSR寄存器用于指示出現錯誤的類型,例如非安全區試圖訪問安全區,從安全區到非安全區的非法跳轉等。

SFAR寄存器用于指示出現錯誤的內存地址。

看起來這兩個寄存器就足以幫助我們查到問題的根源了。但是,有時候,我們從這兩個寄存器拿到了錯誤的原因和地址,仔細檢查后發現無論是安全區還是非安全區的程序,都沒有顯式的訪問這個地址。

這是由于MCU系統愈發復雜,總線上除了M33內核之外,還有許許多多的其他的外設,例如DMAUSB等等。肇事者不一定是M33內核,還有可能是其他的外設,例如DMA。

下面是一種常見的事故:被劃分為非安全的DMA在工作中訪問了安全區的地址或外設,違反了TrustZone的配置,造成了HardFault。

恩智浦的MCU在SOC層面提供了一個安全AHB控制器,能夠幫我們偵查肇事現場,找出肇事者的蛛絲馬跡。

其實原理很簡單,安全AHB控制器提供了三個寄存器,SEC_VIO_INFO_VALID,SEC_VIO_MISC_INFO和SEC_VIO_ADDR。

SEC_VIO_INFO_VALID用來指示肇事現場,這個寄存器中存儲了肇事現場的AHB 的端口號(port number),端口號與外設的對應關系參見用戶手冊的”Memory map overview”章節。

每一個AHB端口都相應有一個SEC_VIO_MISC_INFO寄存器,用來指示肇事的信息,例如違規操作是讀操作引起的還是寫操作引起的等等,最重要的是會指出肇事者的身份:

wKgaomUD8t2AAKgTAALdYPGhYrk767.png

每個AHB端口還有一個SEC_VIO_ADDR,用來指示肇事現場的地址。

有了上述信息,我們就捉到了真正的肇事者。在開發階段,我們就可以利用這些信息去調整我們的TrustZone的配置。

更進一步

當然,上述功能不只能在開發階段幫我們排查HardFault。我們也可以利用這個機制在產品出廠之后為我們提供防御措施。

產品出廠后,當我們檢測到由TrustZone產生的HardFault的原因之后,可以將其記錄,以便于后續分析。如果設備有聯網能力,可以將其傳輸至服務器。利用這些信息我們可以發現產品的哪些模塊受到了攻擊,方便我們后續針對性地進行OTA升級。云端和設備本地也可在此時檢測鏡像以及存儲介質的完整性,以檢查程序和存儲介質是否被惡意篡改。

小結

綜上所述,利用SAU和安全AHB控制器調查HardFault的方法并不復雜,NXP的MCUXpresso SDK也提供了一個完整的demo。

以LPC55S69為例,demo的路徑如下:SDKboardslpcxpresso55s69trustzone_examplessecure_faults。

這個demo中,人為制造了幾種TrustZone觸發HardFault的案例,在產生HardFault后,使用上文描述的方法,處理相關寄存器并打印事故信息。

通常來說,在開發階段,我們可以參考demo中HardFault的處理代碼,按需移植到自己的工程中。

來源:恩智浦MCU加油站

審核編輯:湯梓紅

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

    關注

    146

    文章

    17123

    瀏覽量

    350992
  • 內核
    +關注

    關注

    3

    文章

    1372

    瀏覽量

    40278
  • soc
    soc
    +關注

    關注

    38

    文章

    4161

    瀏覽量

    218165
  • trustzone
    +關注

    關注

    0

    文章

    20

    瀏覽量

    12535
收藏 人收藏

    評論

    相關推薦

    怎樣調試STM32硬件錯誤HardFault

    在用 Keil 對STM32的程序進行仿真時程序有時會跑飛,停止仿真程序會停在HardFault_Handler 函數里的死循環while(1)中。
    發表于 07-18 09:59 ?1234次閱讀
    怎樣<b class='flag-5'>調試</b>STM32硬件錯誤<b class='flag-5'>HardFault</b>

    HardFault錯誤調試的定位方法是什么

    HardFault 錯誤調試定位方法1、首先更改 startup.s 的啟動文件,把里面的 HardFault_Handler 代碼段換成下面的代碼:HardFault
    發表于 02-15 07:22

    何處理HardFault函數?

    STM32 MCU 中有一個名為 HardFault_Handler 的函數(完整代碼如下)。我通常在調試時使用此功能,但不確定如何使用它來處理錯誤。在此函數中處理錯誤的正確協議是什么
    發表于 02-06 07:52

    STM32 MCU TrustZone開發調試技巧分享

    系統隔離與ARM V8-M TrustZone技術、TrustZone地址安全區及資源安全屬性配置、TrustZone架構下的HardFault調試
    發表于 09-05 06:16

    調試串口的時候,終端回顯錯誤如何處理

    調試串口的時候,發現出現回顯錯誤 可以肯定,全部輸出都是英文,不存在中文輸出的情況。 而且輸入的字母也是顯示亂碼,但似乎可以被板子正確識別,不知這種情況應該如何處理
    發表于 09-28 06:16

    ARM 架構中TrustZone 安全處理技術的研究

    對基于 ARMv6 架構的全新TrustZone 安全處理技術進行了研究,著重從該技術的實現原理、運行模式和軟硬件支持等方面,論證TrustZone 技術實現整體系統安全的有效性和可行性,并
    發表于 08-28 11:23 ?18次下載

    手把手教你查找stm32 HardFault_Handler調試及問題方法

    手把手教你查找stm32 HardFault_Handler調試及問題方法
    發表于 12-03 09:36 ?22次下載
    手把手教你查找stm32 <b class='flag-5'>HardFault</b>_Handler<b class='flag-5'>調試</b>及問題方法

    S32K1XX調試--快速定位HardFault

    1、背景程序運行,發現程序跑飛到HardFault,但不清楚為什么會跑到HardFault中斷處理函數去。2、分析要想知道為什么會跑到HardFault_Handler中去,就很有必要
    發表于 12-03 15:21 ?5次下載
    S32K1XX<b class='flag-5'>調試</b>--快速定位<b class='flag-5'>HardFault</b>

    STM32進入HardFault調試方法

    STM32進入HardFault調試方法我們在設計STM32程序時,經常由于內存越界等,使得程序意外進入了HardFault中斷。但我們一時半會又不知道,這個中斷,究竟是代碼運行到哪里,才觸發
    發表于 01-12 18:44 ?4次下載
    STM32進入<b class='flag-5'>HardFault</b>的<b class='flag-5'>調試</b>方法

    AN028 Cortex-M3內核HardFault錯誤調試定位方法

    AN028 Cortex-M3內核HardFault錯誤調試定位方法
    發表于 02-27 18:32 ?0次下載
    AN028 Cortex-M3內核<b class='flag-5'>HardFault</b>錯誤<b class='flag-5'>調試</b>定位方法

    STM32 MCU TrustZone開發調試技巧分享

    電子發燒友網站提供《STM32 MCU TrustZone開發調試技巧分享.pdf》資料免費下載
    發表于 07-28 13:35 ?1次下載
    STM32 MCU <b class='flag-5'>TrustZone</b>開發<b class='flag-5'>調試</b>技巧分享

    實戰經驗 | TrustZone 架構下 LPBAM 使用導致的 HardFault

    關鍵詞:TrustZoneHardFault 目錄預覽 1、簡介 2、問題分析 3、總結 01 簡介 客戶使用 STM32U5 進行開發,并使能了 TrustZone 架構,程序需要
    的頭像 發表于 10-20 15:05 ?620次閱讀
    實戰經驗 | <b class='flag-5'>TrustZone</b> 架構下 LPBAM 使用導致的 <b class='flag-5'>HardFault</b>

    HardFault 調試處理

    電子發燒友網站提供《HardFault 調試處理.pdf》資料免費下載
    發表于 12-18 09:05 ?1次下載
    <b class='flag-5'>HardFault</b> <b class='flag-5'>調試</b>與<b class='flag-5'>處理</b>

    STM32 TrustZone 開發調試技巧

    電子發燒友網站提供《STM32 TrustZone 開發調試技巧.pdf》資料免費下載
    發表于 12-18 11:16 ?2次下載
    STM32 <b class='flag-5'>TrustZone</b> 開發<b class='flag-5'>調試</b>技巧

    STM32 TrustZone 開發調試技巧— 地址安全區及資源安全屬性配置

    電子發燒友網站提供《STM32 TrustZone 開發調試技巧— 地址安全區及資源安全屬性配置.pdf》資料免費下載
    發表于 12-18 11:10 ?0次下載
    STM32 <b class='flag-5'>TrustZone</b> 開發<b class='flag-5'>調試</b>技巧— 地址安全區及資源安全屬性配置
    主站蜘蛛池模板: 国产成人精品免费青青草原app| 国产精品久久久久久久久齐齐 | 精品无人区麻豆乱码1区2| 国产AV天堂一区二区三区| 波多野结衣的AV一区二区三区| ABO成结顶腔锁住| www亚洲欲色成人久久精品| 东莞桑拿美女| 国产成人啪精视频精东传媒网站| 国产精品亚洲污污网站入口| 国产AV国片精品无套内谢无码 | 日本xxxxxxxxx老师59| 国产精品ⅴ视频免费观看| 97视频免费在线| 亚洲卫视论坛| 亚洲AV午夜精品麻豆AV | 伊人精品影院一本到综合| 性按摩AAAAAAA片| 色悠久久久久综合欧美99| 欧美成人一区二免费视频| 女性性纵欲派对| 欧美又粗又长又大AAAA片| 日韩精品真人荷官无码| 欧美精品AV精品一区视频| 狠狠色丁香久久婷婷综合_中 | 4虎影院午夜在线观看| 性XXXXX搡XXXXX搡景甜| 天美麻豆成人AV精品| 无修肉动漫在线观看影片| 亚洲人女同志video| 亚洲熟女丰满多毛XXXXX| 人性本色联盟| 男人就爱吃这套下载| 久久热国产在线视频| 禁室培欲在线视频免费观看| 红尘影院手机在线观看| 久久成人免费大片| 国产亚洲精品 在线视频 香蕉 | 中文字幕在线免费视频| 乌克兰18性hd| 亚洲精品色婷婷在线蜜芽|