前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Component之PCI Show

Component之PCI Show

作者头像
Taishan3721
发布2019-07-10 15:29:42
2.1K0
发布2019-07-10 15:29:42
举报
文章被收录于专栏:这里只有VxWorks这里只有VxWorks

PCI,Peripheral Component Interconnect,在PC中广泛使用,几乎所有的主板产品上都带有这种插槽,主要用于连接显卡、网卡、声卡等外设

PCI总线是一种树型结构,并且独立于CPU总线,可以和CPU总线并行操作。PCI总线上可以挂接PCI设备和PCI桥,PCI总线上只允许有一个PCI主设备,其他的均为PCI从设备,而且读写操作只能在主从设备之间进行,从设备之间的数据交换需要通过主设备中转

VxWorks系统提供了一组命令来查看PCI设备的信息,要想使用这些命令,在传统PCI驱动里提供了一个组件INCLUDE_PCI_CFGSHOW

不过目前VxWorks 6.x里一般都是使用VxBus驱动,跟INCLUDE_PCI_CFGSHOW是不兼容的,而VxBus里也提供了一个组件INCLUDE_PCI_BUS_SHOW,用这个就没问题了

这个组件里主要提供了以下函数

  • pciDeviceShow()用来列举某个PCI总线上的设备
  • pciHeaderShow()用来查看设备的详细信息,例如显卡的显存基址和中断号
  • 如果知道设备的ID,可以使用pciFindDeviceShow()来查找。例如当前Target里有两个AMD(0x1022)的79C97x网卡(0x2000)
  • pciConfigStatusWordShow()用来查看状态寄存器
  • pciConfigCmdWordShow()用来查看命令寄存器
  • 如果只知道设备的Class,可以用pciFindClassShow()来查找

常见的subclass有

因此,刚刚显卡的classCode就是(PCI_CLASS_DISPLAY_CTLR<<16)|(PCI_SUBCLASS_DISPLAY_VGA<<8)=0x030000

两个网卡就是(PCI_CLASS_NETWORK_CTLR<<16)|(PCI_SUBCLASS_NET_ETHERNET<<8)=0x020000

  • pciConfigFuncShow()用来查看Function的详细信息

s

例如刚刚的显卡与网卡

  • 最后,pciConfigTopoShow()可以遍历PCI总线上的所有设备

这正是:

PCI设备好查看,不同版本有组件。

多个命令可调用,硬件信息来呈现。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-06-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 这里只有VxWorks 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档