
驱动
程序员QC
To be a better man.
展开
-
中断处理函数
以下是一个统计中断时间间隔的中断服务程序:irqreturn_t short_interrupt(int irq, void *dev_id, struct pt_regs *regs){static long mytime=0;static int i=0;struct net_device *dev=(struct net_device *)dev_id;if(i==0转载 2013-08-18 18:12:23 · 2765 阅读 · 0 评论 -
input子系统(二)
本文转自:linux输入子系统输入子系统由驱动层、输入子系统核心、事件处理层三部分组成。一个输入事件,如鼠标移动、键盘按下等通过Driver->Inputcore->Event handler->userspace的顺序到达用户控件的应用程序。驱动层:将底层的硬件输入转化为统一事件形式,想输入核心(Input Core)汇报。输入子系统核心:承上启下。为驱动层提供输入设备注册与操作接口转载 2013-10-18 23:39:24 · 828 阅读 · 0 评论 -
i2c相关知识点
本文转自:i2c 知识点总结 0、 总线端:主要是mach-smdkc110.c和i2c_s3c2410.c两个文件,主要完成资源的注册,在s3c24xx_i2c_probe中创建adapter和client后总线端退出 设备端:主要是用户写的部分,通过i2c_add_driver 匹配i2c_driver的id_table中的name和 client转载 2013-08-26 20:42:22 · 1325 阅读 · 0 评论 -
设备模型之总线、设备、驱动
本文转自:驱动设备模型之总线设备驱动 为了适用要求越来越高的硬件设备需求,linux2.6内核提供了一种全新的内核设备模型。设备模型三元素:总线、设备、驱动;第一节:总线总线是处理器与设备之间的通道,所有的设备通过总线相连;总线由bus_type定义(位于) 1 struct bus_type { 2 const char *name; 3转载 2013-10-19 09:57:10 · 833 阅读 · 0 评论 -
input子系统(一)
本文转自:嵌入式Linux之我行——S3C2440上触摸屏驱动实例开发讲解1、Linux输入子系统(Input Subsystem): 在Linux中,输入子系统是由输入子系统设备驱动层、输入子系统核心层(Input Core)和输入子系统事件处理层(Event Handler)组成。其中设备驱动层提供对硬件各寄存器的读写访问和将底层硬件对用户输入访问的响应转换为标转载 2013-08-24 17:24:52 · 813 阅读 · 0 评论 -
platform总线、设备与驱动
本文转自(摘选):platform总线、设备与驱动 在Linux 2.6的设备驱动模型中,关心总线、设备和驱动这3个实体,总线将设备和驱动绑定。在系统每注册一个设备的时候,会寻找 与之匹配的驱动;相反的,在系统每注册一个驱动的时候,会寻找与之匹配的设备,而匹配由总线完成。一个现实的Linux设备和驱动通常都需要挂接在一种总线上,对于本身依附于PCI、USB、I2 C、SP转载 2013-10-19 09:00:54 · 1195 阅读 · 0 评论 -
request_mem_region 和 ioremap的理解
几乎每一种外设都是通过读写设备上的寄存器来进行的,通常包括控制寄存器、状态寄存器和数据寄存器三大类,外设的寄存器通常被连续地编址。根据CPU体系结构的不同,CPU对IO端口的编址方式有两种: (1)I/O映射方式(I/O-mapped) 典型地,如X86处理器为外设专门实现了一个单独的地址空间,称为"I/O地址空间"或者"I/O端口空间",CPU通过专门的I/O指令转载 2013-08-20 21:58:21 · 2081 阅读 · 0 评论 -
电容触摸屏驱动分析
转载出处:android 电容屏(三):驱动调试之驱动程序分析篇(转)一、总体架构1、IIC部分,初始化gt8105的数据和传回主控制的坐标位置信息就是通过IIC这条线传输的;2、INT,当gt8105初触摸时,会发出中断通知主控接收信息(坐标数据);3、gt8105电源、复位这一部分,不同芯片有所不同,可以根据触摸屏芯片来配置。二、电容触摸屏的主要参数(面试的转载 2013-08-23 08:19:37 · 2809 阅读 · 0 评论 -
request_irq函数介绍
在Linux内核中,request_irq()函数是注册中断服务函数,函数的原型如下:int request_irq (unsigned int irq, irqreturn_t (*handler)(int, void *), unsigned long irqfrag, const char *devname,void *dev_id);5个参数的含义如下:参数1:中断号,原创 2013-08-23 13:12:38 · 10737 阅读 · 0 评论 -
工作队列的理解
Linux中的Workqueue机制就是为了简化内核线程的创建。通过调用workqueue的接口就能创建内核线程。并且可以根据当前系统CPU的个数创建线程的数量,使得线程处理的事务能够并行化。workqueue是内核中实现简单而有效的机制,他显然简化了内核daemon的创建,方便了用户的编程。 工作队列允许内核函数(像可延迟的函数)激活,而且稍后由一种叫做工作者线程的特殊内核线程来执行,它和转载 2013-08-23 09:00:33 · 1484 阅读 · 0 评论