
NUC126
Aug. 08, 2018
Page
138
of 943
Rev 1.03
NUC12
6 S
E
RI
E
S
T
E
CH
NI
CA
L R
E
F
E
RE
NCE
MA
NUA
L
6.2.14
Nested Vectored Interrupt Controller (NVIC)
The Cortex
®
-M0 provides an interrupt controller as an integral part of the exception mode, named as
“Nested Vectored Interrupt Controller (NVIC)”, which is closely coupled to the processor kernel and
provides following features:
Nested and Vectored interrupt support
Automatic processor state saving and restoration
Reduced and deterministic interrupt latency
The NVIC prioritizes and handles all supported exceptions. All exceptions are
handled in “Handler
Mode”. This NVIC architecture supports 32 (IRQ[31:0]) discrete interrupts with 4 levels of priority. All of
the interrupts and most of the system exceptions can be configured to different priority levels. When an
interrupt occurs, the N
VIC will compare the priority of the new interrupt to the current running one’s
priority. If the priority of the new interrupt is higher than the current one, the new interrupt handler will
override the current handler.
When an interrupt is accepted, the starting address of the interrupt service routine (ISR) is fetched
from a vector table in memory. There is no need to determine which interrupt is accepted and branch
to the starting address of the correlated ISR by software. While the starting address is fetched, NVIC
will also automatically save processor state including the registers “PC, PSR, LR, R0~R3, R12” to the
stack. At the end of the ISR, the NVIC will restore the mentioned registers from stack and resume the
normal execution. Thus it will take less and deterministic time to process the interrupt request.
The NVIC supports “Tail Chaining” which handles back-to-back interrupts efficiently without the
overhead of states saving and restoration and therefore reduces delay time in switching to pending
IS
R at the end of current ISR. The NVIC also supports “Late Arrival” which improves the efficiency of
concurrent ISRs. When a higher priority interrupt request occurs before the current ISR starts to
execute (at the stage of state saving and starting address fetching), the NVIC will give priority to the
higher one without delay penalty. Thus it advances the real-time capability.
For more detailed information, please refer to the “ARM
®
Cortex
®
-
M0 Technical Reference Manual”
and “ARM
®
v6-M Architecture Referenc
e Manual”.
6.2.14.1 Exception Model and System Interrupt Map
The following table lists the exception model supported by the NUC126 series. Software can set four
levels of priority on some of these exceptions as well as on all interrupts. The highest user-
configurab
le priority is denoted as “0” and the lowest priority is denoted as “3”. The default priority of all
the user-
configurable interrupts is “0”. Note that priority “0” is treated as the fourth priority on the
system, after three system exceptions “Reset”, “NMI” and “Hard Fault”.
Exception Type
Vector Number
Vector Address
Priority
Reset
1
0x00000004
-3
NMI
2
0x00000008
-2
Hard Fault
3
0x0000000C
-1
Reserved
4 ~ 10
Reserved
SVCall
11
0x0000002C
Configurable
Reserved
12 ~ 13
Reserved
PendSV
14
0x00000038
Configurable
SysTick
15
0x0000003C
Configurable
Interrupt (IRQ0 ~ IRQ)
16 ~ 47
0x00
Configurable