转自:http://blog.csdn.net/u011461299/article/details/9772215 版权声明:本文为博主原创文章,未经博主允许不得转载. 一般来说,在一个device driver中实现中断,是比较简单的,如上面的RTC的例子.其无非就是: 1.       定义一个IRQ No.如何将Hardware中断信息map到我们的IRQ No就是get_irqnr_and_base要做得事情,get_irqnr_and_base是一个macro,后面会详细分析之.这个…
转自:http://www.wowotech.net/linux_kenrel/request_threaded_irq.html 一.前言 本文主要的议题是作为一个普通的驱动工程师,在撰写自己负责的驱动的时候,如何向Linux Kernel中的中断子系统注册中断处理函数?为了理解注册中断的接口,必须了解一些中断线程化(threaded interrupt handler)的基础知识,这些在第二章描述.第三章主要描述了驱动申请 interrupt line接口API request_thread…
Linux 内核为了处理各种不同类型的的输入设备 , 比如说鼠标 , 键盘 , 操纵杆 , 触摸屏 , 设计并实现了一个对上层应用统一的试图的抽象层 , 即是Linux 输入子系统 . 输入子系统的层次结构体如下 从底层到上层 , input 子系统由 设备驱动层 , 核心层 , 以及事件处理层3个部分组成 当一个鼠标移动, 一个按键按下或弹起 , 它都需要从底层设备驱动-->核心层-->事件处理层 -->用户空间 , 层层上报 , 一直到运用程序. 应用这个input  子系统有如下优…
返回目录:<ARM-Linux中断系统>. 总结:二重点区分了抢占式内核和非抢占式内核的区别:抢占式内核可以在内核空间进行抢占,通过对中断处理进行线程化可以提高Linux内核实时性. 三介绍了Linux中断注册函数request_threaded_irq,其实request_irq也是对request_threaded_irq的封装. 四对request_threaded_irq进行了详细分析,两种类型中断(Cascaded IRQ和Nested IRQ),以及如何兼容BottomHalf和T…
linux kernel的中断子系统之(八):softirq http://www.wowotech.net/irq_subsystem/soft-irq.html http://www.ibm.com/developerworks/library/l-tasklets/index.html…
返回目录:<ARM-Linux中断系统>. 总结: 一从作为一名驱动工程师角度看,用好中断需要正确认识request_threaded_irq/request_irq关系.中断临界区保护.中断上下半部使用. 二介绍了参与终端三种器件:外设->中断控制器->CPU,以及中断控制器和CPU之间拓扑关系:中断控制器级联.多核CPU中断分发.设置中断和CPU的亲和性. 三将中断子系统软件架构划分为四块:通用中断处理模块.体系架构相关处理.中断控制器驱动.外设驱动. 四是一个系列文档导读.…
返回目录:<ARM-Linux中断系统>. 总结: 二描述了中断处理示意图,以及关中断.开中断,和IRQ number重要概念. 三介绍了三个重要的结构体,irq_desc.irq_data.irq_chip及其之间关系. 四介绍了irq_desc这个全局变量的初始化,五是操作中断描述符相关结构体的API接口介绍. 原文地址:linux kernel的中断子系统之(三):IRQ number和中断描述符 一.前言 本文主要围绕IRQ number和中断描述符(interrupt descrip…
返回目录:<ARM-Linux中断系统>. 总结:二中断处理经过两种模式:IRQ模式和SVC模式,这两种模式都有自己的stack,同时涉及到异常向量表中的中断向量. 三ARM处理器在感知到中断之后,切换CPSR寄存器模式到IRQ:保存CPSR和PC:mask irq:PC指向irq vector. 四进入中断的IRQ模式相关处理,然后根据当前处于用户还是内核空间分别处理. 五是在中断例程处理完之后退出流程,同样根据进入中断前处于用户还是内核不同分别处理. 原文地址:Linux kernel的中…
返回目录:<ARM-Linux中断系统>. 总结:一.二概述了软硬件不同角度的IRQ Number和HW Interrupt ID,这就需要他们之间架个桥梁. 三介绍了架设这种桥梁的几种方式:Linear.Radix Tree和no map. 四介绍了两种基础数据结构描述中断域的irq_domain及针对中断域的操作函数. 五针对中断DeviceTree的个属性进行了解释. 六介绍了从DT到中断映射数据库的过程,也即HW interrupt ID到IRQ number之间的映射关系. 七介绍了…
返回目录:<ARM-Linux中断系统>. 总结:从架构相关的汇编处理跳转到Machine/控制器相关的handle_arch_irq,generic_handle_irq作为High level irq event handler入口. 一介绍了进入High level irq event handler的路径__irq_svc-->irq_handler-->handle_arch_irq,generic_handle_irq是入口函数,在generic_handle_irq_…