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: Problem in FIQ with ecos for arm(at91sam7x)


> From: Gary Thomas [mailto:gary@mlbassoc.com]
>
> Indeed.  I tried to make the FIQ handling the same as IRQ handling
> back when the ARM port was originally done (ca 1998).  Experience
> has shown that this probably doesn't make sense and the best way
> to handle FIQ (if you need them at all) is to install your own
> IHR (interrupt handling routing), typically written 100% in assembler.
>
> Try looking at the audio handling in the Cirrus EDB7xxx platform.
> It uses an FIQ routine to perform DMA like feeding of the audio
> chip.

One problem I had with the FIQ handling in eCos is that the HAL macros that
enable/disable interrupts affect both FIQ and IRQ. If FIQ is used for what
it is really intended, you often want normal interrupt handling to disable
IRQ only, so that FIQ events can continue to be handled. There really ought
to be a CDL option for this. In the ARM AIC, the FIQ handler can report its
ultimate completion via an IRQ by setting a bit in the request register, and
the interrupt won't occur until the IRQ is later enabled.

--

Ciao,               Paul D. DeRocco
Paul                mailto:pderocco@ix.netcom.com


-- 
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]