
kernel-driver-irq
kernel-driver-irq
kunkliu
good good study
展开
-
中断申请函数request_irq详解
转载地址:https://blog.youkuaiyun.com/renren900207/article/details/26398215 原地址:http://blog.youkuaiyun.com/wea...转载 2019-07-22 10:56:14 · 20644 阅读 · 1 评论 -
Linux kernel的中断子系统之(五):驱动申请中断API
转载地址:https://www.cnblogs.com/arnoldlu/p/7599587.html总结:二重点区分了抢占式内核和非抢占式内核的区别:抢占式内核可以在内核空间进行抢占,通过对中断处理进行线程化可以提高Linux内核实时性。三介绍了Linux中断注册函数request_threaded_irq,其实request_irq也是对request_threaded_irq的封装...转载 2019-07-23 09:28:52 · 777 阅读 · 0 评论 -
Linux kernel的中断子系统之(六):ARM中断处理过程
转载地址:https://www.cnblogs.com/arnoldlu/p/7599593.html总结:二中断处理经过两种模式:IRQ模式和SVC模式,这两种模式都有自己的stack,同时涉及到异常向量表中的中断向量。三ARM处理器在感知到中断之后,切换CPSR寄存器模式到IRQ;保存CPSR和PC;mask irq;PC指向irq vector。四进入中断的IRQ模式相关处理,...转载 2019-07-23 09:30:20 · 481 阅读 · 0 评论 -
Linux kernel的中断子系统之(七):GIC代码分析
转载地址:https://www.cnblogs.com/arnoldlu/p/7599595.html总结:原文地址:《linux kernel的中断子系统之(七):GIC代码分析》参考代码:http://elixir.free-electrons.com/linux/v3.17-rc3/source一、前言GIC(Generic Interrupt Co...转载 2019-07-23 09:31:43 · 666 阅读 · 0 评论 -
Linux kernel的中断子系统之(八):softirq
转载地址:https://www.cnblogs.com/arnoldlu/p/7599600.html总结:中断分为上半部和下半部,上半部关中断;下半部开中断,处理可以延迟的事情。下半部有workqueue/softirq/tasklet三种方式。二介绍了为何要分top half和bottom half?workqueue/softirq/tasklet区别?三重点分析了preemp...转载 2019-07-23 09:34:16 · 381 阅读 · 0 评论 -
Linux kernel的中断子系统之(九):tasklet
转载地址:https://www.cnblogs.com/arnoldlu/p/7599602.html总结:二介绍了tasklet存在的意义。三介绍了通过tasklet_struct来抽想一个tasklet,每个CPU维护一个tasklet链表tasklet_vec/tasklet_hi_vec,然后介绍了如何定一个一个tasklet(静态/动态),以及如何调度一个tasklet,什...转载 2019-07-23 09:35:21 · 263 阅读 · 0 评论 -
Linux中断管理
转载地址:https://www.cnblogs.com/arnoldlu/p/8659972.htmlCPU和外设之间的交互,或CPU通过轮询机制查询,或外设通过中断机制主动上报。对大部分外设中断比轮询效率高,但比如网卡驱动采取轮询比中断效率高。这里重点关注ARM+Linux组合下中断管理,从底层硬件GIC+CPU,到Linux内核通用部分处理,再到GIC驱动以及中断注册,最后是中断...转载 2019-07-23 14:52:13 · 242 阅读 · 0 评论 -
Linux中断管理 (1)Linux中断管理机制
转载地址:https://www.cnblogs.com/arnoldlu/p/8659981.html目录:《Linux中断管理》《Linux中断管理 (1)Linux中断管理机制》《Linux中断管理 (2)软中断和tasklet》《Linux中断管理 (3)workqueue工作队列》关键词:GIC、IAR、EOI、SGI/PPI/SPI、中断映射、中断异常向量...转载 2019-07-23 14:54:02 · 541 阅读 · 0 评论 -
Linux中断管理 (2)软中断和tasklet
转载地址:https://www.cnblogs.com/arnoldlu/p/8659986.html目录:《Linux中断管理》《Linux中断管理 (1)Linux中断管理机制》《Linux中断管理 (2)软中断和tasklet》《Linux中断管理 (3)workqueue工作队列》关键词:TASKLET_SOFTIRQ、HI_SOFTIRQ、softirq_...转载 2019-07-23 14:55:34 · 260 阅读 · 0 评论 -
Linux kernel的中断子系统之(四):High level irq event handler
转载地址:https://www.cnblogs.com/arnoldlu/p/7599585.html总结:从架构相关的汇编处理跳转到Machine/控制器相关的handle_arch_irq,generic_handle_irq作为High level irq event handler入口。一介绍了进入High level irq event handler的路径__irq_svc-...转载 2019-07-23 09:26:08 · 346 阅读 · 0 评论 -
Linux kernel的中断子系统之(三):IRQ number和中断描述符
转载地址:https://www.cnblogs.com/arnoldlu/p/7599577.html总结:二描述了中断处理示意图,以及关中断、开中断,和IRQ number重要概念。三介绍了三个重要的结构体,irq_desc、irq_data、irq_chip及其之间关系。四介绍了irq_desc这个全局变量的初始化,五是操作中断描述符相关结构体的API接口介绍。原文...转载 2019-07-22 18:19:59 · 606 阅读 · 0 评论 -
request_irq和free_irq的使用
转载地址: https://blog.youkuaiyun.com/qq_16777851/article/details/81276888static inline int __must_checkrequest_irq(unsigned int irq, irq_handler_t handler, unsigned long flags, const char *name, void...转载 2019-07-22 11:08:24 · 859 阅读 · 0 评论 -
Kernel中断处理模型
转载地址:http://blog.chinaunix.net/uid-20696246-id-1891945.htmlKernel中断处理模型结构图如下:下面简单介绍一下:1.Linux定义了名字为irq_desc的中断例程描述符表:(include/linux/irq.h)struct irqdesc irq_desc[NR_IRQS];NR_IRQS...转载 2019-07-22 11:32:04 · 434 阅读 · 0 评论 -
分析内核中断运行过程,以及中断3大结构体:irq_desc、irq_chip、irqaction(详解)
转载地址:https://www.cnblogs.com/lifexy/p/7506504.html本节目标: 分析在linux中的中断是如何运行的,以及中断3大结构体:irq_desc、irq_chip、irqaction在裸板程序中(参考stmdb和ldmia详解):1.按键按下,2.cpu发生中断,3.强制跳到异常向量入口执行(0x18中断地址处)3.1使用s...转载 2019-07-22 14:33:50 · 726 阅读 · 0 评论 -
分析request_irq和free_irq函数如何注册注销中断(详解)
转载地址:https://www.cnblogs.com/lifexy/p/7506613.html当我们想自己写个中断处理程序,去执行自己的代码,就需要写irq_desc->action->handler,然后通过request_irq()来向内核申请注册中断本节目标: 分析request_irq()如何申请注册中断,free_irq()如何注销中断1....转载 2019-07-22 14:38:09 · 996 阅读 · 0 评论 -
自己写中断方式按键驱动程序(详解)
转载地址:https://www.cnblogs.com/lifexy/p/7506718.htmlrequest_irq()和free_irq()分析完毕后,接下来开始编写上升沿中断的按键驱动如下图,需要设置4个按键的EINT0, EINT2, EINT11, EINT19的模式为双边沿,且设置按键引脚为中断引脚这里我们只需要使用request_irq函数就行了, 在reque...转载 2019-07-22 14:47:40 · 1616 阅读 · 0 评论 -
Linux kernel的中断子系统之(一):综述
转载地址:https://www.cnblogs.com/arnoldlu/p/7599574.html总结:一从作为一名驱动工程师角度看,用好中断需要正确认识request_threaded_irq/request_irq关系、中断临界区保护、中断上下半部使用。二介绍了参与终端三种器件:外设->中断控制器->CPU,以及中断控制器和CPU之间拓扑关系:中断控制器级联、多核...转载 2019-07-22 18:16:24 · 342 阅读 · 0 评论 -
Linux kernel的中断子系统之(二):IRQ Domain介绍
转载地址:https://www.cnblogs.com/arnoldlu/p/7599575.html总结:一、二概述了软硬件不同角度的IRQ Number和HW Interrupt ID,这就需要他们之间架个桥梁。三介绍了架设这种桥梁的几种方式:Linear、Radix Tree和no map。四介绍了两种基础数据结构描述中断域的irq_domain及针对中断域的操作函数。五针...转载 2019-07-22 18:18:26 · 400 阅读 · 0 评论 -
Linux中断管理 (3)workqueue工作队列
转载地址:https://www.cnblogs.com/arnoldlu/p/8659988.html目录:《Linux中断管理》《Linux中断管理 (1)Linux中断管理机制》《Linux中断管理 (2)软中断和tasklet》《Linux中断管理 (3)workqueue工作队列》关键词:工作队列的原理是把work(需要推迟执行的函数)交由一个内核线程来...转载 2019-07-23 14:57:06 · 1435 阅读 · 0 评论