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