2024年11月24日

13、层级终端控制器驱动知识点

摘要: 层级中断控制器驱动程序编写 1. 层级中断控制器的重要函数和结构体 1.1 回顾处理流程 为方便描述,假设下级的链式中断控制器就是GPIO控制器。 下图中: handleA、irq_dataA由GIC驱动提供 irq_dataB由GPIO驱动提供,不需要handleB 假设GPIO模块下有4个引脚, 阅读全文

posted @ 2024-11-24 22:10 拉风摊主 阅读(9) 评论(0) 推荐(0) 编辑

12、链式终端控制器知识点

摘要: 参考资料: linux kernel的中断子系统之(七):GIC代码分析 Linux 4.9.88内核源码 Linux-4.9.88\drivers\gpio\gpio-mxc.c Linux-4.9.88\arch\arm\boot\dts\imx6ull.dtsi Linux 5.4内核源码 L 阅读全文

posted @ 2024-11-24 16:21 拉风摊主 阅读(4) 评论(0) 推荐(0) 编辑

2024年11月17日

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

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

posted @ 2024-11-17 16:56 拉风摊主 阅读(13) 评论(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 拉风摊主 阅读(8) 评论(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 拉风摊主 阅读(7) 评论(0) 推荐(0) 编辑

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

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

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

7、GIC介绍与编程

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

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

6、中断的硬件框架

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

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

2024年10月7日

5、在设备树中指定中断——在代码中获取中断

摘要: 1 设备树里中断节点的语法参考文档:内核 Documentation\devicetree\bindings\interrupt-controller\interrupts.txt设备树里的中断控制器中断的硬件框图如下: 在硬件上,“中断控制器”只有 GIC 这一个,但是我们在软件上也可以把上图中的 阅读全文

posted @ 2024-10-07 16:37 拉风摊主 阅读(57) 评论(0) 推荐(0) 编辑

4、Linux中断系统中的重要数据结构

摘要: 本节内容,可以从 request_irq(include/linux/interrupt.h)函数一路分析得到。能弄清楚下面这个图,对 Linux 中断系统的掌握也基本到位了 最核心的结构体是 irq_desc,之前为了易于理解,我们说在 Linux 内核中有一个中断数组,对于每一个硬件中断,都有一 阅读全文

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

导航