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 以太网 巨型帧

您好,

         我们的硬件平台是自制的,以太网部分基本与开发板相同,但是不是千兆网口,是百兆,已经在板子上调通了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;