日韩中文在线观看-欧美性综合-伊人视频在线观看-亚洲免费在线视频观看-国产偷人视频-人妻丰满熟妇岳av无码区hd-国产一级淫片a视频免费观看-国产精品交换-国产精品1区2区3区4区-美女日批视频在线观看-欧美日韩一区二区三区自拍

【ARM】MDK出現(xiàn)HardFault_Handler硬件中斷的排查方法

1、 文檔目標(biāo)

用于排查使用MDK進(jìn)入開(kāi)發(fā)過(guò)程中,是否是因?yàn)槎褩R绯鰧?dǎo)致出現(xiàn)HardFault_Handler硬件中斷。


2、 問(wèn)題場(chǎng)景

HardFault_Handler硬件中斷是在對(duì)ARM芯片進(jìn)行開(kāi)發(fā)過(guò)程中遇到的最難處理的中斷信號(hào)(圖2-1)。硬件中斷出現(xiàn)基本上是由內(nèi)存溢出、訪問(wèn)越界和堆棧溢出。對(duì)于內(nèi)存溢出、訪問(wèn)越界這兩個(gè)原因需要自行根據(jù)代碼的情況去排查。堆棧溢出情況可以通過(guò)下面的方法去確認(rèn)堆棧溢出的大概位置,便于縮小范圍,盡快排查問(wèn)題出現(xiàn)的位置。



圖2-1


3、軟硬件環(huán)境

1)、軟件版本:Keil MDK 5.38a

2)、電腦環(huán)境:Windows 11

3)、外設(shè)硬件:無(wú)


4、解決方法

1)、當(dāng)發(fā)現(xiàn)出現(xiàn)硬件中斷后,需要在HardFault_Handler函數(shù)中設(shè)置斷點(diǎn)。

2)、當(dāng)程序停止到斷點(diǎn)處后,通過(guò)Register窗口中Internal的Stack確認(rèn)堆棧指針類(lèi)型是什么?圖4-2顯示的就是MSP。



圖4-2

3)、然后,確認(rèn)Banked中MSP指針的值。(如圖4-3)



圖4-3


4)、然后,通過(guò)圖示的位置打開(kāi)Memory 1窗口。在Memory 1窗口中的Address中輸入MSP的值(如圖4-4)。在輸出結(jié)果中找到以“08”開(kāi)頭的地址信息。這個(gè)就是具體代碼的位置。



圖4-4


5)、然后,在Disassembly窗口中,右鍵打開(kāi)菜單找到Show Disassembly at Address(如圖4-5-1),在打開(kāi)的Show code at Address窗口中以0x為開(kāi)頭的方式輸入在Memory1中確認(rèn)的地址信息(如圖4-5-2),然后,就可以跳轉(zhuǎn)到對(duì)應(yīng)的代碼位置。然后,根據(jù)跳轉(zhuǎn)的代碼位置去確認(rèn)堆棧溢出的位置即可。



圖4-5-1

圖4-5-2

主站蜘蛛池模板: 莱西市| 山西省| 清新县| 彰化县| 任丘市| 扶绥县| 鄯善县| 公主岭市| 交城县| 沅陵县| 商都县| 鹤山市| 长沙县| 桦甸市| 平和县| 鄯善县| 越西县| 称多县| 大竹县| 建湖县| 新巴尔虎右旗| 宜川县| 古交市| 喀喇| 颍上县| 云霄县| 介休市| 曲阳县| 大理市| 沾化县| 绵阳市| 开远市| 大港区| 奉化市| 平昌县| 五常市| 札达县| 洞口县| 闸北区| 醴陵市| 盘锦市|