1.之前注册字符设备用的如下函数注册字符设备驱动: 但其实这个函数是linux版本2.4之前的注册方式,它的原理是: (1)确定一个主设备号 (2)构造一个file_operations结构体, 然后放在chrdevs数组中 (3)注册:register_chrdev 然后当读写字符设备的时候,就会 ...
分类:
其他好文 时间:
2017-11-13 19:46:36
阅读次数:
233
一、输入子系统 针对输入设备设计:触摸屏、键盘、按键、传感器、鼠标...... 二、每种设备都属于字符设备驱动,程序的写法步骤也相同 1、实现入口函数 xxx_init() 和卸载函数 xxx_exit() 2、申请设备号 register_chrdev() 与内核相关 3、创建设备文件(节点) c ...
分类:
系统相关 时间:
2017-11-02 15:55:49
阅读次数:
261
之前写字符设备驱动,都是使用register_chrdev向内核注册驱动程序中构建的file_operations结构体,之后创建的设备文件,只要是主设备号相同(次设备号不同),则绑定的都是同一个file_operations结构体,应用程序使用的也都是这一个结构体中注册的函数。这就会出现这样的一个 ...
分类:
其他好文 时间:
2017-10-25 18:09:49
阅读次数:
187
drivers/input/input.c: input_init > err = register_chrdev(INPUT_MAJOR, "input", &input_fops); static const struct file_operations input_fops = { .owne ...
分类:
其他好文 时间:
2017-10-12 00:52:57
阅读次数:
205
设备号: 1、自己主动分配 major = register_chrdev(0,"first_drv",&first_sdv_fops);//注冊 注冊设备时给设备号写0,则内核会自己主动分配一个主设备号返回。 2、手动指定 到 proc/devices 文件下查找都有哪些主设备号。假设没有被使用的 ...
分类:
系统相关 时间:
2017-07-05 13:34:03
阅读次数:
264
看了这么多的资料,现在决定上手了,下面将用两种方式来实现对GPIO 117的控制1,用直接添加到内核的方式,实现MISC的驱动(misc_register)2,用手工安装的方式,实现简单字符设备驱动(register_chrdev)实现前提:当前所用的GPIO没有被其它设备所使用,大家可以用我前面B ...
分类:
其他好文 时间:
2017-06-13 22:51:40
阅读次数:
359
1、ioremap_nocache 2、register_chrdev register_chrdev_region alloc_chrdev_region cdev_init cdev_add class_create device_create 3、 device_destroy class_d ...
分类:
其他好文 时间:
2017-02-07 20:50:09
阅读次数:
166
原本的字符设备只能有255个驱动程序,原因是一个主设备号占用了0~255的次设备号 把register_chrdev展开可得到一下几个部分:register_chrdev_region/alloc_chrdev_region,cdev_init,cdev_add 参照register_chrdev的 ...
分类:
其他好文 时间:
2017-01-30 18:48:06
阅读次数:
226
1.写出leds_open,leds_write函数2.1告诉内核这几个函数的存在?定义一个结构体file_operations2.2把这个结构体告诉内核?用register_chrdev(major,name,file_operations) //将主设备号与file_operations结构一起 ...
分类:
其他好文 时间:
2017-01-07 08:03:35
阅读次数:
220
内核提供了三个函数来注册一组字符设备编号,这三个函数分别是 register_chrdev_region()、alloc_chrdev_region() 和 register_chrdev()。 (1)register_chrdev 比较老的内核注册的形式 早期的驱动(2)register_chrd ...
分类:
其他好文 时间:
2016-12-27 23:19:56
阅读次数:
383