RM新时代网站-首页

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

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

新唐開發(fā)平臺:進(jìn)階使用者的七大訣竅(2)進(jìn)入除錯模式找出Hard Fault原因

jf_pJlTbmA9 ? 來源:jf_pJlTbmA9 ? 作者:jf_pJlTbmA9 ? 2023-08-09 11:41 ? 次閱讀

適用情境

在除錯模式下發(fā)現(xiàn)微控制器進(jìn)入Hard Fault,或是在運(yùn)作時發(fā)現(xiàn)微控制器的UART輸出Hard Fault信息。

除錯技巧

在除錯模式下找到進(jìn)入Hard Fault前運(yùn)行的最后一個指令。

取得 SP (Stack Pointer) 值。

使用SP 在Memory窗口中找到Stack。

Stack的第七個值就是最后一筆運(yùn)行的指令的地址。

在Disassembly 窗口查詢該地址對應(yīng)的指令。

wKgaomTSGViAEfzWAAGduHy9-G0106.jpg

解說

當(dāng)Cortex-M核要執(zhí)行一個無效的指令,例如讀取一個不存在的內(nèi)存位置,核心會進(jìn)入hard fault來保護(hù)自己。硬件先將一些CPU寄存器放到Stack中在進(jìn)入Hard Fault handler。使用者可透過Stack Pointer找到存放最后一筆被執(zhí)行的指令的內(nèi)存地址,進(jìn)而找到觸發(fā)Hard Fault的程序流程。

wKgZomTSGVqAKdNbAADOoTg-JZE380.png

審核編輯:湯梓紅

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

    關(guān)注

    48

    文章

    7542

    瀏覽量

    151316
  • uart
    +關(guān)注

    關(guān)注

    22

    文章

    1235

    瀏覽量

    101354
  • Cortex-M
    +關(guān)注

    關(guān)注

    2

    文章

    229

    瀏覽量

    29752
