ARM的异常处理过程分析

当异常产生时,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指针会自动跳转到异常向量表,执行该地址的跳转指令

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值