字符设备驱动的问题

发布于 2022-09-18 18:37:42 字数 241 浏览 19 评论 0

ldd3上讲字符设备注册使用cdev_add(),为什么这个函数没有驱动名字参数?而以前使用的register_chrdev()却有name参数。

另问,platform 设备注册和驱动的注册不太明白,platform设备是指什么设备,是i2c,bus之类的东西吗?和常见的字符设备驱动框架不太一样

[ 本帖最后由 源方 于 2009-3-26 17:20 编辑 ]

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

陌路黄昏 2022-09-25 18:37:42

在内核源码里面看函数定义就明白了。。。

你如我软肋 2022-09-25 18:37:42

原帖由 garyv 于 2009-3-26 17:12 发表
在内核源码里面看函数定义就明白了。。。

就是看函数定义里没有,所以才问的

别再吹冷风 2022-09-25 18:37:42

因为打开字符设备的时候不需要名字   他只关心住此设备号~

cdev_add是往数组里面添加一个位置~   针对一个设备

而register_chrdev是往数组里面添加N个位置, 针对的是一个类型的设备~  起一个占位作用~

详细你可以看看input子系统

他就是使用register_chrdev占用了一个主设备号的所有次设备号~

然后open之后input子系统会根据你提供的次设备号为你准备不同的设备操作集 = =

南城旧梦 2022-09-25 18:37:42

原帖由 superfight 于 2009-3-26 17:21 发表
因为打开字符设备的时候不需要名字   他只关心住此设备号~

cdev_add是往数组里面添加一个位置~   针对一个设备

而register_chrdev是往数组里面添加N个位置, 针对的是一个类型的设备~  起一个占位作用~

...

说的有点抽象,cdev_add中就一个kobj_map函数,没看到你说的数组。
如果不需要名字再/proc/devices下如何显示?只有设备号,没名字?在/sys下也应该有个对应的目录吧(也需要名字啊)?显示设备信息
看的太晕了

巴黎夜雨 2022-09-25 18:37:42

原帖由 源方 于 2009-3-26 17:51 发表

说的有点抽象,cdev_add中就一个kobj_map函数,没看到你说的数组。
如果不需要名字再/proc/devices下如何显示?只有设备号,没名字?在/sys下也应该有个对应的目录吧(也需要名字啊)?显示设备信息
看的太晕了

http://blog.chinaunix.net/u1/57901/showart.php?id=1798359

你可以参考我写的这个

= = kobj_map的任务就是往数组里面加probe数组元素~

/proc我还没看~ 不过/sys下显示的是kobject的注册内容 和字符设备没啥关系~

你写一个字符设备,不在sys下注册kobject的话,sys也不会显示你这个字符驱动的目录结构~

想了解kobject的话

可以参考这个  , 正好也是说platform的

http://blog.chinaunix.net/u1/57901/showart.php?id=1803248

抽象的来说platform是名字一样就加载对应驱动的总线结构 = = 也就是说platform总线的匹配规则为名字

[ 本帖最后由 superfight 于 2009-3-26 18:03 编辑 ]

没有你我更好 2022-09-25 18:37:42

superfight
多谢!晚上回去看看

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文