ultramanshey 发表于 2012-11-1 18:54:29

有关PCI9054地址空间的设置(为什么会无效呢?)

问题描述:我采用FPGA+9054的设计,9054是J模式,为了节省管脚空间,FPGA上没有足够多的管脚供我使用C模式。上位机使用Vc6.0编写了调试程序,代码如下:
void CP2Dlg::OnButton3()
{
U32 Value;
Value=0x8000000;
PlxBusIopWrite (hDevice,IopSpace0,0x8000000,false,(U32*)&Value,sizeof(Value),BitSize32);
}
代码中我为了方便观察效果所以value和地址使用一样的数据。我的意图是想利用高位的LAD(27)来选择两个不同的存储空间,结果却发现9054并没有正常工作,于是我把代码换成了0x4000000,这时9054工作了,于是我再测试,经过反复测试发现,当LAD作为地址使用时,最高位只能支持到LAD(26)也就是说可用地址的上限是0x7FFFFFF,从0x8000000之后就无效了,但是作为数据BUS时,LAD31~0全部都有效地,这让我很无奈,我的板卡地址需求刚好设计到LAD(27),如果不用的话也许这个也就算了,但是这样一来我无法继续下去了。于是我开始翻找之前看过的资料,寻找LAD31~27这五位在作为地址的时候失效的原因。修改多次之后还是无法解决问题。
还请高手不吝赐教!

philoman 发表于 2012-11-2 09:22:54

注意这几个寄存器, 以及他们是如何完成PCIBus地址与LocalBus地址转换的!PCIBARx, LASxRR, LASxBA, (x为数字0,1,2...)

ultramanshey 发表于 2012-11-6 09:19:38

philoman 发表于 2012-11-2 09:22 static/image/common/back.gif
注意这几个寄存器, 以及他们是如何完成PCIBus地址与LocalBus地址转换的!PCIBARx, LASxRR, LASxBA, (x为数 ...

非常感谢!现在正常了~
页: [1]
查看完整版本: 有关PCI9054地址空间的设置(为什么会无效呢?)