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

C6678中SGMII 数据传输问题

你好!

    本人现在自己的板子上调试SGMII通信,板子上是两片DSP间通过Port 0直接相连,程序是在TI自带的emacExample的基础上改的。目前遇到的问题有三个:

1、当DSP1(跑发数程序)发往DSP2(跑收数程序),发现DSP2是能响应中断,且中断服务函数Cpsw_RxISR()中能收到数据包,但只有包头是完整的,后面的数据却丢失了,不知道是什么原因?。如下图所示,图1是DSP1产生的UDP数据包,图2s是DSP2收到后的UDP数据包

图1

图2

2、还是在中断服务函数Cpsw_RxISR()中,尽管DSP2能收到数据包,但是想将其通过DMA方式搬移到DDR3发现,行不通。但是将地址改为MSMC的地址,却可以实现搬移,具体代码如下:

DMA_Init(0);

DMA_transportAB(0,(UInt32 *)Convert_CoreLocal2GlobalAddr((UInt32)pHostDesc->buffPtr+0x2c), pkt_size , pkt_size , (UInt32 *) (0xa0000000+pkt_size*gRxCounter*4),pkt_size, 4);

waitDMAover(0);

3、如果DSP1跑收数程序,而DSP2跑发数程序,这时DSP1中断不能响应,DSP2数据不能正确赋值,请问这是什么情况?

急,望解答!!!

谢谢!

Andy Yin1:

1 看接收包头后面的数据还挺有规律的,貌似是哪个地方发过来的数据,把接收包头后面的数据清零,然后再测试看看有没有变化确认是否受到以太网收发数据的影响;

2 你的DDR有初始化么?

3 DSP2不能正确赋值是啥意思,是生成以太网包的时候不能正确赋值么,你的数据地址在哪里?

赞(0)
未经允许不得转载:TI中文支持网 » C6678中SGMII 数据传输问题
分享到: 更多 (0)