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

一、定义

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

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

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

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

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

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

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

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

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

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

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

ref:

相关推荐
Ronin-Lotus2 小时前
嵌入式硬件与应用篇---寄存器GPIO控制
stm32·单片机·嵌入式硬件·微处理器原理与应用
星辰pid9 小时前
STM32控制四自由度机械臂(SG90舵机)(硬件篇)(简单易复刻)
stm32·单片机·嵌入式硬件·机械臂
威桑10 小时前
STM32 专有名词缩写整合
stm32·单片机·嵌入式硬件
星源~11 小时前
tree 命令集成到 Git Bash:可视化目录结构的指南
git·单片机·物联网·嵌入式·项目开发
SKYDROID云卓小助手12 小时前
无人设备遥控器之自动调整编码技术篇
人工智能·嵌入式硬件·算法·自动化·信号处理
所念皆星海91112 小时前
图灵完备之路(数电学习三分钟)----数据选择器与总线
嵌入式硬件·通信·数电
liuluyang53013 小时前
ARM DStream仿真器脚本常用命令
arm开发·dstream
智者知已应修善业13 小时前
【51单片机节日彩灯控制器设计】2022-6-11
c语言·经验分享·笔记·单片机·嵌入式硬件·51单片机
开-悟14 小时前
嵌入式编程-使用AI查找BUG的启发
c语言·人工智能·嵌入式硬件·bug
许白掰16 小时前
【stm32】HAL库开发——CubeMX配置RTC,单片机工作模式和看门狗
stm32·单片机·嵌入式硬件·学习·实时音视频