ARM基础笔记(二)

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述
一、
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 (指令未定义)

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值