2024年11月17日

11、两类中断控制器处理流程_链式和层级

摘要: 1. 下级中断控制器的类别 在后续课程中我们把GIC之下的中断控制器分为两类:链式(chained)、层级(hierarchy)。 这个分类并没有官方定义,是我们根据代码概括出来的(Linux内核本来就缺乏文档)。 1.1 链式中断控制器(chained) 上图中,左边的"chained intc" 阅读全文

posted @ 2024-11-17 16:56 拉风摊主 阅读(14) 评论(0) 推荐(0) 编辑

10、GIC驱动程序分析

摘要: Linux 4.9.88内核源码 Linux-4.9.88\drivers\irqchip\irq-gic.c Linux-4.9.88/arch/arm/boot/dts/imx6ull.dtsi Linux 5.4内核源码 Linux-5.4\drivers\irqchip\irq-gic.c 阅读全文

posted @ 2024-11-17 15:06 拉风摊主 阅读(10) 评论(0) 推荐(0) 编辑

9、GIC驱动程序对中断的处理流程

摘要: 参考http://www.wowotech.net/irq_subsystem/gic_driver.html 1. 一级中断控制器处理流程 对于irq_desc,内核有两种分配方法: 一次分配完所有的irq_desc 按需分配(用到某个中断才分配它的irq_desc 现在的内核基本使用第1种方法。 阅读全文

posted @ 2024-11-17 14:31 拉风摊主 阅读(10) 评论(0) 推荐(0) 编辑

8、异常向量表的安装与调用

摘要: 1. 回顾中断的发生、处理过程 中断发生的硬件过程 中断处理的软件处理流程 CPU执行完当前指令,检查到发生了中断,跳到向量表 保存现场、执行GIC提供的处理函数、恢复现场 2. 异常向量表的安装 异常向量表在linux kernel中entry-armv.S文件中 用vector_fiq的地方,其 阅读全文

posted @ 2024-11-17 13:38 拉风摊主 阅读(18) 评论(0) 推荐(0) 编辑

7、GIC介绍与编程

摘要: 1.1 GIC介绍 ARM体系结构定义了通用中断控制器(GIC),该控制器包括一组用于管理单核或多核系统中的中断的硬件资源。GIC提供了内存映射寄存器,可用于管理中断源和行为,以及(在多核系统中)用于将中断路由到各个CPU核。它使软件能够屏蔽,启用和禁用来自各个中断源的中断,以(在硬件中)对各个中断 阅读全文

posted @ 2024-11-17 12:46 拉风摊主 阅读(26) 评论(0) 推荐(0) 编辑

6、中断的硬件框架

摘要: 1.1 中断路径上的3个部件 中断源 中断源多种多样,比如GPIO、定时器、UART、DMA等等。 它们都有自己的寄存器,可以进行相关设置:使能中断、中断状态、中断类型等等。 中断控制器 各种中断源发出的中断信号,汇聚到中断控制器。 可以在中断控制器中设置各个中断的优先级。 中断控制器会向CPU发出 阅读全文

posted @ 2024-11-17 12:17 拉风摊主 阅读(33) 评论(0) 推荐(0) 编辑

导航