您好,
我们的硬件平台是自制的,以太网部分基本与开发板相同,但是不是千兆网口,是百兆,已经在板子上调通了K1_STK_v1.1中的GE的程序。
但是由于实际的需求,现在想利用以太网口传巨型帧。原来传小于1536bytes一包数据是没问题的,现在想一包传8192bytes。
GE例程里关于一包数据的大小是规定在46~9216bytes之间的,如果是小于1536bytes的话就是放在DDR_HOST_SIZE0_FDQ里,如果是超出1536bytes的话就是放在DDR_HOST_SIZE1_FDQ里。我理解的话,就是这个例程是支持发送8192bytes一包的数据的,然后我实际在我的板子上测试,也能看到buffer里填充了8192bytes的数据,统计寄存器里也显示说发出去了一包数,但PC端就是收不到。
而且如果我单步的话,在DSP端是能显示说发出去,但是全速跑起来就会提示队列空的错误信息。
所以想请问一下各位,
1.GE例程是否能实现巨型帧的传输?还是说这个程序是不支持的,如果不支持,那我想传巨型帧该用别的啥办法?
2.我有看到说巨型帧是依赖于千兆网口的,我们这个传不了巨型帧是跟我们的网口是百兆的有关系吗?
/*以下是GE例程里传输的代码*/
if((uiPayloadNumBytes<46)||(uiPayloadNumBytes>9216))
{
printf("invalid packet payload size %d for port %d\n", uiPayloadNumBytes, j+1);
continue;
}
if(uiPayloadNumBytes>DDR_PACKET_BUFFER_SIZE0)
uiFDQ= DDR_HOST_SIZE1_FDQ;
else
uiFDQ= DDR_HOST_SIZE0_FDQ;
Shine:
请参考NDK里如何使能巨型帧。
processors.wiki.ti.com/…/Enabling_Jumbo_Packet_Support_for_C6678
user4962317:
回复 Shine:
巨型帧是只能在ndk里使用吗?
GE的例程是不支持巨型帧使用的吗?我想明确这一点,还有就是百兆网口对传输巨型帧有影响吗?