您好,
自制板上的DSP和FPGA通过SRIO进行通讯,配置为2x,DSP收,FPGA发。有时候上电能够正常通讯,但偶尔一上电就收不到FPGA发过来的数。
此时FPGA显示trdy信号一直拉低,tvalid信号一直拉高,没有tlast信号,好像是FPGA一直在发,停不下来,同时也收不到DSP的回应?(这个不太理解)
DSP这边我查看了SPn_ERR_STAT寄存器,bit8一直置1和清零,bit9则置1,显示有传输错误,然后又看了ERR_DET寄存器,bit17置1,显示收到了超过276bytes的数据。
碰到这种传输错误,DSP要怎么处理?复位能够解决这个问题吗?
我尝试:判断SPn_ERR_STAT寄存器,出现错误就调用KeyStone_SRIO_soft_reset()函数去复位,可是也没啥用,如果复位完再对SRIO重新初始化,DSP直接跑飞。
可以通过什么办法解决传输错误呢?如果复位可以解决,又要怎么复位呢?为什么KeyStone_SRIO_soft_reset()不行,重新初始化还跑飞呢?
谢谢各位大神帮忙!