免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2273 | 回复: 6
打印 上一主题 下一主题

字符设备驱动的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-03-26 17:03 |只看该作者 |正序浏览
ldd3上讲字符设备注册使用cdev_add(),为什么这个函数没有驱动名字参数?而以前使用的register_chrdev()却有name参数。

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

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

论坛徽章:
0
7 [报告]
发表于 2009-03-26 18:36 |只看该作者
superfight
多谢!晚上回去看看

论坛徽章:
0
6 [报告]
发表于 2009-03-26 18:02 |只看该作者
原帖由 源方 于 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 编辑 ]

论坛徽章:
0
5 [报告]
发表于 2009-03-26 17:51 |只看该作者
原帖由 superfight 于 2009-3-26 17:21 发表
因为打开字符设备的时候不需要名字   他只关心住此设备号~

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

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

...

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

论坛徽章:
0
4 [报告]
发表于 2009-03-26 17:21 |只看该作者
因为打开字符设备的时候不需要名字   他只关心住此设备号~

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

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

详细你可以看看input子系统

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

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

论坛徽章:
0
3 [报告]
发表于 2009-03-26 17:20 |只看该作者
原帖由 garyv 于 2009-3-26 17:12 发表
在内核源码里面看函数定义就明白了。。。

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

论坛徽章:
0
2 [报告]
发表于 2009-03-26 17:12 |只看该作者
在内核源码里面看函数定义就明白了。。。
  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP