ARM七種異常源和異常處理流程
2014-11-30 北京海淀區 張俊浩
ARM七種異常源及其工作模式 |
||
異常源 |
含義 |
ARM工作模式 |
RESET (reset) |
復位異常源 |
SVC模式(Supervisor保護模式) |
Swi(Software Interrupt ) |
軟中斷異常源 |
SVC模式 |
Undefine(undefined instruction) |
未定義指令異常源 |
und模式 |
Prefetch Abort |
取指異常源 |
abort模式 |
Data Abort |
數據異常源 |
abort模式 |
IRQ (Interrupt Request ) |
外部異常源 |
IRQ模式 |
FIQ(Fast Interrupt Request) |
快中斷異常源 |
FIQ模式 |
ARM異常處理(處理器對特定的異常事件進行的處理)的進入過程(硬件自動完成):
四大步(兩備份兩修改)三小步:
(1)拷貝 CPSR (當前程序狀態寄存器current program status register)到 SPSR_<mode>(保存當前程序狀態寄存器Saved
Program Status Register)
(2)設置適當的 CPSR 位:
1--改變處理器狀態進入 ARM 態(thumb狀態下異常處理無法返回)
2--改變處理器模式進入相應的異常模式M[4:0]
3--設置中斷禁止位禁止相應中斷 (如果需要)
(3)保存返回地址當前PC到 LR_<mode>
(4)設置 PC 爲相應的異常向量
異常返回的步驟:
(1)從 SPSR_<mode>恢復CPSR
(2)從LR_<mode>恢復PC