ARM-中断管理

摘自:ARM-中断状态,中断响应流程(四大步三小步)-CSDN博客

当异常发生时,ARM处理器核心会自动完成以下操作来保存现场:

  1. 保存CPSR :将当前程序状态寄存器 (CPSR) 的内容复制到相应异常模式的备份寄存器 (SPSR_mode) 中。

  2. 设置CPSR

    • 切换处理器进入 ARM状态

    • 根据需要,禁止中断 (设置 FIQIRQ 禁止位)。

    • 根据异常类型,切换到对应的异常模式

  3. 保存返回地址 :将当前程序计数器 (PC) 的值保存到相应异常模式的链接寄存器 (lr_mode) 中。

  4. 跳转处理 :强制将 PC 设置为异常向量表的固定首地址,开始执行中断服务程序。

  • 软/硬中断区别硬中断 由硬件随机产生;软中断 (如SWI指令)由软件预先安排,用于主动进入特权模式。

  • 恢复现场 :上述由硬件完成,而中断返回时必须由软件手动恢复 现场,包括从 SPSR_mode 恢复 CPSR、从 lr_mode 恢复 PC 等。

  • Cortex-M vs Cortex-A :文章指出,Cortex-M系列 (如STM32)支持中断嵌套 ;而Cortex-A系列因处理速度快,硬件上不支持嵌套。

概念类别 核心内容/状态 简要说明
中断状态 1. 挂起态 中断已发生,但尚未被处理
2. 激活态 正在执行对应的中断处理函数
3. 未激活态 无中断请求发生
异常类型 (7种) 1. 复位异常 优先级最高,用于系统启动
2. 数据异常 访问数据时出错(如地址无效)
3. 快速中断(FIQ) 高速、低延迟中断
4. 外部中断(IRQ) 普通外设中断
5. 预取异常 取指令时出错
6. 软中断(SWI) 软件主动触发,用于系统调用
7. 未定义指令异常 指令译码失败
相关推荐
香辣牛肉饭2 小时前
【算法】动态规划 最长公共子序列(LCS)
经验分享·笔记·算法·动态规划
迷途呀2 小时前
Python:函数中的参数类型
开发语言·笔记·python·langchain·nlp
依然范特东3 小时前
动手学深度学习笔记--卷积层、微调
人工智能·笔记·深度学习
金伟API10244 小时前
SQL Server基础学习笔记
笔记·学习
砚凝霜5 小时前
软考网络工程师|第 1 章 计算机网络基础 完整备考笔记
网络·笔记·计算机网络
岑梓铭6 小时前
《考研408数据结构》第七章(7.1 查找:顺序查找、折半查找、分块查找)复习笔记
数据结构·笔记·考研·408·ds·查找
金伟API10246 小时前
常见的SQL面试题:经典50例
数据库·人工智能·笔记·sql·学习
DES 仿真实践家6 小时前
Plant Simulation SimTalk基础教程(3)SimTalk 变量与数据类型
开发语言·笔记·学习
逸模7 小时前
多业态连锁,如何同步铺开各类门店
大数据·人工智能·笔记·工程·公装·连锁店
乐橙开放平台8 小时前
明厨亮灶笔记:乐橙轻应用 H5 + 小程序插件,一套 BFF 出两张播放凭证
人工智能·笔记·物联网·小程序·音视频·notepad++