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
_______________________________________________
lwip-users mailing list
[email protected]
https://lists.nongnu.org/mailman/listinfo/lwip-users