阅读:2804回复:4
PCI基址寄存器的问题
PCI的基址寄存器应该怎样使用呢?
这个问题可能不好回答,再具体一点吧 比如通过读PCI配置空间得到BAR0的值为0xCFF00000,其他BAR为0,那么怎么通过BAR0的值访问板卡上的寄存器呢?什么函数能实现对这个映射空间的读写? |
|
最新喜欢:noregi... |
沙发#
发布于:2010-10-26 16:46
看来问题问的不太好
这样说吧,从基址寄存器得到的基地址应该怎样使用呢?希望大牛给指点一下 |
|
板凳#
发布于:2010-10-27 00:22
2003-03-01_PCI.pdf 书上说基地址寄存器存放的是PCI设备映射的内存地址或IO空间的首地址。按此来说,当想读或者写这片内存中的内容时,就是CPU对此基地址值加上偏移量所对应的地址进行访问。看一下附件中第十页的第三条。不知道说对了没。
|
|
地板#
发布于:2010-10-27 09:58
多谢楼上,我也是这样理解的,但是具体的怎么用还是不知道
应该不能直接赋地址去读吧? |
|
地下室#
发布于:2010-12-03 16:09
pci配置空间是一组寄存器的集合
可以通过bar0扩展出另一组集合 假设这个通过bar0扩展出来的寄存器集合中有10个寄存器 那么可以通过基地址bar0和偏移量offset来定位到每一个寄存器 然后就可以使用类似READ_PORT_UCHAR( bar0+offset, data )来读写扩展出来的寄存器了 |
|