nfrdrive
驱动牛犊
驱动牛犊
  • 注册日期2010-10-12
  • 最后登录2013-12-17
  • 粉丝0
  • 关注0
  • 积分37分
  • 威望301点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2685回复:4

PCI基址寄存器的问题

楼主#
更多 发布于:2010-10-25 13:29
PCI的基址寄存器应该怎样使用呢?
这个问题可能不好回答,再具体一点吧
比如通过读PCI配置空间得到BAR0的值为0xCFF00000,其他BAR为0,那么怎么通过BAR0的值访问板卡上的寄存器呢?什么函数能实现对这个映射空间的读写?

最新喜欢:

noregisternoregi...
nfrdrive
驱动牛犊
驱动牛犊
  • 注册日期2010-10-12
  • 最后登录2013-12-17
  • 粉丝0
  • 关注0
  • 积分37分
  • 威望301点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2010-10-26 16:46
看来问题问的不太好
这样说吧,从基址寄存器得到的基地址应该怎样使用呢?希望大牛给指点一下
yizi0000
驱动牛犊
驱动牛犊
  • 注册日期2010-10-07
  • 最后登录2011-06-25
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望61点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2010-10-27 00:22
 2003-03-01_PCI.pdf 书上说基地址寄存器存放的是PCI设备映射的内存地址或IO空间的首地址。按此来说,当想读或者写这片内存中的内容时,就是CPU对此基地址值加上偏移量所对应的地址进行访问。看一下附件中第十页的第三条。不知道说对了没。
nfrdrive
驱动牛犊
驱动牛犊
  • 注册日期2010-10-12
  • 最后登录2013-12-17
  • 粉丝0
  • 关注0
  • 积分37分
  • 威望301点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2010-10-27 09:58
多谢楼上,我也是这样理解的,但是具体的怎么用还是不知道
应该不能直接赋地址去读吧?
abc3240660
驱动牛犊
驱动牛犊
  • 注册日期2010-03-01
  • 最后登录2011-03-12
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望101点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2010-12-03 16:09
pci配置空间是一组寄存器的集合
可以通过bar0扩展出另一组集合
假设这个通过bar0扩展出来的寄存器集合中有10个寄存器
那么可以通过基地址bar0和偏移量offset来定位到每一个寄存器
然后就可以使用类似READ_PORT_UCHAR( bar0+offset, data )来读写扩展出来的寄存器了
游客

返回顶部