lwip-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [lwip-users] LwIP issue on TMS570


From: address@hidden
Subject: Re: [lwip-users] LwIP issue on TMS570
Date: Tue, 16 Apr 2019 21:26:20 +0200
User-agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.6.1

Am 16.04.2019 um 17:23 schrieb Thomas Drage:
Hi,

I have an implementation using lwIP on a TI TMS570LC4357 LaunchPad which
exhibits a strange problem, and I'm hoping someone can provide some
insight or tips :)

1. The first message received calls tcp_recv instantly and is processed.

2. The second message might take 5 - 10s until tcp_recv is called.

3. The third etc. can take a very long time (or forever) between sending
the data to the TMS570 and the getting callback.

That almost sounds like the driver is somehow missing RX packets? A
common bug was/is that the driver only receives one packet per ISR call,
when (due to code runtime) multiple packets can be received before the
ISR returns.


My code is based on this echo-server:
https://github.com/dreamcat4/lwip/blob/master/contrib/apps/tcpecho_raw/echo.c

Why use a copy if you can use the original?

https://github.com/lwip-tcpip/lwip/

Regards,
Simion


Note that in the initial implementation of the echo server this problem
doesn't occur, however, my implementation separates reading and writing
(e.g. it is not an echo server anymore). So on reading, the message is
parsed/stored, then instead of sending it back the pbuf is freed and
tcp_recved called. If I insert a tcp_write after I have stored the
message and just send some random (constant) string back before I
deallocate the pbuf - everyone works once more (there is no delay on
receiving subsequent packets). I struggle to explain why this is the
case. Does anyone see a problem with the echo server code that would
make it stop working if it's not being asked to send data?

It seems almost a little like this:
https://e2e.ti.com/support/microcontrollers/hercules/f/312/t/675413?RM46L852-Modbus-Over-TCP-IP-control-hand-in-TCP-Rx-interrupt


I have attached my code. Note that in the function cont_read, if I
remove the line "tcp_write(tpcb, "ACK", 3, 1);", I start getting the
extreme delays before receiving subsequent messages.

Thanks,

Thomas Drage





reply via email to

[Prev in Thread] Current Thread [Next in Thread]