|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
本帖最后由 61408520 于 2013-8-28 00:02 编辑
问题如题我设计的PCI数据通路是采用9054+双口RAM+FPGA.
调试用的软件是windriver 10.0
目前计算机识别卡,EEPROM的值能加载进去。
目前调试时,我使用的是官网下载的.eep文件。(PCI9054RDK-LITE.eep)
读写bar0一切正常
但是当发现bar2里面的值直接就是PCI 本地寄存器(configuration space)里面的值。
比如,我读BAR2,偏移地址设置成0,那么读出来的是9054(eeprom设置的就是9054),偏移地址设置成2,那么读出来的就是10B5,然后接着往下读,读出来的都是EEPROM加载到PCI本地寄存器里之后,本地寄存器的值。
我在网上看,有朋友分析bar2和本地存储空间的关系是这样说的:
PCI PCIBAR2~PCIBAR2+0x0000ffff <=> Local 0x00000000~0x0000ffff 64KBytes
--LAS0RR=0xffff0000
--LAS0BA=0x00000001
但是我现在读出来的bar2,直接就是不断地重复循环PCI configuration space 里面的值。很奇怪。
我本地存储空间是直接将PCI的低16位地址线和双口RAM一侧的16位地址线相连。高16位地址线接入FPGA,设置成输入。
整个32位地址线均用上拉电阻拉高。
另外,读写BAR2+偏移地址时,(比如bar2+0),ads、blast、lhold、lholda、这些信号都有。但是读出来的就是规律重复的PCI本地寄存器值
希望版内的大神能够帮忙提供一点意见和经验
我见很多网友都是用PLXSDK进行调试,但是我装的PLXMON是demo版,根本读不出EEPROM的值。是不是因为我没有按照它给的user 手册进行加载驱动之类的原因?
另外,说一个小小的奇怪状况。
插上PCI卡,每次启动后,要先用windriver将bar0里面地址6CH中的最高位数据由1改成3,作用是reload EEPROM的值,这样,pci9054才能真的收到eeprom的值。
|
|