|
From: | Robert Lacoste |
Subject: | [lwip-users] unsent_oversize mismatch with TCP... |
Date: | Wed, 26 Mar 2014 08:46:50 +0100 |
Dear all,
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 ?
Thanks,
Robert
Test code :
while
(1)
{
sprintf((char *)buffer, (const char *)"test Frame %ld\r\0", i);
err = netconn_write(newconn, (void *) buffer, strlen((const char *)buffer),
NETCONN_COPY);
i++;
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)
pbuf_free: 0x20000018 has ref 1, ending here.
pbuf_alloc(length=1536)
pbuf_alloc(length=1536)
pbuf_alloc(length=1536)
pbuf_alloc(length=1536)
unsent_oversize mismatch (pcb vs. last_unsent):445 in file
../LwIP/core/tcp_out.c
|
[Prev in Thread] | Current Thread | [Next in Thread] |