Suny1966
驱动牛犊
驱动牛犊
  • 注册日期2002-12-08
  • 最后登录2011-03-25
  • 粉丝0
  • 关注0
  • 积分80分
  • 威望8点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
阅读:1074回复:4

同时插两块PCI9054卡的迷惑?

楼主#
更多 发布于:2003-09-29 17:32
各位同仁:
    我用9054开发的PCI卡使用了9054的initiator模式的Direct master Memory工作方式,本地智能控制器直接向host内存写数据。
应用软件用PLX SDK 提供的CommonBuffer作为Direct Master Memory的操作目标。用PlxGetCommonBuffer()得到的CommonBuffer的物理地址设置9054的DM memory remap寄存器。
    当两块同样的卡插在PC机中同时运行数据采集时,发现执行结果都正确(两个数据不同) 。
    迷惑的是,打开的两个设备,分别得到CommonBuffer物理地址,它们竟然相同,设置到9054的DM memory remap的地址也相同。这样两块卡岂不同时往主机内存的同一地址空间写数据吗?采集的数据应该是乱的。可是采集的数据竟然都是对的!
    这怎么解释?
    我猜测,PC机住板上的PCI总线桥是否给每一个PCI插槽重新映射了一个独立的物理地址空间? :P

[编辑 -  9/29/03 by  Suny1966]
Suny1966
驱动牛犊
驱动牛犊
  • 注册日期2002-12-08
  • 最后登录2011-03-25
  • 粉丝0
  • 关注0
  • 积分80分
  • 威望8点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-10-05 11:27
为何无人解答迷津?是不屑一顾,还是没有人这样用过?
jst7792
论坛版主
论坛版主
  • 注册日期2001-12-10
  • 最后登录2006-11-16
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-10-06 15:24
plx的驱动的确是无论多少块卡,都只申请一个common buffer,至于数据为何仍然正确,你是否肯定有没有两块卡同时向common buffer写数据的情况?
兄弟们,给点分吧
Suny1966
驱动牛犊
驱动牛犊
  • 注册日期2002-12-08
  • 最后登录2011-03-25
  • 粉丝0
  • 关注0
  • 积分80分
  • 威望8点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-10-12 13:28
版主先生,两块卡确实在同时向Common Buffer写数据,并记盘.

[编辑 -  10/12/03 by  Suny1966]
Suny1966
驱动牛犊
驱动牛犊
  • 注册日期2002-12-08
  • 最后登录2011-03-25
  • 粉丝0
  • 关注0
  • 积分80分
  • 威望8点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-10-18 10:25
plx的驱动的确是无论多少块卡,都只申请一个common buffer,至于数据为何仍然正确,你是否肯定有没有两块卡同时向common buffer写数据的情况?
游客

返回顶部