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

一、定义

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

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

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

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

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

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

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

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

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

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

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

ref:

相关推荐
麻辣长颈鹿Sir20 小时前
STM32出现FLASH擦除失败异常现象分析及解决方法
stm32·单片机·嵌入式硬件·flash写入失败·stm32g070·类内构造函数定义域异常
SystickInt20 小时前
电机复习总结-梯形算法-转速
单片机·嵌入式硬件
Q_219327645520 小时前
基于单片机的晾衣架控制系统设计
单片机·嵌入式硬件
码咔吧咔20 小时前
STM32 MCU 的引脚分类
stm32·单片机·嵌入式硬件
Neil今天也要学习20 小时前
永磁同步电机控制算法--基于增量式模型的鲁棒无差拍电流预测控制
单片机·嵌入式硬件·算法
QQ_219327645520 小时前
基于单片机的智能鱼缸控制系统的设计与实现
单片机·嵌入式硬件
意法半导体STM3220 小时前
【文末送NUCLEO-G431RB】一文说明白STM32G4双Bank启动与升级 LAT1596
前端·数据库·stm32·单片机·嵌入式硬件·mcu·stm32开发
单片机系统设计20 小时前
基于STM32单片机的智能恒温水壶设计
c语言·stm32·单片机·嵌入式硬件·毕业设计·智能温水壶
sjh210020 小时前
stm32L431+hal+freertos+lptime+tickless 进入stop模式失败记录(结果还是放弃了)
stm32·单片机·嵌入式硬件
Neil今天也要学习21 小时前
永磁同步电机控制算法--基于增量式扩张状态观测器(ESO)的增量式无差拍电流预测控制
单片机·嵌入式硬件