SWRU543B January 2019 – June 2025 CC3230S , CC3230SF , CC3235MODS , CC3235MODSF , CC3235S , CC3235SF
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:
The PSR, IPSR, and EPSR registers can be accessed only 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.
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 can only be written to using APSR with the MSR instruction. Table 2-3 shows the possible register combinations for the PSR. See the descriptions of the MRS and MSR instructions in the Cortex®-M4 Devices Generic User Guide (ARM DUI 0553A) for more information about how to access the program status registers.
| Register | Type | Combination |
|---|---|---|
| PSR | PSR R/W(1)(2) | APSR, EPSR, and IPSR |
| IEPSR | RO | EPSR and IPSR |
| IAPSR | R/W(1) | APSR and IPSR |
| EAPSR | R/W(2) | APSR and EPSR |