|Subject:||[lwip-users] unsent_oversize mismatch with TCP...|
|Date:||Wed, 26 Mar 2014 08:46:50 +0100|
We are integrating an application using LwIP 1.41 on an LPC1788 microcontroller and LAN8720 PHY under FreeRTos (LPCOpeen framework) and have, well, difficulties.
Narrowing the problem we ended up with a very basic test program. We started up with the TCPECHO demo, and modified it to simply send a continuous unidirectionnal flow on the socket as fast as possible (code here under). The code is working well, but after some hundred of frames transmitted the stack stops on an “unsent_oversize mismatch” assertion failed. Here under some traces.
We tried to disable the check (TCP_OVERSIZED=0), the assert doesn’t fails but the stack hangs. Looking at the Ethernet trafic it seems that the same frame is resent several times when the bug appears. It seems that this problem was already experienced by other users but we were not able to find out a workaround or a clear explanation of the problem, which seems strange based on the simple configuration.
Any HEEEEELP ?
Test code :
sprintf((char *)buffer, (const char *)"test Frame %ld\r\0", i);
err = netconn_write(newconn, (void *) buffer, strlen((const char *)buffer), NETCONN_COPY);
if (err != ERR_OK)
printf("tcpecho: netconn_write: error \"%s\"\n", lwip_strerr(err));
Some traces :
pbuf_header: old 0x2000004c new 0x20000038 (20)
pbuf_header: old 0x20000038 new 0x2000002a (14)
pbuf_free: 0x20000018 has ref 1, ending here.
unsent_oversize mismatch (pcb vs. last_unsent):445 in file ../LwIP/core/tcp_out.c
|[Prev in Thread]||Current Thread||[Next in Thread]|