CC 3000 UDP 通信方式,调用sendto发送数据,每包数据350字节,间隔10ms,不定期会出现堵死的现象。
有时候连续工作24小时没问题,有时候几个小时就出现。
跟踪测试,发现堵死的时候
是在下面这个while里,tSLInformation.usNumberOfFreeBuffers = 0;
#ifndef SEND_NON_BLOCKING
/* wait in busy loop */
do
{
// In case last transmission failed then we will return the last failure
// reason here.
// Note that the buffer will not be allocated in this case
if (tSLInformation.slTransmitDataError != 0)
{
errno = tSLInformation.slTransmitDataError;
tSLInformation.slTransmitDataError = 0;
return errno;
}
if(SOCKET_STATUS_ACTIVE != get_socket_active_status(sd))
return -1;
} while(0 == tSLInformation.usNumberOfFreeBuffers);