arm支援7種型別的異常,它們是:
復位異常
未定義指令異常
軟中斷指令異常
預取指令異常
資料中止訪問異常
中斷異常
快速中斷異常
arm異常向量表
當異常發生時,arm將做如下事情
(1)將異常發生處下條指令位址儲存到相應工作模式下lr暫存器中
(2)將cpsr暫存器值複製到相應異常模式下的spsr暫存器中
(3)切換arm工作模式
(4)如果異常模式是復位模式或者是快速中斷模式,禁止所有快速中斷(cpsr[6]=1)
(5)禁止中斷cpsr[7]= 1
(6)設定pc暫存器值為相應異常向量位址
我們看arm異常向量表中,異常向量位址空間大小為4個位元組,也就是說這段空間剛好能存放一條arm指令,所以我們可以在異常這段位址空間中存放一條跳轉指令,跳轉到我們的異常處理程式中,u-boot中啟動**就是這樣做的:
_start: b start_code
復位異常時,跳轉到start_code標號處。
ARM異常處理流程
在學習與開發arm處理器的過程中,乙個不能繞開的話題就是異常處理流程。它在arm的體系架構中,佔據著不可動搖的重要地位。此處就以coterx a系列的arm處理器簡單分析一下異常中斷處理流程。說異常處理流程之前,我們先說一下arm處理器的工作模式和異常源。在coterx a系列之前的arm處理器,一...
arm異常處理流程
1.什麼是異常?cpu正常執行的時候,出現一些突發事件,我們的cpu就必須暫停當前程式的執行,去處理這些異常 2.cpu中有哪些異常?1.reset 上電 重啟 2.undef 流水線中某個非法指令到達執行狀態的時候執行 3.swi 軟中斷指令 4.prefetch 當乙個指令被從記憶體中預取時,由...
arm 異常處理結構
概念 正常的程式執行過程中發生暫時的停止稱為異常,如果發現異常情況,將會進行異常處理 作用 快速響應使用者的行為,提高cpu的響應能力 異常型別 異常處理的三個步驟 1 保護現場 工作模式儲存 cpsr spsr 自動完成 自能儲存在spsr中,其他暫存器不行 資料的儲存 stmfd sp 需手動完...