是不是所以的驱动里面都要定义一个file_operations结构?
恩~
用于操作字符设备~
兄弟要搞明白驱动的概念,驱动和模块编程不是一回事,呵呵
不需要的,如果你想在应用层以文件方式操作驱动的时候才需要。
原帖由 dreamice 于 2009-4-28 21:46 发表 兄弟要搞明白驱动的概念,驱动和模块编程不是一回事,呵呵
请版主科普一下吧
原帖由 zhongfrank 于 2009-4-29 14:29 发表 请版主科普一下吧
原帖由 zhongfrank 于 2009-4-29 14:29 发表
这个工作应该自己做哦:wink:
很想听听高手的指点,本人做驱动不久。。。
原帖由 garyv 于 2009-4-29 19:41 发表 很想听听高手的指点,本人做驱动不久。。。
原帖由 garyv 于 2009-4-29 19:41 发表
如果LZ在做Linux下的驱动开发,应该知道LDD3这本书吧。
在字符设备的打开当中
在最后的操作集赋值中
也就是chrdev_open中
filp->f_op = fops_get(p->ops);if (!filp->f_op) { cdev_put(p); return -ENXIO;}
如果没有字符设备操作集是返回错误的~
大概看了一下注册字符设备~ 没有对操作集是否为空进行检测~
这样的话注册字符设备是不需要操作集的~ 但是打开字符设备的话就一定要有操作集
原帖由 Godbach 于 2009-4-29 19:52 发表 如果LZ在做Linux下的驱动开发,应该知道LDD3这本书吧。
原帖由 Godbach 于 2009-4-29 19:52 发表
我确实有LDD3的chm文档,共18章,看过,问题是里面好像没有针对性的讲这个问题啊
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
暂无简介
文章 0 评论 0
接受
发布评论
评论(9)
恩~
用于操作字符设备~
兄弟要搞明白驱动的概念,驱动和模块编程不是一回事,呵呵
不需要的,如果你想在应用层以文件方式操作驱动的时候才需要。
请版主科普一下吧
这个工作应该自己做哦:wink:
很想听听高手的指点,本人做驱动不久。。。
如果LZ在做Linux下的驱动开发,应该知道LDD3这本书吧。
在字符设备的打开当中
在最后的操作集赋值中
也就是chrdev_open中
filp->f_op = fops_get(p->ops);
if (!filp->f_op) {
cdev_put(p);
return -ENXIO;
}
如果没有字符设备操作集是返回错误的~
大概看了一下注册字符设备~ 没有对操作集是否为空进行检测~
这样的话注册字符设备是不需要操作集的~ 但是打开字符设备的话就一定要有操作集
我确实有LDD3的chm文档,共18章,看过,问题是里面好像没有针对性的讲这个问题啊