lwip-users
[Top][All Lists]
Advanced

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

Re: [lwip-users] RAW API Interupts


From: Jonathan Larmour
Subject: Re: [lwip-users] RAW API Interupts
Date: Thu, 25 Oct 2007 14:28:00 +0100
User-agent: Thunderbird 1.5.0.12 (X11/20070530)

Rick Culver wrote:
> I am relatively new using the lwip stack but have been able to
> successfully use the RAW API in some what of a "polled" mode.  However,
> I am needing to get the stack to function using interrupts because I
> have a number of functions that will not be able to service the lwip
> stack frequently enough in the polled mode.  My question has to do with
> re-entry of the stack code.  That is, if I process my packet read
> function from a hardware interrupt and trigger the timers (tcp_tmr())
> from a tick interrupt is there a problem with the lwip getting confused?

It depends on whether you have nested interrupts - one interrupt can
interrupt another. Ultimately you cannot have two threads of execution in
lwIP core code at the same time, so if your packet read function has called
ip_input(), and a timer can then trigger and interrupt it, then that's bad.

You could disallow nested interrupts - just disable interrupts. But since a
lot of lwIP code may be run by calling ip_input(), that could lead to a
dire interrupt latency, which is normally a bad idea too.

> Added to this there would be situations where I would be setting up a
> packet to send (udp_send() or tcp_send()) with in a function not
> triggered by an interrupt.  Basically I could have 3 levels of trigger
> (tick IRQ, hardware IRQ, background) all firing at the same time, is
> this a problem?

Yes if you take no steps to serialise access to lwIP core code.

> I don't really have an RTOS and don't really want to
> implement one for this job.  I just need the stack to run more or less
> independent of my main application.  Can anyone provide some inside or
> direction on this before I even try to implement the interrupts?  Thank
> you all.

Disabling interrupts would work, but is very much a sledgehammer approach.

Jifl
-- 
eCosCentric Limited      http://www.eCosCentric.com/     The eCos experts
Barnwell House, Barnwell Drive, Cambridge, UK.       Tel: +44 1223 245571
Registered in England and Wales: Reg No 4422071.
------["The best things in life aren't things."]------      Opinions==mine




reply via email to

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