The Cortex-M4 Processor
ARM DUI 0553A
Copyright © 2010 ARM. All rights reserved.
2-22
ID121610
Non-Confidential
MemManage
A MemManage fault is an exception that occurs because of a memory
protection related fault. The the fixed memory protection constraints
determines this fault, for both instruction and data memory transactions.
This fault is always used to abort instruction accesses to
Execute Never
(XN) memory regions.
BusFault
A BusFault is an exception that occurs because of a memory related fault
for an instruction or data memory transaction. This might be from an error
detected on a bus in the memory system.
UsageFault
A UsageFault is an exception that occurs because of a fault related to
instruction execution. This includes:
•
an undefined instruction
•
an illegal unaligned access
•
invalid state on instruction execution
•
an error on exception return.
The following can cause a UsageFault when the core is configured to
report them:
•
an unaligned address on word and halfword memory access
•
division by zero.
SVCall
A
supervisor call
(SVC) is an exception that is triggered by the
SVC
instruction. In an OS environment, applications can use
SVC
instructions to
access OS kernel functions and device drivers.
PendSV
PendSV is an interrupt-driven request for system-level service. In an OS
environment, use PendSV for context switching when no other exception
is active.
SysTick
A SysTick exception is an exception the system timer generates when it
reaches zero. Software can also generate a SysTick exception. In an OS
environment, the processor can use this exception as system tick.
Interrupt (IRQ)
A interrupt, or IRQ, is an exception signalled by a peripheral, or generated
by a software request. All interrupts are asynchronous to instruction
execution. In the system, peripherals use interrupts to communicate with
the processor.
Table 2-16 Properties of the different exception types
Exception
number
a
IRQ
number
Exception type
Priority
Vector address
or offset
b
Activation
1
-
Reset
-3, the highest
0x00000004
Asynchronous
2
-14
NMI
-2
0x00000008
Asynchronous
3
-13
HardFault
-1
0x0000000C
-
4 -12
MemManage
Configurable
c
0x00000010
Synchronous
5
-11
BusFault
Configurable
0x00000014
Synchronous when precise,
asynchronous when imprecise
6
-10
UsageFault
Configurable
0x00000018
Synchronous
7-10
-
Reserved
-
-
-