- 博客(23)
- 收藏
- 关注
转载 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 384
转载 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 425
转载 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 510
转载 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 324
转载 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 234
转载 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 213
转载 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 311
转载 Linux kernel的中断子系统之(六):ARM中断处理过程
转载:http://www.wowotech.net/irq_handler.html一、前言本文主要以ARM体系结构下的中断处理为例,讲述整个中断处理过程中的硬件行为和软件动作。具体整个处理过程分成三个步骤来描述:1、第二章描述了中断处理的准备过程2、第三章描述了当发生中的时候,ARM硬件的行为3、第四章描述了ARM的中断进入过程4、第五章描述了ARM的中断退出过程
2016-06-15 17:13:51 396
转载 Linux kernel中断子系统之(五):驱动申请中断API
转载:http://www.wowotech.net/linux_kenrel/request_threaded_irq.html一、前言本文主要的议题是作为一个普通的驱动工程师,在撰写自己负责的驱动的时候,如何向Linux Kernel中的中断子系统注册中断处理函数?为了理解注册中断的接口,必须了解一些中断线程化(threaded interrupt handler)的基础知识,这些
2016-06-15 17:12:24 550
转载 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 721
转载 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 1255
转载 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 278
转载 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 528
转载 Linux 设备驱动--- 内核等待队列
等待队列: 在 Linux 驱动程序设计中,可以使用等待队列来实现进程的阻塞. 等待队列可以看作保存进程的容器,在阻塞进程时,将进程放入等待队列; 当唤醒进程时,从等待队列中取出进程.等待队列的 定义 和 初始化 wait_queue_head_t DECLARE_WAIT_QUEUE_HEAD :
2016-06-08 11:36:33 208
转载 mount命令
挂接命令(mount)首先,介绍一下挂接(mount)命令的使用方法,mount命令参数非常多,这里主要讲一下今天我们要用到的。命令格式:mount [-t vfstype] [-o options] device dir其中:1.-t vfstype 指定文件系统的类型,通常不必指定。mount 会自动选择正确的类型。常用类型有:光盘或光盘镜像:iso9660DOS
2016-05-06 16:02:16 239
转载 Linux文件目录/etc/init和/etc/init.d的前世今生
转载:点击打开链接目录[-]两者对比起名的讲究:Our ancestors [3]Reference两者对比这段时间看linux内核启动过程,启动先要加载init进程(即1号进程),然后是按运行级别去执行相关脚本和配置。但是cd /etc目录后会发现两个和init相关的目录:/etc/init和/etc/init.d。很多文章都介绍了/etc/init/ 和 /et
2016-05-06 15:57:49 2351
转载 理解Linux系统/etc/init.d目录和/etc/rc.local脚本
一、关于/etc/init.d 如果你使用过linux系统,那么你一定听说过init.d目录。这个目录到底是干嘛的呢?它归根结底只做了一件事情,但这件事情非同小可,是为整个系统做的,因此它非常重要。init.d目录包含许多系统各种服务的启动和停止脚本。它控制着所有从acpid到x11-common的各种事务。当然,init.d远远没有这么简单。(译者注:acpid 是linux操作系统
2016-05-06 15:40:09 214
转载 UNIX 高手的 10 个习惯
克服不良的 UNIX 使用模式采用 10 个能够提高您的 UNIX® 命令行效率的好习惯——并在此过程中摆脱不良的使用模式。本文循序渐进地指导您学习几项用于命令行操作的技术,这些技术非常好,但是通常被忽略。了解常见错误和克服它们的方法,以便您能够确切了解为何值得采用这些 UNIX 习惯。引言当您经常使用某个系统时,往往会陷入某种固定的使用模式。有时,您没有养成以尽可能最好的方式
2016-05-06 11:30:43 136
转载 tar命令
解压语法:tar [主选项+辅选项] 文件或者目录使用该命令时,主选项是必须要有的,它告诉tar要做什么事情,辅选项是辅助使用的,可以选用。主选项:c 创建新的档案文件。如果用户想备份一个目录或是一些文件,就要选择这个选项。相当于打包。x 从档案文件中释放文件。相当于拆包。t 列出档案文件的内容,查看已经备份了哪些文件。特别注意,在参数的下达中, c/x/t 仅
2016-05-06 11:09:03 234
转载 linux内核启动第二阶段之setup_arch()函数分析-2.6.36
执行setup_arch()函数回到start_kernel当中,569行,调用setup_arch函数,传给他的参数是那个未被初始化的内部变量command_line。这个setup_arch()函数是start_kernel阶段最重要的一个函数,每个体系都有自己的setup_arch()函数,是体系结构相关的,具体编译哪个体系的setup_arch()函数,由顶层Makefile中的ARC
2016-01-22 18:01:47 280
转载 linux内核启动第二阶段之setup_arch()函数分析-2.6.36
执行setup_arch()函数回到start_kernel当中,569行,调用setup_arch函数,传给他的参数是那个未被初始化的内部变量command_line。这个setup_arch()函数是start_kernel阶段最重要的一个函数,每个体系都有自己的setup_arch()函数,是体系结构相关的,具体编译哪个体系的setup_arch()函数,由顶层Makefile中的ARC
2016-01-22 17:56:44 251
转载 java常用系统包介绍
java.applet提供创建 applet 所必需的类和 applet 用来与其 applet 上下文通信的类。java.awt包含用于创建用户界面和绘制图形图像的所有类。java.awt.color提供用于颜色空间的类。 java.awt.datatransfer提供在应用程序之间和在应用程序内部传输数据的接口和类。java.awt.dndDrag 和 Dr
2015-03-02 15:59:51 253
转载 java util包概述
本 章介绍Java的实用工具类库java.util包。在这个包中,Java提供了一些实用的方法和数据结构。例如,Java提供日期(Data)类、日历 (Calendar)类来产生和获取日期及时间,提供随机数(Random)类产生各种类型的随机数,还提供了堆栈(Stack)、向量 (Vector) 、位集合(Bitset)以及哈希表(Hashtable)等类来表示相应的数据结构。 图1.1
2015-03-02 15:39:45 259
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人