This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

C6678 跑算法时,初始化好的pcie连接会断开,SRIO也会断开,不跑算法只传数据的话就没问题。



我在调试的过程中发现这个奇怪的现象。

我的程序初始化SRIO和PCIE接口都可以成功,并且在接口初始化成功后,可以通过FPGA用SWRITE模式通过SRIO直接向6678的MSM里写数据,同时也可以用EDMA把DDR3的数据搬移到 PCIe_data(地址是0x60000000),从而将数据通过PCIE接口发给计算机,这时计算机也可以收到正确的数据。

现在我加上算法,用core0响应doorbell中断,在终端中配置EDMA0把之前通过SRIO写进来的数据搬到DDR3,当累积够一定量的数据后进行算法,与此同时SRIO也在向MSM里继续传输数据并通过doorbell通知core0。同时,当结果出来时,我向主机发送一个中断,然后主机会启动我配置好的EDMA2来把存储在DDR3的结果搬移到0x60000000来发送给主机,EDMA结束时 core2进入中断,在中断程序中发送给主机一个pcie 中断来通知主机本次EDMA传输结束。主机就会再启动下一次EDMA操作。

可是为什么这样PCIE连接就会断开呢,主机这边就找不到C6678了,这个时候我查看6678的DEBUG0寄存器(地址0x21801728),发现LTSSM_STAT不再是0x11,而是0x00.

这是为何,如果我不跑算法,仅仅初始化PCIe和SRIO接口,然后SRIO不断收数据,PCIE也按照上面的方法发数据给主机,就一切正常。只要加上算法,PCIe和SRIO连接就会断开。

急!求工程师们帮忙解答。