设备驱动
窗外云天
这个作者很懒,什么都没留下…
展开
-
mini2440驱动分析之TouchScreen
mini2440驱动分析之触摸屏 mini2440触摸屏驱动对应的文件为mini2440_ts.c,他是作为输入设备注册到内核的,功能实现是通过输入子系统来完成的,现在分析触摸屏的实现。以后再分析输入子系统。一. 分析一个驱动首先看它的模块初始化函数,下面是mini2440_ts.c的模块初始化函数:static struct clk *adc_clock; //这个原创 2011-09-12 16:25:53 · 3753 阅读 · 2 评论 -
Linux USB Gadget--设备枚举
前面介绍了Linux USB Gadget的软件结构与各软件层的整合过程。经过各种注册函数,Gadget功能驱动层,USB设备层与UDC底层结合在了一起形成了一个完整的USB设备。而这个设备已经准备好了接受主机的枚举。在介绍USB设备枚举之前。先熟悉一下各层通信所用的数据结构,在USB主机端编写USB设备驱动程序,最重要的结构就是URB了,我们只需要将各种URB提交给USB核心,核心就会自动给我们原创 2012-07-15 16:40:07 · 16977 阅读 · 3 评论 -
Linux USB Gadget--各环节的整合
Linux USB Gadget软件结构一文中分析Linux USB Gadget软件分为三层。这三层其中两层是与硬件无关的,分别是Gadget功能驱动层,USB设备层。一层是与硬件相关的是UDC层。每一层都提供一种关键的数据结构与函数与其他层交互。 Gadget功能驱动层: 最主要的结构是struct usb_composite_driver,这个结构在这层定义,并且实现结构原创 2012-06-27 16:55:31 · 24171 阅读 · 3 评论 -
mini2440驱动分析之ADC
mini2440驱动分析之ADC1 . ADC_DEV 结构typedef struct { wait_queue_head_t wait; int channel; int prescale;}ADC_DEV; wait 等待队列,进程读取设备,如果没有转换数据,就会睡眠在此队列上channel 转换通道,s3c2440有八通道的ad,但是只有四个通道AIN[3原创 2011-09-09 19:46:24 · 2354 阅读 · 0 评论 -
基于mini2440的ov9650摄像头裸机测试
mini2440提供了一个摄像头接口,可以输出RGB24,RGB16的原始图像还可以输出编码的如YUV格式的图像,并提供了偏移翻转,放大缩小的功能。与开发板配套的摄像头模块为CAM130,采用ov9650的芯片。操作摄像头接口实现视频的采集与显示,主要配置两个部分的寄存器:ov9650的寄存器,摄像头接口寄存器。 ov9650寄存器在模块的内部,s3c2440是以sccb总线来与原创 2012-01-05 20:18:18 · 7619 阅读 · 5 评论 -
mini2440驱动分析之PWM
mini2440驱动分析之PWM1. pwm驱动也是作为杂项设备注册的,同样为了防止并发造成的竞态,有个信号量保护。模块的初始化函数static int __init dev_init(void){ int ret; init_MUTEX(&lock); ret原创 2011-09-09 19:34:48 · 2332 阅读 · 0 评论 -
mini2440驱动分析之LED
mini2440驱动分析之LED 看LDD3有一段时间了,里面的例程也大部分实践了一下。现在进入真正的驱动程序学习。从友善之臂mini2440提供的驱动程序开始,把一些基本的驱动程序都分析一遍,以提高自己对驱动程序的认识,提高自己的编程能力。下面开始分析友善之臂原创 2011-09-08 17:43:24 · 4851 阅读 · 2 评论 -
linux platform 驱动模型分析
linux platform 驱动模型分析一. 概述 platform设备和驱动与linux设备模型密切相关。platform在linux设备模型中,其实就是一种虚拟总线没有对应的硬件结构。它的主要作用就是管理系统的外设资源,比如io内存,中断信号线。现在大多数处理原创 2011-09-17 15:18:57 · 9689 阅读 · 9 评论 -
mini2440驱动分析之LCD
mini2440驱动分析之LCD mini2440集成了lcd控制器的接口,板子上接的lcd硬件是统宝240*320,TFT型lcd。lcd驱动对应的文件为s3c2410fb.c。要读懂这个驱动必须了解linux platform子系统的知识。因为这个驱动是以p原创 2011-09-22 16:56:57 · 10154 阅读 · 5 评论 -
linux MISC 驱动模型分析
linux MISC 驱动模型分析 阅读led驱动程序的代码的时候,没有发现ldd3中提到的各种字符设备注册函数,而是发现了一个misc_register函数,这说明led设备是作为杂项设备出现在内核中的,在内核中,misc杂项设备驱动接口是对一些字符设原创 2011-09-08 16:18:24 · 15524 阅读 · 1 评论 -
linux RTC 驱动模型分析
linux RTC 驱动模型分析 RTC(real time clock)实时时钟,主要作用是给Linux系统提供时间。RTC因为是电池供电的,所以掉电后时间不丢失。Linux内核把RTC用作“离线”的时间与日期维护器。当Linux内核启动时,它从RTC中读取时原创 2011-09-27 10:28:17 · 28434 阅读 · 4 评论 -
linux input 子系统分析 一
linux input子系统分析--概述与数据结构 Input子系统处理输入事务,任何输入设备的驱动程序都可以通过Input输入子系统提供的接口注册到内核,利用子系统提供的功能来与用户空间交互。输入设备一般包括键盘,鼠标,触摸屏等,在内核中都是以输入设备出现的。原创 2011-09-12 18:31:33 · 6115 阅读 · 1 评论 -
linux input 子系统分析 二
linux input子系统分析--主要函数 一. 各种注册函数 因为分析一所讲的每种数据结构都代表一类对象,所以每种数据结构都会对应一个注册函数,他们都定义在子系统核心的input.c文件中。主要有三个注册函数 input_register_devic原创 2011-09-12 18:57:49 · 5888 阅读 · 3 评论 -
linux input 子系统分析 三
linux input子系统分析--子系统核心.事件处理层.事件传递过程一. 输入子系统核心分析。 1.输入子系统核心对应与/drivers/input/input.c文件,这个也是作为一个模块注册到内核的。所以首先分析模块初始化函数。static int原创 2011-09-14 19:48:59 · 8519 阅读 · 6 评论 -
Linux USB Gadget--软件结构
USB Gadget是分层的软件结构,本文分析的是2.6.32.2版本的Gadget软件结构,这个软件结构与以前版本的变化很大。USB Gadget软件结构总共分为三层:一. UDC层 这一层是与硬件相关层。相关文件s3c2410_udc.c s3c2410_udc.h。s3c2410设备控制器作为一个linux设备在这一层是作为platform设备而注册到linux设备模型原创 2012-06-25 18:34:41 · 11607 阅读 · 1 评论