arm 体系架构-异常中断与恢复

一、定义

(1)针对SoC来说,发生复位、软中断、中断、快速中断、取指令异常、数据异常等,我们都统一叫异常。所以说:中断其实是异常的一种。

(2)异常的定义就是突发事件,打断了CPU的正常常规业务,CPU不得不跳转到异常向量表中去执行异常处理程序;中断是异常的一种,一般特指SoC内的内部外设产生的打断SoC常规业务,或者外部中断(SoC的GPIO引脚传回来的中断)。

理解函数调用与异常的区别

二、异常发生时arm核处理流程

arm定义好了异常向量表,定义了各种异常发送时跳转的函数。

在发生中断时先保存现场,再去处理中断,最后恢复现场。

1、保存现场(硬件自动完成):就是保存所有寄存器的值;当发生中断的瞬间,栈会自动保存无需保护的寄存器,如图:

将这些寄存器保存在栈中。

注意:上图中"LR"保存的是正常函数调用的返回地址,"返回地址"保存的是中断处理完成后的返回地址。

2、调用处理函数(硬件跳转):发生中断,C函数会保证不会破坏 R4 至 R11

3、恢复现场:硬件恢复上图保存的寄存器值。

ref:

相关推荐
悠哉悠哉愿意39 分钟前
【单片机学习笔记】串口、超声波、NE555的同时使用
笔记·单片机·学习
Lester_11012 小时前
STM32霍尔传感器输入口设置为复用功能输入口时,还能用GPIO函数直接读取IO的状态吗
stm32·单片机·嵌入式硬件·电机控制
LCG元2 小时前
低功耗显示方案:STM32L0驱动OLED,动态波形绘制与优化
stm32·嵌入式硬件·信息可视化
三佛科技-187366133972 小时前
120W小体积碳化硅电源方案(LP8841SC极简方案12V10A/24V5A输出)
单片机·嵌入式硬件
z20348315203 小时前
STM32F103系列单片机定时器介绍(二)
stm32·单片机·嵌入式硬件
Alaso_shuang5 小时前
STM32 核心输入、输出模式
stm32·单片机·嵌入式硬件
脚后跟6 小时前
AI助力嵌入式物联网项目全栈开发
嵌入式硬件·物联网·ai编程
2501_918126916 小时前
stm32死锁是怎么实现的
stm32·单片机·嵌入式硬件·学习·个人开发
z20348315206 小时前
STM32F103系列单片机定时器介绍(一)
stm32·单片机
星马梦缘7 小时前
驱动层开发——蜂鸣器驱动
stm32·单片机·嵌入式硬件·hal·驱动