什么是异常
- 正常工作之外的流程都叫异常
- 异常会打断正在执行的工作,并且一般我们希望异常处理完成后继续回来执行原来的工作
- 中断时异常的一种
异常向量表
- 所有CPU都有异常向量表,这是CPU设计时就设定好的,是硬件决定的
- 当异常发生时,CPU会自动动作(PC跳转到异常向量处处理异常,有时伴有一些辅助动作)
- 异常向量表时硬件像软件提供的处理异常的支持
ARM的异常处理机制
当异常产生时,ARM core:
- 复制CPSR到SPSR_
- 设置适当的CPSR位:
1、改变处理器状态进入ARM态
2、改变处理器模式进入相应的异常模式
3、设置中断禁止位禁止相应的中断 - 保存返回地址到LR_
- 设置PC为相应的异常向量
返回时,异常处理需要
- 从SPSR_恢复CPSR
- 从LR_恢复PC
- Note:这些操作只能在ARM态执行