[Top][All Lists]
[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