TI中文支持网
TI专业的中文技术问题咨询交流网站

C6657 NDK Send 发送大量数据失败

在应用中,有大量数据需要通过CORE0的网口发送到后台,使用UDP方式,受实际环境限制,后台是100M网口,当连续发送数据比如10M字节时,就会一直打印下面的消息:

emac_send core 0 port 0 TX queue is empty

SOCKET已经设置了较长的超时时间:

timeout.tv_sec = 60;
timeout.tv_usec = 0;
setsockopt( m_Socket, SOL_SOCKET, SO_SNDTIMEO, &timeout, sizeof( timeout ) );
setsockopt( m_Socket, SOL_SOCKET, SO_RCVTIMEO, &timeout, sizeof( timeout ) );

说明:发送时人为进行了分段,一次发送1460字节。如果后台是1000M网口工作正常。

在send函数后面,人为加task_sleep是可以解决这个问题,但这肯定不科学,有没有更好的解决办法?设置了发送超时时间为什么不起作用?而且即使出错,send函数的返回值仍然是1460.

Shine:

请使能jumbo frame试试。
e2e.ti.com/…/947948

赞(0)
未经允许不得转载:TI中文支持网 » C6657 NDK Send 发送大量数据失败
分享到: 更多 (0)