FreeRTOS で LwIP を使用しています。私のプロジェクトは、この URL FreeRTOS with LwIP projectの例に基づいています。また、LPCXpresso バージョン 6 で LPC1769 を使用しています。CMSIS バージョン 2。
LwIP を使用して、UDP ソケットで MP3 ファイルをストリーミングしています。転送は高速ですが、数千回の操作の後で lwip_recvfrom がブロックされることがあります。タイムアウト状態が表示されません。私は何か間違ったことをしていると思います。
次の手順は次のとおりです。
int socket = lwip_socket(AF_INET, SOCK_DGRAM, 0);
if(lwip_setsockopt( socket,
SOL_SOCKET,
SO_RCVTIMEO,
(int)timeoutTimeInMiliSeconds,
sizeof(int)) == -1)
{
return -1;
}
....
if(lwip_bind(protocolConfig.socket,
(struct sockaddr *)&sLocalAddr,
sizeof(sLocalAddr)) == -1)
{
return -1;
}
bytesWritten = lwip_sendto( socket,
transmitBuffer,
transmitBufferIndex,
0,
(struct sockaddr *)&sDestAddr,
sizeof(sDestAddr));
.....
bytesReceived = lwip_recvfrom( socket,
receptionBuffer,
receptionBufferSize,
0,
NULL,
NULL);
if(bytesReceived < 0)
{
//Error stuff, this condition is never reached.
}
誰かがここで何が悪いのか知っていますか?