ARM9的异常情况有哪些

所谓的异常,是指由内部或外部产生一个引起处理器处理的事件,换句话说,也就是指正常的程序执行流程被暂时中断而引发的过程。例如,外部,外部中断信号会引起一个异常产生,处理器执行一个软中断指令也会引起一个异常产生。处理器进入异常处理之前,其状态必须保留,以便在异常处理程序完成后,被中断的程序能够继续执行。当多个异常同时发生时,处理器将按固定的优先级先后进行处理。

一、异常的类型及向量地址

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

posted @ 2012-07-27 17:37  我的米虫跑了  阅读(590)  评论(0编辑  收藏  举报