ARM Linux 嵌入式中断全流程解析:从 GPIO 到 GIC 架构实战
本文基于 Cortex-A 系列处理器imx6ull/Cortex-A7/A53整理覆盖中断处理全流程、GIC 架构演进、CP15 协处理器操作、底层汇编指令适合嵌入式 Linux / 裸机开发入门与复习。一、中断处理的 6 个标准步骤ARM 体系中一个完整的中断流程如下中断源发出中断请求如 GPIO 按键、定时器、UART 等外设触发CPU 检查是否响应中断 是否被屏蔽检查 CPSR 中的 I/F 位比较中断优先级由 GIC通用中断控制器仲裁保护现场保存 CPSR、LR压栈寄存器执行中断服务函数ISR恢复现场出栈返回被中断的程序继续执行二、GIC 架构与版本演进GICGeneric Interrupt Controller是 ARM 官方定义的中断控制器标准。1️⃣ GIC 版本对比GIC 版本适用处理器典型场景GIC v1Cortex-A5早期 32 位嵌入式GIC v2Cortex-A732 位imx6ull、树莓派等GIC v3/v4Cortex-A5364 位手机 SoCGIC v5重架构支持数百核服务器 / 高性能计算imx6ull 实际支持 160 个中断号0–159三、GIC 中断类型详解GIC 将中断分为三类中断类型缩写中断号范围说明软件中断SGI0 – 15CPU 核间通信私有外设中断PPI16 – 31每个核独享共享外设中断SPI32 – 1019GPIO、UART、Timer 等✅我们常用的 GPIO 中断属于 SPI四、CP15 协处理器与 GIC 基地址ARM 中很多系统控制功能都通过CP15 协处理器完成。1️⃣ 常用指令mrc p15, 0, Rt, CRn, CRm, opc2 ; 读 CP15 寄存器 mcr p15, 0, Rt, CRn, CRm, opc2 ; 写 CP15 寄存器2️⃣ 读取 GIC 基地址CBARmrc p15, 4, r1, c15, c0, 0 ; 读取 CBAR得到 GIC 基地址到 r1五、中断关键寄存器GIC 接口中有两个非常关键的寄存器uint32_t ICC_IAR; /* Offset: 0x200C (R) 中断应答寄存器 */ uint32_t ICC_EOIR; /* Offset: 0x2010 (W) 中断结束寄存器 */ICC_IARCPU 读取后表示“我知道这个中断了”ICC_EOIRCPU 写入后表示“中断处理完毕”⚠️ 两者缺一不可否则中断会一直挂起。六、开关中断与控制指令1️⃣ cps 指令最常用cpsie i ; 使能 IRQ 中断 cpsid i ; 关闭 IRQ 中断标志含义IIRQ 中断FFIQ 快速中断2️⃣ SCTLR 控制示例mrc p15, 0, r0, c1, c0, 0 ; 读 SCTLR bic r0, r0, #(1 13) orr r0, r0, #(1 12) mcr p15, 0, r0, c1, c0, 0 ; 写回 SCTLR七、GPIO 中断实战示例Key0GPIO1_18以GPIO1_18 按键中断为例典型流程如下配置 GPIO 为中断模式设置触发方式下降沿 / 上升沿使能 GPIO 中断在 GIC 中使能对应 SPI 中断设置中断优先级ISR 中读取ICC_IAR清除中断标志写ICC_EOIR结束中断GPIO → GIC → CPU 内核​ 是标准的硬件中断链路。八、完整中断调用链总结外设中断(GPIO/UART/Timer) ↓ GIC(SPI/PPI/SGI) ↓ CPU(IRQ/FIQ) ↓ 保护现场 ↓ 执行 ISR ↓ 恢复现场 ↓ ICC_EOIR ↓ 返回原程序九、常见踩坑提醒 ⚠️❌ 只清 GPIO 中断标志不写ICC_EOIR→ 中断反复进入❌ 忘记cpsie i→ 中断永远进不来❌ 混淆 SPI / PPI / SGI 的中断号范围❌ 在多核平台未正确绑定中断亲和性GICv3十、总结一句话中断 硬件触发 GIC 仲裁 CPU 响应 现场保护 ISR 执行 中断结束

相关新闻

从“盖章“到“上链“:十部委电子单证新规,正在改写企业合同管理的游戏规则

从“盖章“到“上链“:十部委电子单证新规,正在改写企业合同管理的游戏规则

摘要:2026年十部委联合发布的《促进和规范电子单证应用规定》将电子合同带入“签得可信”的新阶段,明确要求电子单证具备可追溯、不可篡改和签发人识别三大核心能力。规定列出的九个评价因素为企业选型提供了清晰标准,并首次为跨境贸易数据出…

2026/7/22 2:25:42 阅读更多 →
终极指南:5分钟掌握GIMP-ML免费AI图像增强神器

终极指南:5分钟掌握GIMP-ML免费AI图像增强神器

终极指南:5分钟掌握GIMP-ML免费AI图像增强神器 【免费下载链接】GIMP-ML AI for GNU Image Manipulation Program 项目地址: https://gitcode.com/gh_mirrors/gi/GIMP-ML 还在为老照片修复发愁?想要一键提升图片质量却不懂复杂技术?GI…

