文章目录
一、异常介绍
1. 什么是异常
异常是处理器核在执行程序指令的过程中突然遇到了异常的事情,这些事件包括硬件中断、指令执行错误、用户程序请求服务、内存访问异常、取指令异常等,几乎每种处理器都支持特定的异常处理,中断也是异常的一种
。
2. ARM的异常源
FIQ 较 IRQ 快的原因:
- FIQ在异常向量表位于最末
a:所以可以直接把异常处理程序写在异常向量表之后,省去了跳转的过程。
b.而IRQ需要执行向量表对应的跳转指令之后,跳转到指定的中断处理程序。 - FIQ模式有5个私有寄存器(R8-R12)
a.执行中断处理程序前无需压栈保存寄存器,可直接处理中断。
b.而IRQ的R8-R12寄存器是与和其它模式共用的,在中断前需要保护现场,即把R8-R12的数据保存在栈中。 - FIQ的优先级高于IRQ
a.两个中断同时发生时先响应FIQ
b.FIQ可以打断IRQ,IRQ不能打断FIQ。