求高手提点基于vxworks下PCI驱动开发的建议,新手上路,不知从哪下手,不胜感激
现在准备编写一个基于vxworks下的PCI板卡的驱动程序,看了一些资料,但感觉写的都很一般,高手们能不能提点建议,对PCI驱动编写的入门方面的?
[解决办法]
个人建议:
1. 先熟悉PCI总线协议;
2. 查找vxworks针对pci操作的一系列函数的帮助文档;例如pciDeviceShow , pciHeaderShow等;
3. 和PCI驱动有联系的系统函数有限,根据设备号查找功能号等,根据功能号查找bar空间,查找中断号,
分辨bar空间是IO操作还是内存操作,其余的就是使用sysIn16/sysIn32/sysOut16/sysOut32等操作寄存器了。。
简单介绍一下,参考。。。
[解决办法]
你是用这个板卡,还是自己做这个PCI板卡?
如果只是用的话比较容易,像研华、凌华这样的大厂都提高IO地址的,怎么写也比较清楚。
[解决办法]
这儿有资料,你可以下载学习以下:
http://bbs.2beanet.com/pci-pci-express-f19/
[解决办法]
推荐你一本书,《PCI Express体系导读》,王齐 编写。
[解决办法]
其实pci的驱动如果是桥的话,就简单多了,
基本是默认的autoConfig就能实现
如果要通过桥访问其中的一个设备,就是先找到这个设备,最好先用命令pciDeviceShow * (*是指pcibus)
如果有这个设备,就可以用pciHeaderShow命令,去看设备的配置bar
之后根据bar的定义对bar这个首地址加便宜,操作了