所谓的异常,是指由内部或外部产生一个引起处理器处理的事件,换句话说,也就是指正常的程序执行流程被暂时中断而引发的过程。例如,外部,外部中断信号会引起一个异常产生,处理器执行一个软中断指令也会引起一个异常产生。处理器进入异常处理之前,其状态必须保留,以便在异常处理程序完成后,被中断的程序能够继续执行。当多个异常同时发生时,处理器将按固定的优先级先后进行处理。
一、异常的类型及向量地址
1、复位异常
2、未定义指令异常
3、软件中断异常
4、中止异常
5、IRQ(中断请求)异常
6、FIQ(快速中断请求)异常
二、异常的优先级
若多个异常在同一时刻出现那么,就会按照异常的优先级高低顺序处理
复位优先级是4,数据中止是5,FIQ是6。1最高,6最低。
三、进入异常和退出异常
1、进入异常
把断点处的下一条指令地址保存到相应的R14寄存器中。
把状态寄存器CPRS的值复制但对应的SPSR寄存器中,以保存断点处的状态
根据异常模式,把CPSR寄存器的模式位M[4:0]设置成对应的值
自动使PC指向相关的异常向量,从该地址处取一条指令进行执行
2、退出异常
将保存在R14寄存器的值再回送到PC中。
再将SPRS寄存器的值回送到CPSR寄存器中
对中断禁止位标志进行清除
本文出自文德数据:www.idcvendor.com