This is the mail archive of the ecos-discuss@sourceware.org mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: ARM FIQ and nested interrupts


On 2011-10-14 11:52, Paul D. DeRocco wrote:
From: Will Wagner

We are looking at an application where we will need an FIQ to
be able to
interrupt an IRQ and I have been looking at support for this.
It seems
like there is no nested interrupt support for ARM and that
FIQ support
is very limited, in that it effectively turns it into an IRQ to be
handled after current IRQ. Am I missing something here?

Has anyone done any work to support the FIQ properly on ARM?
Anyone able
to comment on why it was done this way in the first place?

I've always thought of FIQ as being for what you might call "software DMA", where you have a really simple handler that just moves some data, and after some number of invocations invokes a "real" interrupt. For this paradigm, eCos doesn't need to participate in the FIQ mechanism at all: you manually install your own handler and unmask FIQ, and all works fine as long as you never do ANY OS calls in the handler. The way you signal the rest of eCos at the end of a series of FIQ calls is to force the generation of a regular IRQ, which in at least some ARM interrupt controllers can be done by manually setting the request bit for some channel that doesn't map to a used hardware interrupt input. I did this once on an ARM7TDMI, and it worked fine.

This is the best use of FIQ on the ARM. As mentioned, I originally thought it could be used like IRQ via the normal eCos mechanisms. However, that is just too heavy for the sort of things FIQ is normally used for, so a very simple FIQ VSR is installed to do these quick and simple operations, like pseudo-DMA.

Look at the MP3 player example in
   .../packages/hal/arm/edb7xxx/current/misc

--
------------------------------------------------------------
Gary Thomas                 |  Consulting for the
MLB Associates              |    Embedded world
------------------------------------------------------------

--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]