TI中文支持网
TI专业的中文技术问题搜集分享网站

srio 接收doorbell 64次中断后失败

大家好,

我在用Xilinx V6向C6670发送Doorbell包。

现在出现的问题是:V6向C6670发了64次Doorbell以后,C6670再也无法响应来自V6的Doorbell了,DOORBELL[n]_ICSR也观察不到对应位被set了。

代码就不贴了。

现在我怀疑的一个可能的问题是:V6的程序是没发一次Doorbell,srcID就自动加1,而C6670只能接收64种srcID的doorbell,超过了64,就不再响应了。

希望大家帮我分析一下,是不是这样的问题。V6程序不是我写的,要是确定是这个问题,我再让别人更改。

谢谢!!

Feng Jin:

找到原因了,是V6发出来的Doorbell包的sourceID不是它本身,V6的deviceID为0xAA,但是发送出来的包中的sourceID为0xFF。

导致DSP接收到Doobell包以后对外回复一个DONE包,而DONE包无法到达目的地。

如此累计64次以后,DSP的SRIO不再接收Doorbell包什么的,并且对外发送Doorbell包也卡在LSU completion中断起不来。

然后,改了FPGA程序,让包中的sourceID为其deviceID,0xAA。则一切正常。

但是还是有一点不明白的是,DSP是如何知道自己发送的DONE包没有到达目的地,并且累计64次以后就失败了??

Feng Jin:

回复 Brighton Feng:

明白了!多谢!

赞(0)
未经允许不得转载:TI中文支持网 » srio 接收doorbell 64次中断后失败
分享到: 更多 (0)