驱动中使用class_device_create()…
2014-05-06 17:33
316 查看
文章转自:http://hi.baidu.com/weiweisuo1986/item/6bbe5bfe162603713d198b05
下面文章转自上面的地址,经过下文讲解的方法进行改动之后,编译通过
之前写的字符类设备驱动,没有自动创建设备节点,因为只使用了register_chrdev()函数,只是注册了这个设备。然后在系统启动后,就要自己创建设备节点mknod,这样虽然是可行的,但是比较麻烦。于是想在__init函数里面,自动创建设备节点。
经过查阅资料,发现创建设备节点使用了两个函数
class_create()和class_device_create(),当然在__exit()函数里,要使用class_destory()和class_device_desotry()注销创建的设备节点!
问题来了,编译了之后,发现报错error: implicit declaration of function
'class_device_create'等几个错误。经过分析,应该是Linux内核版本不同的原因!早期的版本,使用的是上面说的两个函数,但是在2.6.29以后(我用的是2.6.32的),使用的函数则变成了
class_create()和device_create(),并且要在声明中加入#include
<linux/device.h>
,因为定义这些函数是在Linux2.6.32/include/linux/device.h里面!
经过这些修改后,驱动编译成功,就能够自动创建设备节点了!
下面文章转自上面的地址,经过下文讲解的方法进行改动之后,编译通过
之前写的字符类设备驱动,没有自动创建设备节点,因为只使用了register_chrdev()函数,只是注册了这个设备。然后在系统启动后,就要自己创建设备节点mknod,这样虽然是可行的,但是比较麻烦。于是想在__init函数里面,自动创建设备节点。
经过查阅资料,发现创建设备节点使用了两个函数
class_create()和class_device_create(),当然在__exit()函数里,要使用class_destory()和class_device_desotry()注销创建的设备节点!
问题来了,编译了之后,发现报错error: implicit declaration of function
'class_device_create'等几个错误。经过分析,应该是Linux内核版本不同的原因!早期的版本,使用的是上面说的两个函数,但是在2.6.29以后(我用的是2.6.32的),使用的函数则变成了
class_create()和device_create(),并且要在声明中加入#include
<linux/device.h>
,因为定义这些函数是在Linux2.6.32/include/linux/device.h里面!
经过这些修改后,驱动编译成功,就能够自动创建设备节点了!
相关文章推荐
- (一)小记——驱动中使用class_device_create()报错的原因、自动创建设备节点
- 驱动中使用class_device_create()报错的原因,自动创建设备节点
- linux-2.6.35内核版本中class_create()和device_create的使用
- class_create(),device_create()使用
- Linux2.6内核中class_create与device_create的使用(转)
- device_create device_destroy 使用==mknod及通过class_create自动创建设备节点
- 使用class_create(),device_create()为设备自动创建文件结点
- RtlInitUnicodeString、IoCreateDevice、IoCreateSymbolicLink、IoDeleteDevice 四个 API 驱动函数的使用
- device_create device_destroy 使用==mknod及通过class_create自动创建设备节点
- device_create device_destroy 使用==mknod及通过class_create自动创建设备节点
- 关于使用 class_create,device_create,class_device_create 创建设备节点
- Linux下使用class_create,device_create自动创建设备文件结点
- 使用JNDI配置数据池问题Cannot create JDBC driver of class 'com.microsoft.sqlserver.jdbc.SQLServerDriver' f解决方法
- class_create(),device_create自动创建设备文件结点
- 关于Linux driver中device_create()使用的注意事项
- implicit declaration of function "class_device_create"
- struct device *device_create(struct class *class, struct device *parent, dev_t devt, void *drvdata,
- Class create, device create, device create file
- class_create(),device_create
- class_create() device_create()