lwip-users
[Top][All Lists]
Advanced

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

Re: [lwip-users] Infinite hang in tcp_slowtmr()


From: Enrico Murador - Research & Development - CET
Subject: Re: [lwip-users] Infinite hang in tcp_slowtmr()
Date: Wed, 14 Oct 2015 10:22:58 +0200
User-agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0

Hi Stephen,
Maybe your workaround is not a safe way to overcome the problem: at that point the pcb chain is already corrupted (and probably unrecoverable?).

What compiler/toolchain are you using?

Enrico

On 13/10/2015 11:48, Sylvain Rochet wrote:
Hi Stephen,

On Tue, Oct 13, 2015 at 10:15:42AM +0200, Sylvain Rochet wrote:
On Mon, Oct 12, 2015 at 04:59:19PM -0500, Stephen Cowell wrote:
On 10/12/2015 3:41 PM, Sylvain Rochet wrote:
On Mon, Oct 12, 2015 at 02:51:14PM -0500, Stephen Cowell wrote:
I find that I sometimes get an infinite loop when stepping to
pcb->next...
I didn't have to read further. As usual, it looks like a broken port or
usage which violate lwIP threading model.

Summary:

- Do *NOT* call anything in interrupt context, nothing, never,
absolutely never, use your OS semaphore signaling to an
Ethernet/serial/… RX thread
I don't think I'm doing that, Sylvain... this is non-OS, so there
are no 'threads'.   Atmel wrote the port.  I'm running sntp and ftpd, they
hook in using their own _init() routines that have not been
modified.
But there are probably interrupts, which is even worse. Could you first 
check that no lwIP functions are called in interrupts contexts ? 
Probably around the macb driver.

If I have time I will fetch the Atmel port for SAM4E/bare-metal and 
take a short look at it.
It looks sane from a quick look. I don't really understand why there are 
not using sys_check_timeouts() and rewrote everything in the ethernet.c 
"static timers_info_t gs_timers_table[]" stuff. Since you are having 
issue in timers context could you check this part is ok ? Removing all 
the Atmel timers stuff and calling sys_check_timeouts() in the main loop 
could be an easy check.

Sylvain

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

--
Enrico Murador
R&D

CET
                    Electronics logo CET Electronics snc
via E. Fermi, 1
31050 Zenson di Piave (TV) Italy
Phone: +39 0421 344100
Fax: +39 0421 464042
PI/VAT IT01780330260
Web: http://www.cet-electronics.com/




reply via email to

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