NUC970 Technical Reference Manual
Publication Release Date: Dec. 15, 2015
- 186 -
Revision V1.30
NUC97
0
T
E
CHNIC
A
L
RE
F
E
RE
N
CE
MA
NUA
L
Advanced Interrupt Controller (AIC)
5.4
5.4.1 Overview
An interrupt temporarily changes the sequence of program execution to react to a particular event
such as power failure, watchdog timer timeout, transmit/receive request from Ethernet MAC Controller,
and so on. The CPU processor provides two modes of interrupt, the Fast Interrupt (FIQ) mode for
critical session and the Interrupt (IRQ) mode for general purpose. The IRQ request is occurred when
the nIRQ input is asserted. Similarly, the FIQ request is occurred when the nFIQ input is asserted. The
FIQ has privilege over the IRQ and can preempt an ongoing IRQ. It is possible to ignore the FIQ and
the IRQ by setting the F and I bits in the current program status register (CPSR).
The Advanced Interrupt Controller (AIC) is capable of processing the interrupt requests up to 64
different sources. Currently, 61 interrupt sources are defined. Each interrupt source is uniquely
assigned to an interrupt channel. For example, the watchdog timer interrupt is assigned to channel 1.
The AIC implements a proprietary eight-level priority scheme that categories the available 61 interrupt
sources into eight priority levels. Interrupt sources within the priority level 0 is the highest priority and
the priority level 7 is the lowest. In order to make this scheme work properly, a certain priority level
must be specified to each interrupt source during power-on initialization; otherwise, the system shall
behave unexpectedly. Within each priority level, interrupt source that is positioned in a lower channel
has a higher priority. Interrupt source that is active, enabled, and positioned in the lowest channel with
priority level 0 is promoted to the FIQ. Interrupt sources within the priority levels other than 0 are
routed to the IRQ. The IRQ can be preempted by the occurrence of the FIQ. Interrupt nesting is
performed automatically by the AIC.
Though interrupt sources originated from the chip itself are intrinsically high-level sensitive, the AIC
can be configured as either low-level sensitive, high-level sensitive, negative-edge triggered, or
positive-edge triggered to each interrupt source.
5.4.2 Features
AMBA APB bus interface
External interrupts can be programmed as either edge-triggered or level-sensitive
External interrupts can be programmed as either low-active or high-active
Flags to reflect the status of each interrupt source
Individual mask for each interrupt source
Support proprietary 8-level interrupt scheme to employ the priority scheme.
Priority methodology is adopted to allow for interrupt daisy-chaining
Automatically masking out the lower priority interrupt during interrupt nesting
Automatically clearing the interrupt flag when the external interrupt source is programmed to
be edge-triggered