我用的USB3.0的开发板,32位,固件程序是用官网下的SlaveFifoSync程序,FLAGA,FLAGB是写线程0的满和部分满标志,水印值5,缓冲区1024*2,FLAGC和FLAGD 是读线程3的空和部分空标志。
我在用测试数据发送时(每字加1),通讯一切正常。当换成实际的数据时,会正常一会儿后中止,时间不定。上位机会收不到任何数据,FinishDataXfer()调用显示长度为0。
检测标志位发现,FLAGA为低,就是FIFO是满的,但是 FLAGB却为高。
这我就不能理解了,FLAGB不是会先FLAGA为低吗?什么情况会出现这种状态指示?
我抓波形发现,通讯中会出现FLAGB为高,FLAGA为低的时候,但是过会FLAGA又会变为高。经常出现,直到FLAGA不再为高,FPGA就不会再发送数据了。
|