- 保存现场(CPU自动完成):
- 1、保存
CPSR寄存器
中的值到SPSR寄存器
中; - 2、修改CPSR寄存器:
- 2.1、修改
T位
,切换处理器的工作状态为ARM状态
; - 2.2、修改
I位和F位
,根据需要屏蔽IRQ和FIQ中断
; - 2.3、修改
M位
,切换处理器到对应的异常模式
下; - 3、保存
返回地址
到LR寄存器
中; - 4、修改
PC寄存器
的值,指向异常向量表
对应的位置; - 恢复现场(程序员手动完成):
- 1、恢复
SPSR寄存器
中的值到CPSR寄存器
中; - 2、恢复
LR寄存器
中的值到PC寄存器
中;
Linux内核异常处理机制
李十五哥2023-11-19 19:13