请教,pcie总线接多个设备,驱动程序如何找个需要自己驱动的那个设备?

german010 2018-12-26 12:37:26
pcie总线上接有视频采集卡, 多个网卡,一个视频采集卡的驱动程序如何找到需要自己驱动的视频采集卡 ?
驱动程序 知道了视频采集卡里的功能号 ,然后通过此功能号 来找到 该视频采集卡并去驱动吗?
...全文
1729 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
german010 2019-05-13
  • 打赏
  • 举报
回复
vendor ID 和produce ID是在写在设备中的吧,比如pcie网卡,是固化在pcie网卡里里面的, 而且是只读的
ljymoonlight 2019-05-12
  • 打赏
  • 举报
回复
为什么在window驱动程序中,网络例子和官方例程,没有vendor ID 和produce ID 可以设置
E_CBQ 2019-01-11
  • 打赏
  • 举报
回复
pc硬件知识,驱动机制。。。
_Wayne_ 2019-01-03
  • 打赏
  • 举报
回复
引用 4 楼 _Wayne_ 的回复:
[quote=引用 2 楼 german010 的回复:] 也就是说 设备名 是在做驱动程序和pcie endpoint设备之前 就约定好的一个名字,pcie endpoint设备会将此名字写在配置空间, 双方互相都知道,然后pc一上电,驱动程序就按这个名字去找,如果找到, 就按 驱动流程去操作该pcie endpoint设备 ?
改正一下,3楼是正确的。PCIE扫描到一个设备就会去注册的驱动程序表中找,驱动程序表中有驱动对应的pci_device_id表,表中的id(vendor,product)与扫描到的一致就加载该驱动,扫描的id是从设备的配置空间读取出来的,这个值是固定的,不同的厂家会设置不同的值,PCIE就是通过这个来选择驱动程序驱动设备的。
_Wayne_ 2019-01-03
  • 打赏
  • 举报
回复
引用 2 楼 german010 的回复:
也就是说 设备名 是在做驱动程序和pcie endpoint设备之前 就约定好的一个名字,pcie endpoint设备会将此名字写在配置空间, 双方互相都知道,然后pc一上电,驱动程序就按这个名字去找,如果找到, 就按 驱动流程去操作该pcie endpoint设备 ?
注册是系统(软件)层面的管理操作,并不是写到PCIE配置空间,配置空间里面的verdorid和productid那是给驱动程序加载之后进行设备匹配校验的,并不是楼主说的如何在众多设备上加载对应的驱动程序。设备驱动选择与加载还是通过PCIE地址进行的,不同的总线地址对应不同的设备驱动。
猪头三小队长 2018-12-27
  • 打赏
  • 举报
回复
设备驱动程序会定义pci设备的vendor id和product id,将设备驱动程序注册到总线上之后,总线驱动每探测到一个新的设备,就会调用match来查找最合适的驱动,如果设备驱动中定义的id都没问题,就会进一步调用设备驱动的probe,以完成设备的初始化工作
german010 2018-12-26
  • 打赏
  • 举报
回复
也就是说 设备名 是在做驱动程序和pcie endpoint设备之前 就约定好的一个名字,pcie endpoint设备会将此名字写在配置空间,
双方互相都知道,然后pc一上电,驱动程序就按这个名字去找,如果找到, 就按 驱动流程去操作该pcie endpoint设备 ?
fly 100% 2018-12-26
  • 打赏
  • 举报
回复
会注册成多个设备,还是根据设备名找

1,324

社区成员

发帖
与我相关
我的任务
社区描述
主要是开发驱动技术
社区管理员
  • 驱动程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