--- In lpc2000@yahoogroups.com, "c_hall2001" <c_hall2001@y...> wrote:
> This question is sort of academic because all of the LPC's have a
> VIC but is it possible to use FIQ without using the VIC? Lets say I
> want to set up a simple program with a single timer INT. Can I have
> this be a FIQ or is the ability to call an INT as a FIQ only
> available through the VIC?
In LPC2000, the FIQ and IRQ signals to the ARM7 core come from the
VIC, so you get no interrupts without involving the VIC.
FIQs don't use the "vectored" part of the VIC. When you have
configured the VIC to route an interrupt source to FIQ, you don't
need to do anything related to the VIC in the FIQ handler which
starts at address 001Ch.
If you have two interrupt sources and you want them to have different
priorities, you can have the high-priority one be FIQ and the low-
priority one be IRQ. This is easier (and faster) than doing multi-
priority IRQs where some IRQs can be interrupted by others. Doing
multi-priority IRQs requires checking priorities, switching CPU mode
and re-enabling IRQs in the IRQ handler.
If you only have one IRQ interrupt source, you don't have to use the
VIC vector registers either, but can just jump from 0018h to your
handler. You do however have to do a dummy write to VICVectAddr in
your IRQ handler.
Karl Olsen