2026/7/22 2:24:42 阅读更多 →
四叶草拼音输入法完整指南:打造纯净智能的中文输入体验 [特殊字符]️

四叶草拼音输入法完整指南:打造纯净智能的中文输入体验 [特殊字符]️

四叶草拼音输入法完整指南:打造纯净智能的中文输入体验 🍀️ 【免费下载链接】rime-cloverpinyin 🍀️四叶草拼音输入方案,做最好用的基于rime开源的简体拼音输入方案! 项目地址: https://gitcode.com/gh_mirrors/ri…

2026/7/22 2:24:42 阅读更多 →

最新新闻

电子工程原理图设计规范与最佳实践

电子工程原理图设计规范与最佳实践

1. 原理图设计的重要性与基础认知在电子工程领域,原理图就像建筑师的蓝图,是连接创意与实物的关键桥梁。我从业十余年,见过太多因为原理图不规范导致的惨痛教训——从简单的PCB返工到整批产品召回。一张规范的原理图不仅能准确传达设计意图&a…

2026/7/22 4:35:32 阅读更多 →
电动汽车高压互锁系统原理与维修实战

电动汽车高压互锁系统原理与维修实战

1. 高压互锁系统:电动汽车安全的隐形守护者第一次拆解比亚迪秦EV的高压系统时,那个不起眼的橙色小插头引起了我的注意。这个看似普通的连接器,实际上是整车高压安全体系中最精妙的设计之一——高压互锁回路(High Voltage Interloc…

2026/7/22 4:35:32 阅读更多 →
RAG与中间件技术:AI应用开发新范式

RAG与中间件技术:AI应用开发新范式

1. RAG与中间件技术解析在LangChain生态中,检索增强生成(RAG)与中间件的结合正在重塑AI应用的开发范式。这种技术组合不仅解决了传统大语言模型的知识局限性问题,还通过模块化设计实现了业务流程的灵活编排。1.1 RAG核心机制RAG系统的工作流程可以分解为…

2026/7/22 4:35:32 阅读更多 →
我把 AI 小红书卡片生成做了一次内核升级:从固定版式套壳到内容驱动的动态构图

我把 AI 小红书卡片生成做了一次内核升级:从固定版式套壳到内容驱动的动态构图

小红书 AI 卡片生成内核升级:从固定版式套壳到内容驱动的动态构图 做 AI 小红书卡片生成的人,大概率都走过同一条弯路: 先设计 5~10 套精美的版式模板,然后让 AI 把不同的内容"套"进去。 这套方法的天花板很低。你很…

2026/7/22 4:35:32 阅读更多 →
C++构建金融大模型:从Transformer架构到指令微调的工程实践

C++构建金融大模型:从Transformer架构到指令微调的工程实践

1. 项目概述:从零构建一个金融领域的智能大脑最近和几个在投行和量化基金的朋友聊天,大家都在感慨,虽然通用大模型(LLM)很火,但在处理专业的金融问题时,总感觉隔靴搔痒。让它分析一份财报&#…

2026/7/22 4:35:31 阅读更多 →
ARM day5

ARM day5

1. 什么是 GIC?🔸 GIC 全称GIC(Generic Interrupt Controller,通用中断控制器),是 ARM 公司专门为 Cortex-A 系列 内核设计的一款集中式中断控制器。🔸 为什么需要 GIC?随着 SoC&…

2026/7/22 4:34:31 阅读更多 →

日新闻

TI DSP系统配置模块SYSCFG详解:中断机制与主设备优先级配置实战

TI DSP系统配置模块SYSCFG详解:中断机制与主设备优先级配置实战

1. 项目概述与SYSCFG模块的核心价值在嵌入式系统,尤其是像TI C6000系列这样的高性能DSP开发中,我们常常会与芯片手册里那些密密麻麻的寄存器打交道。很多开发者可能更关注算法实现、内存优化或者外设驱动,但对于一个稳定、高效的系统而言&…

2026/7/22 0:00:26 阅读更多 →
微信Server酱:高到达率的应急通知方案实践

微信Server酱:高到达率的应急通知方案实践

1. 为什么我们需要"最次"的通知方案? 在数字化协作环境中,消息通知系统的重要性不言而喻明。但现实情况是,企业级通知方案往往需要复杂的API对接(如企业微信、钉钉、飞书),个人开发者的小项目又经…

2026/7/22 0:00:26 阅读更多 →
甲方要的“简洁“PPT,到底是简洁还是省事?

甲方要的“简洁“PPT,到底是简洁还是省事?

甲方说"简洁一点",乙方听到的是"少做几页"。甲方说"不要太复杂",乙方理解成"别放图表了"。结果交过去,甲方说"我说的简洁不是这个意思"。"简洁"这个词在PPT语境里,是…

2026/7/22 0:00:26 阅读更多 →

周新闻

Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/21 8:48:31 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/21 5:34:47 阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/21 8:25:39 阅读更多 →

月新闻