linux中断
ImageLS
这个作者很懒,什么都没留下…
展开
-
Linux kernel的中断子系统之(一):综述
转载:http://www.wowotech.net/linux_kenrel/interrupt_subsystem_architecture.html一、前言一个合格的linux驱动工程师需要对kernel中的中断子系统有深刻的理解,只有这样,在写具体driver的时候才能:1、正确的使用linux kernel提供的的API,例如最著名的request_threaded_ir转载 2016-06-15 17:03:57 · 535 阅读 · 0 评论 -
Concurrency Managed Workqueue之(四):workqueue如何处理work
转载:http://www.wowotech.net/irq_subsystem/queue_and_handle_work.html一、前言本文主要讲述下面两部分的内容:1、将work挂入workqueue的处理过程2、如何处理挂入workqueue的work 二、用户将一个work挂入workqueue1、queue_work_on函数使用workqueue转载 2016-06-15 17:36:50 · 395 阅读 · 0 评论 -
Concurrency Managed Workqueue之(三):创建workqueue代码分析
转载:http://www.wowotech.net/irq_subsystem/alloc_workqueue.html一、前言本文主要以__alloc_workqueue_key函数为主线,描述CMWQ中的创建一个workqueue实例的代码过程。 二、WQ_POWER_EFFICIENT的处理__alloc_workqueue_key函数的一开始有如下的代码:转载 2016-06-15 17:36:13 · 441 阅读 · 0 评论 -
Concurrency Managed Workqueue之(二):CMWQ概述
转载:http://www.wowotech.net/irq_subsystem/cmwq-intro.html一、前言一种新的机制出现的原因往往是为了解决实际的问题,虽然linux kernel中已经提供了workqueue的机制,那么为何还要引入cmwq呢?也就是说:旧的workqueue机制存在什么样的问题?在新的cmwq又是如何解决这些问题的呢?它接口是如何呈现的呢(驱动工程师转载 2016-06-15 17:35:00 · 524 阅读 · 0 评论 -
Concurrency Managed Workqueue之(一):workqueue的基本概念
转载:http://www.wowotech.net/irq_subsystem/workqueue.html一、前言workqueue是一个驱动工程师常用的工具,在旧的内核中(指2.6.36之前的内核版本)workqueue代码比较简单(大概800行),在2.6.36内核版本中引入了CMWQ(Concurrency Managed Workqueue),workqueue.c的代码膨转载 2016-06-15 17:30:40 · 329 阅读 · 0 评论 -
linux kernel的中断子系统之(九):tasklet
转载:http://www.wowotech.net/irq_subsystem/tasklet.html一、前言对于中断处理而言,linux将其分成了两个部分,一个叫做中断handler(top half),属于不那么紧急需要处理的事情被推迟执行,我们称之deferable task,或者叫做bottom half,。具体如何推迟执行分成下面几种情况:1、推迟到top half执转载 2016-06-15 17:26:57 · 248 阅读 · 0 评论 -
linux kernel的中断子系统之(八):softirq
转载:http://www.wowotech.net/linux_kenrel/soft-irq.html一、前言对于中断处理而言,linux将其分成了两个部分,一个叫做中断handler(top half),是全程关闭中断的,另外一部分是deferable task(bottom half),属于不那么紧急需要处理的事情。在执行bottom half的时候,是开中断的。有多种bott转载 2016-06-15 17:21:02 · 221 阅读 · 0 评论 -
linux kernel的中断子系统之(七):GIC代码分析
转载:http://www.wowotech.net/linux_kenrel/gic_driver.html一、前言GIC(Generic Interrupt Controller)是ARM公司提供的一个通用的中断控制器,其architecture specification目前有四个版本,V1~V4(V2最多支持8个ARM core,V3/V4支持更多的ARM core,主要用于A转载 2016-06-15 17:19:37 · 324 阅读 · 0 评论 -
Linux kernel的中断子系统之(六):ARM中断处理过程
转载:http://www.wowotech.net/irq_handler.html一、前言本文主要以ARM体系结构下的中断处理为例,讲述整个中断处理过程中的硬件行为和软件动作。具体整个处理过程分成三个步骤来描述:1、第二章描述了中断处理的准备过程2、第三章描述了当发生中的时候,ARM硬件的行为3、第四章描述了ARM的中断进入过程4、第五章描述了ARM的中断退出过程转载 2016-06-15 17:13:51 · 402 阅读 · 0 评论 -
Linux kernel中断子系统之(五):驱动申请中断API
转载:http://www.wowotech.net/linux_kenrel/request_threaded_irq.html一、前言本文主要的议题是作为一个普通的驱动工程师,在撰写自己负责的驱动的时候,如何向Linux Kernel中的中断子系统注册中断处理函数?为了理解注册中断的接口,必须了解一些中断线程化(threaded interrupt handler)的基础知识,这些转载 2016-06-15 17:12:24 · 563 阅读 · 0 评论 -
linux kernel的中断子系统之(四):High level irq event handler
转载:http://www.wowotech.net/linux_kenrel/High_level_irq_event_handler.html一、前言当外设触发一次中断后,一个大概的处理过程是:1、具体CPU architecture相关的模块会进行现场保护,然后调用machine driver对应的中断处理handler2、machine driver对应的中断处理han转载 2016-06-15 17:10:23 · 735 阅读 · 0 评论 -
linux kernel的中断子系统之(三):IRQ number和中断描述符
转载:http://www.wowotech.net/linux_kenrel/interrupt_descriptor.html一、前言本文主要围绕IRQ number和中断描述符(interrupt descriptor)这两个概念描述通用中断处理过程。第二章主要描述基本概念,包括什么是IRQ number,什么是中断描述符等。第三章描述中断描述符数据结构的各个成员。第四章描述了初转载 2016-06-15 17:08:46 · 1269 阅读 · 0 评论 -
Linux kernel的中断子系统之(二):IRQ Domain介绍
转载:http://www.wowotech.net/linux_kenrel/irq-domain.html一、概述在linux kernel中,我们使用下面两个ID来标识一个来自外设的中断:1、IRQ number。CPU需要为每一个外设中断编号,我们称之IRQ Number。这个IRQ number是一个虚拟的interrupt ID,和硬件无关,仅仅是被CPU用来标识一个外转载 2016-06-15 17:07:00 · 287 阅读 · 0 评论