RM0082
CPU subsystem_Vectored interrupt controller (VIC)
Doc ID 018672 Rev 1
8
CPU subsystem_Vectored interrupt controller (VIC)
8.1 Overview
Acting as an interrupt controller, the VIC determines the source that is requesting service
and where its interrupt service routine (ISR) is loaded, doing that in hardware. In particular,
the VIC supplies the starting address, or vector address, of the ISR corresponding to the
highest priority requesting interrupt source.
Main features of the VIC are:
●
Support for 32 standard interrupt sources.
●
Generation of both Fast Interrupt reQuest (FIQ) and Interrupt ReQuest (IRQ),
according to ARM system operation. IRQ is used for general interrupts, whereas FIQ is
intended for fast, low-latency interrupt handling. In particular, using a single FIQ source
at a time in the system provides interrupt latency reduction, because the ISR can be
directly executed without determining the source of the interrupt.
●
Support for 16 vectored interrupts (IRQ only).
●
Hardware interrupt priority, where FIQ interrupt has the highest priority, followed by
vectored IRQ interrupts (from vector 0 to vector 15), and then non-vectored IRQ
interrupts with the lowest priority.
●
Interrupt masking.
●
Interrupts request status and raw interrupt status (prior to masking).
●
Software interrupt generation.
●
An AHB slave to connect to the CPU.
The interrupt inputs must be level sensitive, active HIGH, and held asserted until the
interrupt service routine clears the interrupt. Edge-triggered interrupts are not compatible.
The interrupt inputs do not have to be synchronous to HCLK.
Note:
The VIC does not handle interrupt sources with transient behaviour.
8.2 Block
diagram
shows the block diagram of VIC.