VxWorks操作系统下实现ComPactPCI总线驱动
分,空间头标区的定义如图2所示。
在配置空间中,只读空间有设备标识、供应商代码、修改版本、分类代码以及头标类型。其中供应商代码用来标识设备供应商;设备标识用来标识某一特殊的设备;修改版本标识设备的版本号;分类代码用来标识设备的种类;而头标类型用来标识头类型以及是否为多功能设备。除供应商代码之外,其他字段的值由供应商分配。
PCI设备可以在地址空间中重定位是其重要功能之一,使得系统可合理地分配资源,甚至完全相同的两块PCI卡也能够在同一总线内工作而不会产生地址冲突。基地址寄存器的功能是分配PCI设备的系统地址空间,在基地址寄存器中,位0(最低位)均为只读位并且用来标识是存储器空间还是I/O地址空间。如果该位为0,表示映射到存储器空间。映射到I/O空间的基址寄存器宽度总是32 bit,其中位0值为1 (用硬件实现),位1为保留位并且其读出值必须为0,其余各位用来把设备映射到I/O空间。映射到存储器空间的基址寄存器可以是32 bit宽度,也可以是64 bit宽度。其中位0也要用硬件方式使其恒为0。位2和位1两位用来表示映射类型,其余各位用来将设备映射到存储器空间。
系统配置软件通过向基址寄存器写入全“1”后再读回的方式确定设备要求的地址空间范围,与地址空间无关的位其返回值为0。
在VxWorks操作系统下实现CompactPCI总线设备的驱动过程主要包括下面步骤:
(1)查找CompaetPCI设备在VxWorks操作系统中通过函数peiFindDeviee()来实现,该函数可根据给定的设备标识和供应商代码找到相应的设备。并返回总线号、设备号以及功能号。函数的定义如下:
)
(2)配置CompactPCI设备 通过操作系统提供的API函数访问CompactPCI设备的配置空间,配置CompactPCI设备基址寄存器、中断、ROM基地址寄存器等,可得到 Compact-PCI的仔储器空间和I/O地址空间映射、设备的中断号等。在VxWorks操作系统中访问CompactPCI设备配置空间的函数有 pciConfigInLong()、pciConfigOutLong()等,它们分别完成对CompactPCI设备配置空间的读写操作。这一系列操作也称为PCI设备枚举。然后,根据CompactPCI设备的配置参数,对不同的设备编写初始化程序、中断服务程序以及对PCI设备存储空间的访问程序。
VxWorks ComPactPCI 相关文章:
- 蓝牙无线耳机设计及VxWorks移植方法(07-21)
- 军事指挥系统中VxWorks下汉字显示技术(07-16)
- 基于VxWorks的文件系统的研究与实现(09-18)
- 嵌入式语音通信系统中VxWorks BSP的设计实现(09-18)
- 嵌入式系统的VxWorks安全性问题研究(11-06)
- VxWorks下的多重定时器设计(02-16)