Programming Model
88
SLAU723A – October 2017 – Revised October 2018
Copyright © 2017–2018, Texas Instruments Incorporated
Cortex
®
-M4F Processor
1.4.2.1.5 Program Status Register (PSR)
PSR is shown in
and described in
Return to
NOTE:
This register is also referred to as xPSR.
The Program Status Register (PSR) has three functions, and the register bits are assigned to the different
functions:
•
Application Program Status Register (APSR), bits 31:27, bits 19:16
•
Execution Program Status Register (EPSR), bits 26:24, bits 15:10
•
Interrupt Program Status Register (IPSR), bits 7:0
The PSR, IPSR, and EPSR registers can only be accessed in privileged mode; the APSR register can be
accessed in either privileged or unprivileged mode.
APSR contains the current state of the condition flags from previous instruction executions.
EPSR contains the Thumb state bit and the execution state bits for the If-Then (IT) instruction or the
Interruptible-Continuable Instruction (ICI) field for an interrupted load multiple or store multiple instruction.
Attempts to read the EPSR directly through application software using the MSR instruction always return
zero. Attempts to write the EPSR using the MSR instruction in application software are always ignored.
Fault handlers can examine the EPSR value in the stacked PSR to determine the operation that faulted
(see
IPSR contains the exception type number of the current Interrupt Service Routine (ISR).
These registers can be accessed individually or as a combination of any two or all three registers, using
the register name as an argument to the MSR or MRS instructions. For example, all of the registers can
be read using PSR with the MRS instruction, or APSR only can be written to using APSR with the MSR
instruction.
lists the possible register combinations for the PSR. See the MRS and MSR
instruction descriptions in the Cortex-M4 instruction set chapter in the
Arm® Cortex-M4 Devices Generic
for more information about how to access the program status registers.
(1)
The processor ignores writes to the IPSR bits.
(2)
Reads of the EPSR bits return zero, and the processor ignores writes
to these bits.
Table 1-8. PSR Register Combinations
Register
Type
Combination
PSR
RW
(1) (2)
APSR, EPSR, and IPSR
IEPSR
RO
EPSR and IPSR
IAPSR
RW
(1)
APSR and IPSR
EAPSR
RW
(2)
APSR and EPSR