Hi,

I'm running the lwIP latest master on a NXP -  K64F without operating system 
and I'm having some troubles with TCP.


I'm using a stripped down version of the httpd and added a simple HTTP POST 
command protocol to it. This command protocol is keeping the device and webapp 
in sync.

A webapp is sending POST messages to my device with the webapp state in it 
every +-60ms. The httpd sets a flag when it receives such a message. In main 
loop we evaluate the flag, if true we evaluate the received webapp state and 
send a HTTP OK with the latest device state in it. From this main loop flag 
check we construct the message, we call http_send and directly after tcp_output.

(I know this polling method is far from ideal but it was a quick implementation 
before we continue with websockets.)


It works great except that on completely random moments lwIP crashes and the 
complete MCU is halted.

>From time to time I get following assert when that happens:


    LWIP_ASSERT("pcb->snd_queuelen >= pbuf_clen(next->p)", (pcb->snd_queuelen 
>= clen));


There are also moments were no assert is triggered and it just crashes (or 
maybe the assert message is not printed on these occasions i'm not sure).

I have been evaluating the code that influences snd_queuelen and I noticed that 
there are some open tcp bugs at the moment that can have influence on sequence 
numbers and ack's.


It would really help if someone could point me in the right direction.


Thanks!

Jasper
_______________________________________________
lwip-users mailing list
lwip-users@nongnu.org
https://lists.nongnu.org/mailman/listinfo/lwip-users

Reply via email to