![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
字符设备驱动
文章平均质量分 73
午时龙且
这个作者很懒,什么都没留下…
展开
-
字符设备(一)
1.cdev结构体linux2.6中使用cdev结构体描述字符设备struct cdev { struct kobject kobj;//内嵌的kobject对象 struct module *owner;//所属模块 const struct file_operations *ops;//文件操作结构体 struct list_head list; dev_t dev;//设备原创 2013-01-29 09:51:11 · 561 阅读 · 0 评论 -
字符设备(二)之主要数据结构
一.linux文件系统和字符设备驱动应用程序和VFS之间的接口是系统调用,而VFS和磁盘文件系以及普通设备之间接口是file_operation结构体成员函数,这个结构包含打开,关闭,读,写等各种对文件的操作字符设备上层不涉及到磁盘,所以字符设备的file_operation成员函数直接由设备驱动提供。file_operation是字符设备的操作核心。1.file结构体文件结构体代原创 2013-01-29 10:50:00 · 734 阅读 · 0 评论 -
mini2440之背光驱动
背光是由LCD上LCD_PWR(GPG4)控制的。#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include原创 2013-01-11 14:00:57 · 797 阅读 · 0 评论 -
mini2440之触摸屏驱动
一.触摸屏工作原理使用触摸屏接口功能,AIN[7],AIN[5]用于对触摸屏模拟信号进行转换。本例中,触摸屏面板XP引脚与AIN[7]连接,YP引脚与AIN[5]连接,为了控制触摸屏面板XP,XM,YP,YM引脚,S3C2440芯片外使用了4个外部晶体管,控制信号nYPON,YMON,nXPON,XMON和这4个晶体管连接。使用触摸屏操作步骤:(1)原创 2013-01-09 21:27:40 · 2851 阅读 · 0 评论 -
mini2440之PWM混杂驱动分析
在其Linux源码中,和这个平台相关的代码主要在arch/arm/mach-s3c2410和include/asm-arm/arch-s3c2410Linux对I/O的操作都定义在asm/io.h中,相应的在arm平台下,就在asm-arm/io.h中。#include #include #include #include #include #include #includ原创 2012-12-26 14:17:57 · 977 阅读 · 0 评论 -
input子系统
一,input子系统介绍linux系统提供了input子系统,按键,触摸屏,键盘,鼠标等输入都可以利用input接口函数来实现设备驱动,linux内核中,input设备用input_dev结构体描述,使用input子系统实现输入设备驱动的时候,驱动的核心工作是向系统报告按键,触摸屏,键盘,鼠标等输入事件(event,通过input_event结构体描述),不再需要关心文件操作接口,因为原创 2013-01-10 18:50:55 · 978 阅读 · 0 评论 -
mini2440之ADC驱动分析
一,ADC原理ADC,模数转换器,将模拟量转换成数字量,采样,保持电路与AD转换器集成在一起。AD转换器模拟输入信号是直流电压信号,0~3.3V之间。S3C2440有8路模拟输入信号,AD转换器内部有一个模拟多路选择器,某一时刻只能将一路模拟输入信号,通过模拟多路选择器接通进行AD转换,而其他路模拟输入信号被断开。片内ADC电路ADC转换电路模块图XP,XM,Y原创 2013-01-09 15:44:54 · 2397 阅读 · 0 评论 -
平台设备驱动模型
在设备驱动程序中经常会见到和platform相关的字段,在linux2.6设备模型中,关心总线,设备,驱动这三个实体,总线将设备和驱动绑定,在系统每注册一个设备的时候,会寻找与之匹配的驱动。相反,在系统每注册一个驱动的时候,寻找与之匹配的设备,匹配是由总线来完成的。通常Linux 设备和驱动通常都需要挂接在一种总线上,对于本身依附于PCI、USB、I2C、SPI 等的设备而言,这自然不是问转载 2012-12-11 21:08:20 · 500 阅读 · 0 评论 -
GPIO驱动相关函数及物理地址,虚拟地址映射
micro2440采用S3C2440处理器,和这个平台相关的代码主要在arch/arm/mach-s3c2410和include/asm-arm/arch-s3c2410中,相关驱动在drivers目录中。(1)DM9000 网卡驱动Linux-2.6.32.2/drivers/net/dm9000.c(2)串口(包括三个串口驱动0,1,2,对应设备名/dev/ttySAC0,1,2)转载 2012-12-26 14:24:58 · 3156 阅读 · 0 评论 -
ioctl设备控制
ioctl方法介绍:大部分驱动除了需要具备读写设备 的能力外,还需要具备对硬件控制的能力。例如,要求设备报告错误信息, 改变波特率,这些操作常常通过 ioctl方法来实现。在用户空间,使用ioctl系统调用来控制设备,原型 如下:int ioctl(int fd,unsigned long cmd,...)原型中的点表示这是一个可选的参数,存在与否依赖于控制命令(第 2个参数 )是转载 2012-12-13 21:03:59 · 606 阅读 · 0 评论 -
mini2440之led的几种驱动方式
1.混杂设备驱动#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include //#include #include #inclu转载 2012-12-09 21:56:25 · 506 阅读 · 0 评论 -
miscdevice混杂设备驱动
定义:字符设备的一种,它们共享一个主设备号(10),但次设备号不同,所有的混杂设备形成一个链表,对设备访问时内核根据次设备号查找到相应的miscdevice设备。例如:触摸屏,LED,按键,串口。即:为了节约主设备号,将某些设备用链表的形式连接在一起,最后通过查找次设备区分。这里用主设备无法匹配出设备驱动,只能找到链表,再通过次设备号,才能找到设备驱动。而之前所学的,一般字符设备,通过主设转载 2012-12-16 16:39:02 · 7391 阅读 · 0 评论 -
卸载模块
今天在memdev上加入了信号量相关代码,想将生成的模块插入到开发板内核中,需要将先前加载的卸载掉,发现用rmmod memdev.ko没有发现不起作用,需要使用modprobe -r memdev.ko卸载成功,又用modprobe加载,再用这个卸载,发现无法卸载成功,莫名其妙,夜深了,明晚再战。哥睡了先。加载 insmod hello.ko卸载 rmmod hello加载 mo原创 2012-12-12 23:10:56 · 510 阅读 · 0 评论 -
字符设备(三)之globalmem实例集
一.globalmem虚拟设备实例描述globalmem意味着“全局变量”,在globalmem字符设备驱动中会分配一块大小为GLOBALMEM_SIZE(4KB)的内存空间,在驱动中提供针对该内存片的读写,控制,定位函数。#include #include #include #include #include #include #include #include #i原创 2013-01-29 15:01:51 · 991 阅读 · 1 评论