驱动注册
文章平均质量分 92
sky_embeddem
这个作者很懒,什么都没留下…
展开
-
register_chrdev 深入解析
首先我们在注册函数里面调用了register_chrdev(MEM_MAJOR,"mem",&memory_fops),向内核注册了一个字符设备。第一个参数是主设备号,0代表动态分配,这里的MEM_MAJOR是1。第二个参数是设备的名字,第三个参数是文件操作指针。完成注册后,在/proc/devices中的第一个字符设备我们就看到了:1 mem。1.前面提到了注册,那这个字符设备到底注转载 2013-08-27 15:12:14 · 3742 阅读 · 0 评论 -
linux设备分类
纵览linux/drivers目录,大概还有35个以上的子目录,每个子目录基本上就代表了一种设备驱动,有atm、block、char、misc、input、net、usb、sound、video等。这里只描述在嵌入式系统里面用得最为广泛的3种设备。1.字符设备(char device)字符设备是Linux最简单的设备,可以像文件一样访问。初始化字符设备时,它的设备驱动程序向Linux登记,转载 2013-08-27 20:12:55 · 479 阅读 · 0 评论 -
杂项设备注册 misc_register
(misc device)杂项设备也是在嵌入式系统中用得比较多的一种设备驱动。在 Linux 内核的include/linux目录下有Miscdevice.h文件,要把自己定义的misc device从设备定义在这里。其实是因为这些字符设备不符合预先确定的字符设备范畴,所有这些设备采用主编号10 ,一起归于misc device,其实misc_register就是用主标号10调用registe转载 2013-08-27 15:20:47 · 1334 阅读 · 0 评论 -
register_chrdev 和 class_create
在刚开始写Linux设备驱动程序的时候,很多时候都是利用mknod命令手动创建设备节点,实际上Linux内核为我们提供了一组函数,可以用来在模块加载的时候自动在/dev目录下创建相应设备节点,并在卸载模块时删除该节点,当然前提条件是用户空间移植了udev。内核中定义了struct class结构体,顾名思义,一个struct class结构体类型变量对应一个类,内核同时提供了class_cre转载 2013-08-27 15:34:02 · 980 阅读 · 0 评论 -
字符设备 register_chrdev_region()、alloc_chrdev_region() 和 register_chrdev() .
1. 字符设备结构体 内核中所有已分配的字符设备编号都记录在一个名为 chrdevs 散列表里。该散列表中的每一个元素是一个 char_device_struct 结构,它的定义如下: static struct char_device_struct { struct char_device_struct *next; // 指向散列冲突链表中的下一个元转载 2013-08-27 15:49:03 · 473 阅读 · 0 评论 -
platform_device 和 platform_driver(平台设备和平台驱动)
做Linux方面也有三个多月了,对代码中的有些结构一直不是很明白,比如platform_device与platform_driver一直分不清关系。在网上搜了下,做个总结。两者的工作顺序是先定义platform_device -> 注册 platform_device->,再定义 platform_driver-> 注册 platform_driver。 (1)platform_device设转载 2013-08-27 17:17:33 · 846 阅读 · 0 评论 -
平台设备驱动分析
链接http://blog.csdn.net/cnsecs/article/details/6695573转载 2014-10-18 18:00:12 · 459 阅读 · 0 评论