随笔分类 -  驱动大全新时代 / interrupt子系统

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

posted @ 2024-11-24 22:10 拉风摊主 阅读(18) 评论(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 拉风摊主 阅读(15) 评论(0) 推荐(0) 编辑

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

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

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

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

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

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

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

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

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

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

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

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

3、linux系统中对中断处理的演进
摘要:2 Linux系统对中断处理的演进 从2005年我接触Linux到现在15年了,Linux中断系统的变化并不大。比较重要的就是引入了threaded irq:使用内核线程来处理中断。 Linux系统中有硬件中断,也有软件中断。 对硬件中断的处理有2个原则:不能嵌套,越快越好。 如果可以中断嵌套,那么 阅读全文

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

2、进程、线程、中断的核心:栈
摘要:1 进程、线程、中断的核心:栈 中断中断,中断谁? 中断当前正在运行的进程、线程。 进程、线程是什么?内核如何切换进程、线程、中断? 要理解这些概念,必须理解栈的作用。 1.1 ARM处理器程序运行的过程 ARM芯片属于精简指令集计算机(RISC:Reduced Instruction Set Co 阅读全文

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

0、软中断与硬中断的区别
摘要:一、硬中断由与系统相连的外设(比如网卡、硬盘)自动产生的,主要是用来通知操作系统系统外设状态的变化。 可屏蔽中断 ——当 CPU 接收到更高优先级的中断时,这些中断可以被延迟。 不可屏蔽中断 ——无法延迟这些中断。 CPU 应该立即考虑它们。 二、软中断为了满足实时系统的要求,中断处理应该是越快越好 阅读全文

posted @ 2024-07-21 15:52 拉风摊主 阅读(159) 评论(0) 推荐(0) 编辑

1、异常与中断的概念及处理流程
摘要:1 中断的引入 1.1妈妈怎么知道孩子醒了 妈妈怎么知道卧室里小孩醒了? ① 时不时进房间看一下:查询方式 简单,但是累 ② 进去房间陪小孩一起睡觉,小孩醒了会吵醒她:休眠-唤醒 不累,但是妈妈干不了活了 ③ 妈妈要干很多活,但是可以陪小孩睡一会,定个闹钟:poll方式 要浪费点时间,但是可以继续干 阅读全文

posted @ 2024-07-21 15:00 拉风摊主 阅读(54) 评论(0) 推荐(0) 编辑

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示