lelee007 发表于 2014-09-23 11:58

请教一下一个linux设备模型的问题

以USB为例,我自己开发的一个字符设备,这个设备本身是USB接口的

所以,这个设备的驱动就涉及到USB的驱动和字符设备驱动的混杂

linux设备模型中讲的是bus_type有mattch函数,在把设备挂到总线上时,会最终调用该总线的mattch函数来
检测是否设备、驱动与总线是否匹配,匹配之后再去回调驱动挂进来的probe函数,这个过程的入口是调用
driver_register,接口原型如下:
int driver_register(struct device_driver *drv)

在这个混杂驱动中,之后USB部分的驱动会调用driver_register将设备挂入USB总线,最终注册到系统中,而
字符设备在注册到系统中时,是不会调用driver_register的,而是调用cdev_add来注册到系统中去。

问题就来了,对于linux设备模型,管理的是总线类(主要是可以热插拔)设备吗?比如USB、PCIE这类以总线
为基础的设备驱动才会使用linux设备模型框架,而普通的字符设备,就是说非总线型的设备,驱动不使用设备
模型框架。

我这样理解不知道正不正确,还希望有设备模型的专家能帮忙确认一下,谢谢!

lelee007 发表于 2014-09-24 00:03

没有专家来帮忙确认一下咩?:em03:

lelee007 发表于 2014-09-25 08:35

anybody who can tell me? tks

arm-linux-gcc 发表于 2014-09-25 13:35

设备模型确实是按照总线来管理的

自定义的普通字符设备也可以写成platform这种总线(在probe中做cdev_add)


lelee007 发表于 2014-09-25 17:50

ok, thank you, got it
页: [1]
查看完整版本: 请教一下一个linux设备模型的问题