当异常产生时,cpu处理
1、cpsr备份到spsr
2、修改cpsr:改变处理器状态进入ARM状态
改变处理器模式进入相应的异常模式
设置中断禁止位禁止相应中断
3、保存返回地址到lr
4、设置pc为相应的异常向量
返回时,异常处理需要
1、从spsr恢复cpsr
2、从lr恢复pc
注意:这些操作只能在ARM态执行
例如:
IRQ异常处理
SWI异常处理
异常向量表的地址不一定是从0开始
关闭IF是关闭IRQ和FIQ,防止被打扰