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

6678 SRIO重新load程序之后和交换芯片端口总有一端出错

平台为6678通过交换芯片CPS1848和FPGA相连。

在调试中,第一次上电我们按照交换芯片,FPGA,DSP这样的顺序来load程序,结果可以正常的收发,两端的端口也都是OK的。

之后重新load了交换芯片和FPGA的程序,没有load DSP的程序,DSP端就只能够接收FPGA的数据而不能发送出去,此时端口状态寄存器err_stat显示端口错误,读出来的值为0x01130306.

然后load了DSP的程序并对DSP进行重新初始化,跑完SRIO的初始化程序KeyStone_SRIO_Init();之后,端口状态OK,即err_stat寄存器最低字节为2.但此时DSP不能接收数据只能发送数据,这个时候观测交换芯片对应的端口的寄存器,发现端口状态出错,其值为0x84120306。

请问

1.是否可以这么理解,交换芯片和FPGA重新load程序之后,DSP的SRIO仍然处于已初始化的状态,所以可以直接和交换芯片连接上接收数据,但是为何端口状态会是错误,从而无法发送数据?而且端口状态错误之后,为什么还是能够接受数据,而不能够发送数据?

2.为何DSP重新进行一次初始化之后,交换芯片那一端的端口状态就变为了错误,导致这个时候DSP只能发送不能接收?

3.出现这些错误的原因是没有进行维护吗?

4.一边端口出错的情况下,应该使用maintenance函数进行维护吗?还是端口出错maintenance函数在这种情况下就没有作用了?

5.如果不是使用maintenance函数,那么这个错误原因是什么,是因为初始化的原因吗?应该怎么解决啊?

谢谢

shuang li1:

看了一些帖子说是因为DSP和交换芯片需要进行重新同步的操作。

是否是DSP和交换芯片需要重新进行握手?还是使用其他方法重新同步呢?

如果需要重新握手或重同步,需要进行哪些操作呢?

Ryan Ryan:

回复 Thomas Yang1:

您好!

        我也遇到了同样的问题,这里也请教你两个问题:1.6678似乎没有像1848交换芯片那样的端口reset,是不是只有整个srio模块的reset。2.两端重新link up,怎么判断link up成功了?如果没有link up成功的情况下,有数据发送,是不是会使端口出错,导致不能继续收发数据。

赞(0)
未经允许不得转载:TI中文支持网 » 6678 SRIO重新load程序之后和交换芯片端口总有一端出错
分享到: 更多 (0)