System Control Block (SCB) Register Descriptions
1645
SPRUH22I – April 2012 – Revised November 2019
Copyright © 2012–2019, Texas Instruments Incorporated
Cortex-M3 Peripherals
Table 25-50. Configurable Fault Status (FAULTSTAT) Register Field Descriptions (continued)
Bit
Field
Value
Description
11
BUSTKE
Unstack Bus Fault
0
No bus fault has occurred on unstacking for a return from exception.
1
Unstacking for a return from exception has caused one or more bus faults.
This fault is chained to the handler. Thus, when this bit is set, the original return stack is still
present. The SP is not adjusted from the failing return, a new save is not performed, and a fault
address is not written to the FAULTADDR register.
This bit is cleared by writing a 1 to it.
10
IMPRE
Imprecise Data Bus Error
0
An imprecise data bus error has not occurred.
1
A data bus error has occurred, but the return address in the stack frame is not related to the
instruction that caused the error.
When this bit is set, a fault address is not written to the FAULTADDR register.
This fault is asynchronous. Therefore, if the fault is detected when the priority of the current process
is higher than the bus fault priority, the bus fault becomes pending and becomes active only when
the processor returns from all higher-priority processes. If a precise fault occurs before the
processor enters the handler for the imprecise bus fault, the handler detects that both the IMPRE
bit is set and one of the precise fault status bits is set.
This bit is cleared by writing a 1 to it.
9
PRECISE
Precise Data Bus Error
0
A precise data bus error has not occurred.
1
A data bus error has occurred, and the PC value stacked for the exception return points to the
instruction that caused the fault.
When this bit is set, the fault address is written to the FAULTADDR register.
This bit is cleared by writing a 1 to it.
8
IBUS
Instruction Bus Error
0
An instruction bus error has not occurred.
1
An instruction bus error has occurred.
The processor detects the instruction bus error on prefetching an instruction, but sets this bit only if
it attempts to issue the faulting instruction. When this bit is set, a fault address is not written to the
FAULTADDR register.
This bit is cleared by writing a 1 to it.
7
MMARV
Memory Management Fault Address Register Valid
0
The value in the Memory Management Fault Address (MMADDR) register is not a valid fault
address.
1
The MMADDR register is holding a valid fault address.
If a memory management fault occurs and is escalated to a hard fault because of priority, the hard
fault handler must clear this bit. This action prevents problems if returning to a stacked active
memory management fault handler whose MMADDR register value has been overwritten. This bit is
cleared by writing a 1 to it.
6-5
Reserved
Reserved
4
MSTKE
Stack Access Violation
0
No memory management fault has occurred on stacking for exception entry.
1
Stacking for an exception entry has caused one or more access violations.
When this bit is set, the SP is still adjusted but the values in the context area on the stack might be
incorrect. A fault address is not written to the MMADDR register.
This bit is cleared by writing a 1 to it.
3
MUSTKE
Unstack Access Violation
0
No memory management fault has occurred on unstacking for a return from exception.
1
Unstacking for a return from exception has caused one or more access violations.
This fault is chained to the handler. Thus, when this bit is set, the original return stack is still
present. The SP is not adjusted from the failing return, a new save is not performed, and a fault
address is not written to the MMADDR register.
This bit is cleared by writing a 1 to it.
2
Reserved
Reserved