Yahoo Groups archive

Lpc2000

Index last updated: 2026-04-28 23:31 UTC

Message

Re: Newbie question: FIQ without using the VIC

2005-10-01 by Karl Olsen

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

Attachments

Move to quarantaine

This moves the raw source file on disk only. The archive index is not changed automatically, so you still need to run a manual refresh afterward.