阅读:1074回复:4
同时插两块PCI9054卡的迷惑?
各位同仁:
我用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] |
|
沙发#
发布于:2003-10-05 11:27
为何无人解答迷津?是不屑一顾,还是没有人这样用过?
|
|
板凳#
发布于:2003-10-06 15:24
plx的驱动的确是无论多少块卡,都只申请一个common buffer,至于数据为何仍然正确,你是否肯定有没有两块卡同时向common buffer写数据的情况?
|
|
|
地板#
发布于:2003-10-12 13:28
版主先生,两块卡确实在同时向Common Buffer写数据,并记盘.
[编辑 - 10/12/03 by Suny1966] |
|
地下室#
发布于:2003-10-18 10:25
plx的驱动的确是无论多少块卡,都只申请一个common buffer,至于数据为何仍然正确,你是否肯定有没有两块卡同时向common buffer写数据的情况? |
|