ARM基础笔记(二)

本文详细介绍了ARM处理器的七种异常源,包括FIQ、IRQ、RESET等,并阐述了ARM在异常发生时的处理流程,如状态寄存器的保存、模式切换和返回地址的保存。此外,还讲解了异常返回的步骤以及异常优先级。内容涉及中断禁止、模式切换和异常向量表等关键概念。
摘要由CSDN通过智能技术生成

在这里插入图片描述
一、
arm的七种异常源
1)FIQ 硬件请求的快速中断
2)IRQ 硬件请求的外部中断
3)RESET 复位按键
4)software interrupe 执行程序时产生的中断
5)DATA Abort 数据访问异常(变量地址不对或不允许被访问)
6)prefetch Abort 读取指令的时候异常(指令不允许访问或其他问题)
7)undefined instruction 已经读取到指令但是这个指令CPU不认识

七种异常源对应进入的模式
在这里插入图片描述
异常处理、
在这里插入图片描述
二、
ARM产生异常后的动作(arm 自己会做,不需要我们做,我们了解arm是怎么做的)
1)将CPSR的的内容拷贝 到对应异常模式下的SPSR_mod中
/CPSR是当前状态寄存器 保存着当前处理器遇到异常前的状态
保存在SPSR中,方便跳转之后回到正常的的工作状态(mod 为对应的异常模式eg :SPSR_fiq)
/
2,修改CPSR的值
在这里插入图片描述
1)、修改中断禁止为禁止相应中断(不再响应同等优先级或低优先级的中断请求)设置位为图中I 位或F位
2)、修改模式位进入对应的模式状态(修改位数为M0~M4)
3)、修改状态位为arm状态(无论之前为什么状态ARM或thumb 执行异常必须进入ARM状态)
3、
保存返回地址到对应模式下的LR_mode(异常出现时LR自动保存当前程序的下一段的地址)//LR 就是R14
4、
设置PC的值让它跳到相应的异常向量表中。(异常向量表)
//异常向量表(32Baty//每个异常4字节)
在这里插入图片描述
2、异常返回
在这里插入图片描述
异常返回不像异常处理一样处理器自己完成,异常返回需要自己手动完成
首先异常处理程序的自己写
CPSR=SPSR;
PC=LR;
在这里插入图片描述
3、
异常优先级
reset(复位)
data abort (数据读取异常)
FIQ(快速中断)
IRQ(外部中断)
prefetch abort (指令读取异常)
software interrupt(软中断)
undefine instruction (指令未定义)

三、指令流水线、多核、时间片。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值