收藏 人收藏

    評論

    相關(guān)推薦

    如何分析Hard Fault錯誤的原因?

    可能很多工程師在使用Cortex-M處理器做開發(fā)的時候最怕遇到的一類錯誤就是調(diào)試時遇到Hard Fault。引發(fā)Fault異常的情況有很多,除了程序本身的因素以為,設(shè)備外部環(huán)境的
    發(fā)表于 10-25 14:40

    Hard fault產(chǎn)生原因硬件方面常見原因

    一、 Hard fault 產(chǎn)生原因硬件方面常見原因:1. 電源設(shè)計有錯誤,造成器件供電不穩(wěn);2. 電源質(zhì)量不好,文波,噪聲過大;3. 器件
    發(fā)表于 02-14 07:40

    程序進(jìn)入硬件錯誤中斷hard_fault如何尋找原因?

    程序運(yùn)行后,會卡死,進(jìn)入硬件錯誤中斷,但我不知道問題出在哪?該如何解決?在MDK環(huán)境下,進(jìn)入調(diào)試模式,運(yùn)行后進(jìn)入rt_hw_hard_fault
    發(fā)表于 02-13 13:45

    M0516LDE老是進(jìn)入Hard_Fault_Handler的原因?怎么解決?

    M0516 LDE,老是進(jìn)入Hard_Fault_Handler
    發(fā)表于 06-27 08:57

    程序在運(yùn)行一段時間后報In Hard Fault Handler錯誤的原因?怎么解決?

    = 0x8 r12 = 0x3 lr= 0xbcf pc= 0x168c psr = 0x21000000 想根諸位請教,進(jìn)入In Hard Fault Handler的原因有哪些?
    發(fā)表于 06-28 06:02

    程序在運(yùn)行一段時間后報In Hard Fault Handler錯誤的原因

    = 0x8 r12 = 0x3 lr= 0xbcf pc= 0x168c psr = 0x21000000 想根諸位請教,進(jìn)入In Hard Fault Handler的原因有哪些?
    發(fā)表于 08-28 07:45

    鬼魅一樣的 Hard Fault

    STM32 鬼魅一樣的 Hard Fault
    發(fā)表于 12-07 17:53 ?0次下載

    使用指針調(diào)用函數(shù)產(chǎn)生 Hard Fault

    使用指針調(diào)用函數(shù)產(chǎn)生 Hard Fault
    發(fā)表于 12-07 17:52 ?0次下載

    如何排查程序的Hard fault錯誤

    Hard fault產(chǎn)生原因,硬件方面常見原因: 1. 電源設(shè)計有錯誤,造成器件供電不穩(wěn); 2. 電源質(zhì)量不好,文波,噪聲過大; 3.器件接
    發(fā)表于 11-22 14:13 ?7次下載

    開發(fā)平臺進(jìn)階使用者七大訣竅(7)使用PinView來檢查寄存器狀態(tài)

    開發(fā)平臺進(jìn)階使用者七大訣竅(7)使用PinV
    的頭像 發(fā)表于 08-09 11:35 ?477次閱讀
    新<b class='flag-5'>唐</b><b class='flag-5'>開發(fā)</b><b class='flag-5'>平臺</b>:<b class='flag-5'>進(jìn)階</b><b class='flag-5'>使用者</b>的<b class='flag-5'>七大</b><b class='flag-5'>訣竅</b>(7)使用PinView來檢查寄存器狀態(tài)

    開發(fā)平臺進(jìn)階使用者七大訣竅(6)使用PinView進(jìn)行功耗的除錯

    開發(fā)平臺進(jìn)階使用者七大訣竅(6)使用PinV
    的頭像 發(fā)表于 08-09 11:36 ?626次閱讀
    新<b class='flag-5'>唐</b><b class='flag-5'>開發(fā)</b><b class='flag-5'>平臺</b>:<b class='flag-5'>進(jìn)階</b><b class='flag-5'>使用者</b>的<b class='flag-5'>七大</b><b class='flag-5'>訣竅</b>(6)使用PinView進(jìn)行功耗的<b class='flag-5'>除錯</b>

    開發(fā)平臺進(jìn)階使用者七大訣竅(5)使用Watchpoint來除錯

    開發(fā)平臺進(jìn)階使用者七大訣竅(5)使用Watc
    的頭像 發(fā)表于 08-09 11:37 ?611次閱讀
    新<b class='flag-5'>唐</b><b class='flag-5'>開發(fā)</b><b class='flag-5'>平臺</b>:<b class='flag-5'>進(jìn)階</b><b class='flag-5'>使用者</b>的<b class='flag-5'>七大</b><b class='flag-5'>訣竅</b>(5)使用Watchpoint來<b class='flag-5'>除錯</b>

    開發(fā)平臺進(jìn)階使用者七大訣竅(4)檢查Reset旗標(biāo)

    開發(fā)平臺進(jìn)階使用者七大訣竅(4)檢查Rese
    的頭像 發(fā)表于 08-09 11:38 ?564次閱讀
    新<b class='flag-5'>唐</b><b class='flag-5'>開發(fā)</b><b class='flag-5'>平臺</b>:<b class='flag-5'>進(jìn)階</b><b class='flag-5'>使用者</b>的<b class='flag-5'>七大</b><b class='flag-5'>訣竅</b>(4)檢查Reset旗標(biāo)

    開發(fā)平臺進(jìn)階使用者七大訣竅(3)使用System Viewer檢查寄存器狀態(tài)

    開發(fā)平臺進(jìn)階使用者七大訣竅(3)使用Syst
    的頭像 發(fā)表于 08-09 11:39 ?887次閱讀
    新<b class='flag-5'>唐</b><b class='flag-5'>開發(fā)</b><b class='flag-5'>平臺</b>:<b class='flag-5'>進(jìn)階</b><b class='flag-5'>使用者</b>的<b class='flag-5'>七大</b><b class='flag-5'>訣竅</b>(3)使用System Viewer檢查寄存器狀態(tài)

    開發(fā)平臺進(jìn)階使用者七大訣竅(1)進(jìn)入除錯模式時不重啟芯片

    開發(fā)平臺進(jìn)階使用者七大訣竅(1)
    的頭像 發(fā)表于 08-09 11:42 ?492次閱讀
    新<b class='flag-5'>唐</b><b class='flag-5'>開發(fā)</b><b class='flag-5'>平臺</b>:<b class='flag-5'>進(jìn)階</b><b class='flag-5'>使用者</b>的<b class='flag-5'>七大</b><b class='flag-5'>訣竅</b>(1)<b class='flag-5'>進(jìn)入</b><b class='flag-5'>除錯</b><b class='flag-5'>模式</b>時不重啟芯片
    RM新时代网站-首页