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.
TI专家你好,在使用6678与FPGA之间SRIO通信时测试环境如下,遇到了SWRITE发送卡死的情况,请专家指导下该如何排查,具体应从查哪些寄存器状态
测试环境:
6678与FPGA之间SRIO 使用1x 3.125Gbps 6678自环已通过,fpga配置完成后,双方的链路建立成功 ,6678的pork起来了,port okbit置位了,FPGA端的port 和link也都建立成功。
FPGA通过SWRITE方式往6678写数据成功,6678的DDR3内可看到发过来的数据、无误。6678使用的keystone 开发包里的教程改写的 SRIO_2DSP_TEST();
6678往FPGA端SWRITE方式发送数据,存在问题:
单次LSU传输时配置参数如下:
类型 源地址 目的地址 数据长度(字节)
SRIO_PKT_TYPE_SWRITE, 0x80000000 , 0x00000000 , 256
有以下现象,
1:6678发包时会固定卡死,调用KeyStone_SRIO_LSU_transfer 发送两次后程序会一直卡死在KeyStone_SRIO_wait_LSU_completion函数里。
2:发送成功的两次,FPGA端可以抓到线路上的数据确认是DSP发出的数据,6678可看到调试打印出来的信息里,complete code=1,6678自环时该完成码是0。
此外,KeyStone_SRIO_match_ACK_ID(0, DSP1_SRIO_BASE_ID, 0)作用是什么,是必须的么,我测试过如果在初始化SRIO时使用该函数,在port up后,还没有进行LSU传输时,有一定的概率程序一直卡死在KeyStone_SRIO_wait_LSU_completion函数里出不来,我就把该函数屏蔽了,并不影响FPGA往DSP swrite方式写入数据。