|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
我做了一块9054的卡,是9054+cpld的方式,没有用sram,由于IO不够,用了2块CPLD。用target方式,在CPLD里设置3个32bit的寄存器,只进行单周期的读写32bit的数据。使用IO空间,128字节。由于之前的操作失误,只有一块能用的卡可以使用了。分别在3台工控机下测试:
1.第一台机器的情况:驱动可以安装成功,但是会提示设备无法启用,代码10。这样的话,点开驱动的资源那一栏,识别不到BAR0-BAR3,只有init。这种情况不是每次都出现,重启后就可以正常安装,并且在windriver下读写正常。
2.第二台机器的情况:驱动安装每次都能正常,在windriver下读写BAR2,在写入0x0FFFFFFF的情况下,读数据,最高位的0会变化。不停进行读操作,几十次到上百次就会出现一次错误。有时还会死机,写入全F也偶尔会死机。写入其他数据均没有问题另外点击plxmon的E2PROM那个键也会死机,但如果E2PROM是空白的就不会死机。
3.第三台机器的情况:和第二台情况类似,但是不会死机,写入0x0FFFFFFF的情况下,出错的几率基本上在千分之一。
以上三种情况都是不稳定的现象,求教大神,这种问题该如何排查。另外我发现CPLD中设置的ready#信号作为输出,无论是一直有效(ready#=0)还是按照手册时序图中的方式,在发送或接收数据时才有效,对于读写操作都没什么影响。 |
|