2.6内核前后--注册字符设备驱动区别
2014-03-08 14:41
344 查看
1:2.6内核前
int register_chrdev (unsigned int major, const char *name, struct file_operations *fops);int unregister_chrdev( unsigned int major, const char *name );
创建设备文件的方法:
static devfs_handle_t devfs_handle;
devfs_handle = devfs_register( NULL, DEVICE_NAME, DEVFS_FL_DEFAULT,
BUTTON_MAJOR,&sbc2410_buttons_fops, NULL);
devfs_unregister( devfs_handle);
2:2.6内核以及以后
int register_chrdev_region( dev_t first, unsigned int count, char *name );int alloc_chrdev_region( dev_t *dev, unsigned int firstminor,unsigned int count, char *name );
void unregister_chrdev_region( dev_t first, unsigned int count );
void cdev_init( struct cdev *cdev, struct file_operations *fops);
int cdev_add( struct cdev *dev, dev_t num, unsigned int count);
void cdev_del( struct cdev *dev );
创建设备文件的方法:
devfs_mk_cdev( MKDEV(LED_MAJOR, LED_MINOR),
S_IFCHR | S_IRUSR | S_IWUSR | S_IRGRP, DEVICE_NAME);
devfs_remove(DEVICE_NAME);
3:字符设备文件生成方法
1:通过命令创建mknod /dev/设备文件名 字符设备(c是字符设备,b是块设备) 主设备号 次设备号
例如:mknod /dev/testChar c 100 0
删除设备入口:
rm /dev/testChar
2:使用devfs动态创建设备节点
#ifdef CONFIG_DEVFS_FS
---内核配置项
3:用udev配合class动态生成设备文件
注册设备类
class_create,class_simple_create在/sys/class下创建类目录
例如:
sys/class/cdd_class的文件夹
dev_class = class_create(THIS_MODULE, "cdd_class");
注册设备
device_create,class_device_create,class_simple_device_add
例如:
sys/class/cdd_class/cdd0 /dev/cdd0
dev_device = device_create(dev_class, NULL, dev, NULL, "cdd%d", cdd_minor);
总结:2.6内核以前的字符驱动注册机制不应该在新代码中使用了,因为会在将来的内核中消失。
相关文章推荐
- Linux2.6内核下简单的字符设备驱动及测试
- linux 2.6内核 字符设备驱动 相关函数
- linux2.6标准字符设备驱动模型(手动注册)
- 字符设备驱动内核框架小结
- 转 字符设备驱动与块设备驱动的区别
- linux驱动---字符设备的注册register_chrdev说起
- 字符设备驱动在内核源码中的分析
- 从 2.4 到 2.6:Linux 内核可装载模块机制的改变对设备驱动的影响
- 从 2.4 到 2.6:Linux 内核可装载模块机制的改变对设备驱动的影响
- 从 2.4 到 2.6:Linux 内核可装载模块机制的改变对设备驱动的影响
- 从 2.4 到 2.6:Linux 内核可装载模块机制的改变对设备驱动的影响
- 以杂项设备驱动的方法注册字符设备驱动
- __register_chrdev_region分析(简单字符设备驱动在内核的工作原理)
- Linux_2.6字符设备驱动实例
- android内核字符驱动设备实战之----------运行时库层jni动态库编程(应该是应用框架层)
- linux 驱动程序 设备模块 设备号 设备文件创建 设备注册 字符驱动设备分析
- linux内核字符设备驱动之发送命令接口
- android内核字符驱动设备实战之----------应用层测试程序篇
- 从2.4 到2.6:Linux 内核可装载模块机制的改变对设备驱动的影响
- linux驱动---字符设备的注册register_chrdev说起