目录
18.1ARM的异常处理机制
GPIO控制器检测GPX1-1引脚上有无下降沿信号产生,如果检测到产生,GPIO会产生中断信号并发送给中断控制器,中断控制器接受GPIO控制器发来的中断信号,并管理这些信号,将这些信号转发给CPU,让CPU处理。CPU处理异常。
异常概念:处理器在正常执行程序的过程中可能会遇到一些不正常的事件发生,这时处理器就要将当前的程序暂停下来转而去处理这个异常的事件,异常事件处理完成之后再返回到被异常打断的点继续执行程序。
异常处理机制:不同的处理器对异常的处理的流程大体相似,但是不同的处理器在具体实现的机制上有所不同;比如处理器遇到哪些事件认为是异常事件遇到异常事件之后处理器有哪些动作、处理器如何跳转到异常处理程序如何处理异常、处理完异常之后又如何返回到被打断的程序继续执行等我们将这些细节的实现称为处理器的异常处理机制。
导致异常产生的事件称为异常源。
ARM异常源(7类)
FIQ 快速中断请求引脚有效
IRQ 外部中断请求引脚有效
Reset 复位电平有效
Software Interrupt 执行swi指令
Data Abort 数据终止
Prefetch Abort 指令预取终止
Undefined Instruction 遇到不能处理的指令
异常模式 :在ARM的基本工作模式中有5个属于异常模式,即ARM遇到异常后会切 换成对应的异常模式。
例:基地址0x40000000,遇IRQ异常,PC跳到0x40000018