ARM的异常处理过程分析

来源:互联网 发布:js中blur 编辑:程序博客网 时间:2024/05/22 15:39

当异常产生时,ARM core会完成以下流程:

1.拷贝CPSR到SPSR_mode

2.设置适当的CPSR位:

                                    改变处理器状态进入ARM态

                                    改变处理器模式进入相应的异常模式

                                   设置中断禁止位禁止相应中断(如果需要)

3.保存返回地址到LR_mode

4.设置PC为相应的异常向量

 

返回时,异常处理需要:(此时,需要程序员编写相应代码)

1.从SPSR_mode恢复CPSR

2.从LR_mode恢复PC

 

注意:这些操作只能在ARM态执行,但是中断处理函数中,处理器可以切换到THUMB态,但中断返回时必须是ARM态

 

 

vector table

                              0x00              reset

                              0x04              undefined instruction

                              0x08              SWI

                              0x0c              prefetch abort

                              0x10              data abort

                              0x14              (reserved)

                              0x18              IRQ

                              0x1c              FIQ

 

当外部中断产生的时候,PC指针会自动跳转到异常向量表,执行该地址的跳转指令

 

 

 

 

 

 

 

 

 

 

 

 

 

原创粉丝点击