当前位置: 技术问答>linux和unix
关于字符驱动struct cdev的问题
来源: 互联网 发布时间:2017-01-10
本文导语: 在看ldd3的时候里面讲内核用struct cdev结构来表示字符设备 在使用中碰到点疑惑 我这有2个驱动的例子 第一个 键盘驱动 result = register_chrdev(KEYBOARD_MAJOR, "Key7279", &Key7279_fops); 这个里面就是这么注册的,没有用...
在看ldd3的时候里面讲内核用struct cdev结构来表示字符设备
在使用中碰到点疑惑
我这有2个驱动的例子
第一个 键盘驱动
result = register_chrdev(KEYBOARD_MAJOR, "Key7279", &Key7279_fops);
这个里面就是这么注册的,没有用到struct cdev 这个结构体
第二个 IO驱动
cdev_init(&myled_dev.cdev, &myled_fops);
myled_dev.cdev.owner = THIS_MODULE;
ret=alloc_chrdev_region(&led_dev,0,1,"myled");
这个里面就用到了struct cdev 这个结构体
我的问题是键盘是属于块设备吗?
还是用register_chrdev 这个注册时不需要用struct cdev 这个结构体
而用alloc_chrdev_region 这个注册就要用到struct cdev 这个结构体
或者是其它的什么原因 敬请高人解答
在使用中碰到点疑惑
我这有2个驱动的例子
第一个 键盘驱动
result = register_chrdev(KEYBOARD_MAJOR, "Key7279", &Key7279_fops);
这个里面就是这么注册的,没有用到struct cdev 这个结构体
第二个 IO驱动
cdev_init(&myled_dev.cdev, &myled_fops);
myled_dev.cdev.owner = THIS_MODULE;
ret=alloc_chrdev_region(&led_dev,0,1,"myled");
这个里面就用到了struct cdev 这个结构体
我的问题是键盘是属于块设备吗?
还是用register_chrdev 这个注册时不需要用struct cdev 这个结构体
而用alloc_chrdev_region 这个注册就要用到struct cdev 这个结构体
或者是其它的什么原因 敬请高人解答
|
register_chrdev 是 2.4的老板本
cdev_add 是2.6的推荐写法
现在仍然是两种写法并存的时代,lz新学就应该学cdev注册了
cdev_add 是2.6的推荐写法
现在仍然是两种写法并存的时代,lz新学就应该学cdev注册了