免费注册 查看新帖 |

Chinaunix

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

求助:初学者关于设备驱动的分类疑惑 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-07-14 15:27 |只看该作者 |倒序浏览
大家好,我是个新手,恰好最近有个Android的项目,正在负责I2C总线设备的这一块。有些疑惑希望有朋友能解惑下,非常感谢!

出于我自己对于I2C总线驱动的理解,只需将该驱动归于某类(比如 Input 输入类,或者Misc 混杂类),然后使用类注册函数进行设备注册(比如 misc_register),再使用i2c_add_driver函数进行总线设备驱动注册,最后,开发出驱动函数接口就可以了。

现在我负责重力加速度传感器,这个东西本身不难,但是对于如何归类有点想不通:示例代码中将其归为了 Misc Device ,由于重力传感器需要向上层应用报告事件发生(比如坠落事件发生、晃动事件发生等),需要一个事件驱动机制,这时示例代码将一个input_dev 结构定义在了Device_data结构内,然后调用input_register将其定义为了一个InputDevice。

但是一个设备可以定义在两个子系统内吗?一个重力传感器可以是Misc设备的同时也是Input设备?是不是这个示例代码有问题呀?

论坛徽章:
0
2 [报告]
发表于 2010-07-14 20:06 |只看该作者
一个设备是可以定义在2个子系统的

论坛徽章:
0
3 [报告]
发表于 2010-07-16 00:56 |只看该作者
不但“可以”基于两个子系统,而且多数情况下“必須”是两个(或以上)子系统,即:上层的设备功能子系统+底层的总线子系统。
随便举几个例子:
USB Camera Driver = V4L2子系统 + USB子系统
X3000 Framebuffer Driver = Framebuffer子系统 + PCI子系统
AT91 EMAC Driver = Ethernet子系统 + Platform子系统

论坛徽章:
0
4 [报告]
发表于 2010-07-17 10:51 |只看该作者
一个设备只要你驱动给的接口不一样,两个子系统都能用的
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP