
DR
AFT
DR
AFT
DRAFT
DR
D
RAFT
DRAFT
DRA
FT DRAF
D
RAFT DRAFT DRAFT DRAFT DRAFT D
DRAFT
D
RAFT DRA
FT DRAFT DRAFT DRAFT DRA
UM10360_0
© NXP B.V. 2009. All rights reserved.
User manual
Rev. 00.06 — 5 June 2009
696 of 808
NXP Semiconductors
UM10360
Chapter 34: Appendix: Cortex-M3 User Guide
3.
ARM Cortex-M3 User Guide: Processor
3.1 Programmers model
This section describes the Cortex-M3 programmers model. In addition to the individual
core register descriptions, it contains information about the processor modes and privilege
levels for software execution and stacks.
3.1.1 Processor mode and privilege levels for software execution
The processor
modes
are:
•
Thread mode
Used to execute application software. The processor enters Thread mode when it
comes out of reset.
•
Handler mode
Used to handle exceptions. The processor returns to Thread mode when it has
finished exception processing.
The
privilege levels
for software execution are:
•
Unprivileged
The software:
–
has limited access to the
MSR
and
MRS
instructions, and cannot use the
CPS
instruction
–
cannot access the system timer, NVIC, or system control block
–
might have restricted access to memory or peripherals.
Unprivileged software
executes at the unprivileged level.
•
Privileged
The software can use all the instructions and has access to all resources.
Privileged software
executes at the privileged level.
In Thread mode, the CONTROL register controls whether software execution is privileged
or unprivileged, see
. In Handler mode, software execution is always
privileged.
Only privileged software can write to the CONTROL register to change the privilege level
for software execution in Thread mode. Unprivileged software can use the
SVC
instruction
to make a
supervisor call
to transfer control to privileged software.
3.1.2 Stacks
The processor uses a full descending stack. This means the stack pointer indicates the
last stacked item on the stack memory. When the processor pushes a new item onto the
stack, it decrements the stack pointer and then writes the item to the new memory
location. The processor implements two stacks, the
main stack
and the
process stack
,
with independent copies of the stack pointer, see
.
In Thread mode, the CONTROL register controls whether the processor uses the main
stack or the process stack, see
. In Handler mode, the processor always
uses the main stack. The options for processor operations are: