当前位置: 技术问答>linux和unix
怎么才能把LInux驱动做成通用的(与厂商号和产品号无关)
来源: 互联网 发布时间:2016-04-24
本文导语: 最近在Linux下仿照usb-skeleton.c开发了自己的驱动程序, 设备工作正常 但前提是厂商号和产品号都是定义好的,如VendorID = 0x1c44 ProductID = 0x0004 而我们产品中用户是可以自定义这两个号码,如何做成通用的驱动程序?(与...
最近在Linux下仿照usb-skeleton.c开发了自己的驱动程序, 设备工作正常
但前提是厂商号和产品号都是定义好的,如VendorID = 0x1c44 ProductID = 0x0004
而我们产品中用户是可以自定义这两个号码,如何做成通用的驱动程序?(与厂商号和产品号无关?)
怎么做成通用的,如果是通用的,又怎么区分我们的设备(bulk模式)和普通插入的u盘
但前提是厂商号和产品号都是定义好的,如VendorID = 0x1c44 ProductID = 0x0004
而我们产品中用户是可以自定义这两个号码,如何做成通用的驱动程序?(与厂商号和产品号无关?)
怎么做成通用的,如果是通用的,又怎么区分我们的设备(bulk模式)和普通插入的u盘
|
定义芯片的class,代替定义芯片的厂商号及产品号。
具体怎么区分,如果大家都是用同一个通用的驱动,那就没有必要区分了。
如果用不同的驱动,那么系统两个驱动的probe函数,当他找到任意一个probe成功返回,系统就用那个驱动。这个跟顺序有关,如果两个驱动都能控制那个设备,那么就先probe先得。。
具体怎么区分,如果大家都是用同一个通用的驱动,那就没有必要区分了。
如果用不同的驱动,那么系统两个驱动的probe函数,当他找到任意一个probe成功返回,系统就用那个驱动。这个跟顺序有关,如果两个驱动都能控制那个设备,那么就先probe先得。。
|
如果没有相关通信标准,想做到通用很难。如果所使用的就那么几种芯片,则可以每种芯片单独进行封装。
|
确实,想把驱动做成完全通用的,很难,除非有标准
我做视频这块,现在欧洲出了个标准,问题就好多了,可是这样也就带来了一个问题啊,产品可以互相替代,这在中国,至少是目前,对于集成商有影响啊
不过作为开发者来说,还是可以通过抽象,封装等方式实现代码公用的啊
我做视频这块,现在欧洲出了个标准,问题就好多了,可是这样也就带来了一个问题啊,产品可以互相替代,这在中国,至少是目前,对于集成商有影响啊
不过作为开发者来说,还是可以通过抽象,封装等方式实现代码公用的啊