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.

TMS320C6678 KeyStone 例程 ACK ID 问题

Other Parts Discussed in Thread: TMS320C6678

您好,我现在想通过SRIO实现TMS320C6678与Xilinx-v5之间的数据通信,用到的是Keystone例程。在调试过程中遇到一些问题,请您帮忙解答。

Keystone_SRIO_match_ACK_ID(2,DSP1_SRIO_BASE_ID, 2);这个函数体里面的uiResult= Keystone_SRIO_Maintenance(uiLocalPort, uiLocalPort,

uiDestID, 0x148+(0x20*uiRemotePort), GLOBAL_ADDR(&uiMaintenanceValue),

SRIO_PKT_TYPE_MTN_READ);

这个函数的参数 0x148+(0x20*uiRemotePort)这个参数应该是发送的destid,但是它是怎么计算得到的呢?是对应寄存器的地址吗?

  • 这个地址是协议规定的CSR和CAR寄存器地址,你可以在user guide中得到,此处的地址需要用寄存器的offset,user guide中的0xB148是DSP自己访问该寄存器的地址,而通过外部的srio访问时,只需要提供offset即可。

  • 您好,谢谢您的解答。我现在实现了DSP对FPGA 的写的功能,而NREAD出现问题,接收不到,请问怎么确定DSP接收到对方数据呢?有标志吗?

  • 你好,我也在用c6678与v5测试srio的通信,同样卡在Keystone_SRIO_Maintenance这里。DSP作为主动方调用keystone_srio_match_ack_id函数,结果卡在Keystone_SRIO_Maintenance无法向下执行。Keystone_SRIO_Maintenance函数中调用的LSU_completion无法返回正确的completionCode,返回值是7而不是0。

    我想请问一下,Keystone_SRIO_Maintenance是发起对对面寄存器的读写Maintenance操作,如果对面是FPGA,这个函数还能用吗??另外,ACKID是不是在初始化的时候设置一遍就可以了,还是它每次发送包的时候都会自己累加??

  • 您好!

    已调试完成DSP之间的SRIO。

    我在调试DSP给FPGA发数据,函数中OFFSET应该如何设置?

     

     

  • 你好,请问你的这个问题解决了吗,我现在也卡在这个地方了。程序一直跳不成keystone_srio_match_ack_id函数。我是用6678和v5的fpga通信,不知道直接用论坛提供的DSP到DSP直接的程序行不行,DSP做主设备。如果你现在调通了,能告诉我一下怎么修改程序吗,非常感谢!

  • 你好,请问你的DSP通过SRIO对FPGA的写是怎么实现的,是不是用的论坛上的DSP与DSP直接通信的程序,怎么修改的啊,除了修改device id和port,还需要修改什么啊。我现在一直卡在ack id match的地方,不知道怎么修,谢谢