This is the mail archive of the
mailing list for the eCos project.
RE: Problem in FIQ with ecos for arm(at91sam7x)
- From: "Paul D. DeRocco" <pderocco at ix dot netcom dot com>
- To: "eCos Discuss" <ecos-discuss at ecos dot sourceware dot org>
- Date: Tue, 9 Jun 2009 22:32:05 -0700
- Subject: RE: [ECOS] Problem in FIQ with ecos for arm(at91sam7x)
> From: Mervin J
> As you told, there is some problem with stack pointer handling.Since
> the program behavior is not predicable with FIQ but works well with IRQ.
> How can i handle FIQ as it is,without taking it to IRQ level.
I'm wondering why you're using FIQ at all. The only legitimate reason I can
think of for trying to get FIQ to invoke an eCos ISR is that you've got some
external device that's hard-wired to the FIQ pin, and you can't change the
board. Otherwise, if you don't mind the overhead of the standard eCos
ISR/DSR mechanism, then you'd do better to use a regular interrupt.
(Remember, you can make any PIO line an interrupt input, although all such
PIO lines would share an ISR.)
If you're using FIQ because you want the lower overhead, then routing it to
an ISR is probably not what you want. FIQ is most useful for implementing a
software-based smart DMA-like system, where the only thing the FIQ handler
does is some simple I/O, and not invoking an ISR until some buffer is full
or empty. In that case, you should be writing it in assembler.
Ciao, Paul D. DeRocco
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss