狐狸梦见乌鸦

当坚持成为一种习惯,目标将不在遥远```
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

随笔分类 -  驱动之字符设备

摘要:1.platform设备模型 从Linux 2.6起引入了一套新的驱动管理和注册机制,platform_device和platform_driver,Linux中大部分的设备驱动都可以使用这套机制。platform是一条虚拟的总线。设备用platform_device表示,驱动用platform_driver进行注册,Linux platform driver机制和传统的device driver机制(通过driver_register进行注册)相比,一个明显的优势在于platform机制将设备本身的资源注册进内核,由内核统一管理,在驱动中使用这些资源时通过platform device提供的 阅读全文

posted @ 2013-04-11 09:13 灬啊U 阅读(232) 评论(0) 推荐(0)

摘要:udev设备文件系统:1、udev工作过程:(1)当内核检测到在系统中出现了新设备后,内核会在sysfs文件系统中为该新设备生产新的记录并导出一些设备特定的信息及所发生的事件。(2)udev获取内核导出的信息,它调用namedev(设备命名子系统)决定应该给该设备指定的名称,如果是新插入设备,udev将调用libsysfs(提供访问sysfs文件系统从中获取信息的标准接口)决定应该为该设备的设备文件指定的主/次设备号,并用分析获得的设备名称和主/次设备号创建/dev中的设备文件;如果是设备移除,则之前已经被创建的/dev文件将被删除。2、namedev中使用5步序列来决定指定设备的命名:(1) 阅读全文

posted @ 2013-04-01 19:59 灬啊U 阅读(161) 评论(0) 推荐(0)

摘要:ADC驱动:10bit或者12bitCMOS模拟数据转为数字(ADC),它是一个带有10通道模拟输入的,回收(recycling)类型设备,它将输入的模拟信号转化为10bit或者12bit的2进制数字编码,最大的转化比率1MSPS,5MHZ的AD转换器时钟。范围:Anloginputrange:0--3.3V模拟输入电压;精度:10/12将3.3V平均分为2的n次方,在通过计算获取当前的电压值。。。最大转换次数:1MSPS通道:表示ADC能接多少个设备。。。电阻屏,无需转换成电压值、、、一、如果时钟pclk是66MHZ,预分频值为65,10或者12bit转换时间为:A/D转换频率=66MHZ/ 阅读全文

posted @ 2012-03-06 08:52 灬啊U 阅读(509) 评论(0) 推荐(0)

摘要:Linux字符设备驱动结构:1.cdev结构体linux内核中使用cdev结构体来描述一个字符设备;Structcdev{Structkobjectkobj;Structmodule*owner;Structfile_operations*ops;/*文件操作结构体*/Structlist_headlist;Dev_tdev;//设备号Unsignedintcount;};①cdev结构体中的dev_t成员定义了设备号,为32位,其中12位为主设备号,后20位为次设备号;使用了两个宏可以从dev_t获得主次设备号:MAJOR(dev_tdev)MINOR(dev_tdev)。。。。。。使用宏M 阅读全文

posted @ 2012-03-04 12:57 灬啊U 阅读(612) 评论(0) 推荐(0)

摘要:写驱动流程:1.原理图-à输出高电平 led亮2.对应核心板的GPIO口3.查看寄存器地址4.了解管脚的功能5.开始写驱动①许可证②加载函数申请设备号MKDEVRegister_chrdev_regionAlloc_chrdev_region注册设备CdevFile_oparetions---àopen/releaseCdev_initCdev_add寄存器映射Ioremap(PA,size)配置寄存器(读改写的方式)Readll()Write()③卸载函数取消映射注销设备释放传参时: 将字符串转换成整数;按键 驱动:1.原理图2.外部中断,下降沿触发Request_irq 阅读全文

posted @ 2012-03-04 11:14 灬啊U 阅读(964) 评论(0) 推荐(0)