免费注册 查看新帖 |

Chinaunix

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

关于驱动中device结构体的疑问 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-03-28 11:20 |只看该作者 |倒序浏览
最近看到终端设备驱动,有这样几个疑问:

1.终端设备也属于字符设备,字符设备驱动中好像没有关于device结构体的注册,那为何终端设备驱动在注册的时候会需要有一个device结构体的注册呢?

2.既然字符设备驱动没有关于device结构体的注册,那么字符设备驱动就是简单的靠设备文件与设备关联的么?

3.如果第2点的假设成立,那么为何复杂设备驱动,比如PCI设备驱动需要维护一个device结构体的链表呢,为何不在加载了模块以后,也像字符设备一样通过设备文件来关联设备呢?
   仅仅是为了支持热插拔么?


不知道表述清楚没,还望各位大大不吝赐教~~~

论坛徽章:
0
2 [报告]
发表于 2011-03-28 19:13 |只看该作者
坐等大神解答~~

论坛徽章:
0
3 [报告]
发表于 2011-03-28 21:30 |只看该作者
结构cdev不是吗?

论坛徽章:
0
4 [报告]
发表于 2011-03-29 09:30 |只看该作者
结构cdev不是吗?
Fine_oday 发表于 2011-03-28 21:30



cdev结构了里并没有封装device结构~~说到cdev结构,我又有个问题,cdev结构里 虽然有kobject结构,但追踪字符设备的注册程序cdev_add,

发现根本没有涉及到设备模型的操作,即是说在sysfs文件系统中不存在字符设备的管理么?那cdev结构中的kobject结构,纯粹是为了计数?

论坛徽章:
0
5 [报告]
发表于 2011-03-29 12:52 |只看该作者
device应该是至少有两种: 总线类型device (如PCI, UB,PLATFOM等等)以及
                          设备类型的device(net_device,cdev,等)

论坛徽章:
0
6 [报告]
发表于 2011-03-29 14:38 |只看该作者
本帖最后由 wgs13579 于 2011-03-29 14:40 编辑
device应该是至少有两种: 总线类型device (如PCI, UB,PLATFOM等等)以及
                          设 ...
Trigger_Huang 发表于 2011-03-29 12:52



按照我个人的理解 我觉得你的说法也不正确,我觉得只要使用到device结构的设备,比如PCI,BLOCK等,它们都是将device结构进行了封装。

比如你说的第一类的总线pci_dev结构中包含了device结构,你说的第二类中的net_device结构中也包含了device结构,

惟独cdev结构没有~~~

论坛徽章:
0
7 [报告]
发表于 2011-03-30 08:04 |只看该作者
回复 1# wgs13579


1. '字符设备',‘块设备’和‘PCI 设备’是正交关系,并非互斥
2. 对于那些只需要‘设备文件’和‘设备’相关联的‘某些’‘字符设备’,因为足够满足需求了。
3. 确实是为了能更好的抽象现代总线的feature,不过不是‘热插拔(hot plug)’,表达为‘即插即用’(plug and play)更准确一些。

论坛徽章:
3
卯兔
日期:2013-08-26 22:14:57未羊
日期:2013-09-08 19:16:05未羊
日期:2014-10-23 10:34:12
8 [报告]
发表于 2011-03-30 13:56 |只看该作者
5L正解,LZ没有理解设备和总线到区别

建议研究一下linux设备模型

linux那些事儿之我是USB里边关于设备模型有详细讲述,个人认为比LDD3里边关于设备模型的讲解更为通俗易懂

真可以说是朗朗上口,声声入耳

论坛徽章:
0
9 [报告]
发表于 2011-03-31 09:35 |只看该作者
5L正解,LZ没有理解设备和总线到区别

建议研究一下linux设备模型

linux那些事儿之我是USB里边关于设备 ...
lelee007 发表于 2011-03-30 13:56


非常感谢你的推荐,我仔细阅读了一下,确实很幽默诙谐,但内容上还是讲述的总线,设备,驱动之间的关系。。。


因为我个人比较执着,必须要建立一个宏观的概念,才愿意更深入的探究。

其实我的问题在于,device结构的作用。为什么driver结构一定要和device结构建立一个关系呢?

根据字符设备驱动的表现,仅仅只需要driver结构就行了,而不需要device结构,即是说,只需要通过设备文件就可以访问驱动了。那么其他复杂设备为什么不这样呢?

从上一位的回答中,我觉得应该这样理解,建立这样的关系,仅仅是为了更好的管理设备和驱动,实际表现上来说,仍然是设备文件与驱动的关系。

论坛徽章:
3
卯兔
日期:2013-08-26 22:14:57未羊
日期:2013-09-08 19:16:05未羊
日期:2014-10-23 10:34:12
10 [报告]
发表于 2011-04-02 14:27 |只看该作者
哈哈,感觉你的思想就像是裸奔的思维,有了device,可以让driver更容易实现更完善的功能 ,而且更成为一个体系

如果没有device,那整个驱动系统就会很混乱,内核就不好维护了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP