新唐開發(fā)平臺:進階使用者的七大訣竅 (2) 進入除錯模式找出 Hard Fault 原因
進階使用者的七大訣竅
進入除錯模式找出 Hard Fault 原因
適用情境
在除錯模式下發(fā)現(xiàn)微控制器進入Hard Fault,或是在運作時發(fā)現(xiàn)微控制器的UART輸出Hard Fault信息。
除錯技巧
在除錯模式下找到進入Hard Fault前運行的最后一個指令。
取得 SP (Stack Pointer) 值。
使用SP 在Memory窗口中找到Stack。
Stack的第七個值就是最后一筆運行的指令的地址。
在Disassembly 窗口查詢該地址對應的指令。
解說
當Cortex-M核要執(zhí)行一個無效的指令,例如讀取一個不存在的內存位置,核心會進入hard fault來保護自己。硬件先將一些CPU寄存器放到Stack中在進入Hard Fault handler。使用者可透過Stack Pointer找到存放最后一筆被執(zhí)行的指令的內存地址,進而找到觸發(fā)Hard Fault的程序流程。
編輯:zzy 最后修改時間:2021-12-28