返回目录:<ARM-Linux中断系统>. 总结:二中断处理经过两种模式:IRQ模式和SVC模式,这两种模式都有自己的stack,同时涉及到异常向量表中的中断向量. 三ARM处理器在感知到中断之后,切换CPSR寄存器模式到IRQ:保存CPSR和PC:mask irq:PC指向irq vector. 四进入中断的IRQ模式相关处理,然后根据当前处于用户还是内核空间分别处理. 五是在中断例程处理完之后退出流程,同样根据进入中断前处于用户还是内核不同分别处理. 原文地址:Linux kernel的中…
返回目录:<ARM-Linux中断系统>. 总结: 一从作为一名驱动工程师角度看,用好中断需要正确认识request_threaded_irq/request_irq关系.中断临界区保护.中断上下半部使用. 二介绍了参与终端三种器件:外设->中断控制器->CPU,以及中断控制器和CPU之间拓扑关系:中断控制器级联.多核CPU中断分发.设置中断和CPU的亲和性. 三将中断子系统软件架构划分为四块:通用中断处理模块.体系架构相关处理.中断控制器驱动.外设驱动. 四是一个系列文档导读.…
返回目录:<ARM-Linux中断系统>. 总结:中断分为上半部和下半部,上半部关中断:下半部开中断,处理可以延迟的事情.下半部有workqueue/softirq/tasklet三种方式. 二介绍了为何要分top half和bottom half?workqueue/softirq/tasklet区别? 三重点分析了preempt_count,以及据此判断当前task所处的上下文. 四详细分析了softirq机制,softirq静态数组?softirq_action?如何注册softirq?…
返回目录:<ARM-Linux中断系统>. 总结: 二描述了中断处理示意图,以及关中断.开中断,和IRQ number重要概念. 三介绍了三个重要的结构体,irq_desc.irq_data.irq_chip及其之间关系. 四介绍了irq_desc这个全局变量的初始化,五是操作中断描述符相关结构体的API接口介绍. 原文地址:linux kernel的中断子系统之(三):IRQ number和中断描述符 一.前言 本文主要围绕IRQ number和中断描述符(interrupt descrip…
返回目录:<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_…
返回目录:<ARM-Linux中断系统>. 总结: 二介绍了tasklet存在的意义. 三介绍了通过tasklet_struct来抽想一个tasklet,每个CPU维护一个tasklet链表tasklet_vec/tasklet_hi_vec,然后介绍了如何定一个一个tasklet(静态/动态),以及如何调度一个tasklet,什么时候tasklet回调函数会被执行. 原文地址:<linux kernel的中断子系统之(九):tasklet> 一.前言 对于中断处理而言,linux…
返回目录:<ARM-Linux中断系统>. 总结: 原文地址:<linux kernel的中断子系统之(七):GIC代码分析> 参考代码:http://elixir.free-electrons.com/linux/v3.17-rc3/source 一.前言 GIC(Generic Interrupt Controller)是ARM公司提供的一个通用的中断控制器,其architecture specification目前有四个版本,V1-V4(V2最多支持8个ARM core,V3…
转自:http://www.wowotech.net/linux_kenrel/interrupt_descriptor.html 一.前言 本文主要围绕IRQ number和中断描述符(interrupt descriptor)这两个概念描述通用中断处理过程.第二章主要描述基本概念,包括什么是IRQ number,什么是中断描述符等.第三章描述中断描述符数据结构的各个成员.第四章描述了初始化中断描述符相关的接口API.第五章描述中断描述符相关的接口API. 二.基本概念 1.通用中断的代码处理…
linux kernel的中断子系统之(八):softirq http://www.wowotech.net/irq_subsystem/soft-irq.html http://www.ibm.com/developerworks/library/l-tasklets/index.html…