SPRUII0F May 2019 – June 2024 TMS320F28384D , TMS320F28384D-Q1 , TMS320F28384S , TMS320F28384S-Q1 , TMS320F28386D , TMS320F28386D-Q1 , TMS320F28386S , TMS320F28386S-Q1 , TMS320F28388D , TMS320F28388S
Table 41-152 lists the memory-mapped registers for the SCB registers. All register offset addresses not listed in Table 41-152 should be considered as reserved locations and the register contents should not be modified.
| Offset | Acronym | Register Name | Write Protection | Section |
|---|---|---|---|---|
| 8h | ACTLR | Auxiliary Control Register | Go | |
| D00h | CPUID | CPUID Base Register | Go | |
| D04h | ICSR | Interrupt Control and State Register | Go | |
| D08h | VTOR | Vector Table Offset Register | Go | |
| D0Ch | AIRCR | Application Interrupt and Reset Control Register | Go | |
| D10h | SCR | System Control Register | Go | |
| D14h | CCR | Configuration and Control Register | Go | |
| D18h | SHPR1 | System Handler Priority Register 1 | Go | |
| D1Ch | SHPR2 | System Handler Priority Register 2 | Go | |
| D20h | SHPR3 | System Handler Priority Register 3 | Go | |
| D24h | SHCSRS | System Handler Control and State Register | Go | |
| D28h | CFSR | Configurable Fault Status Register | Go | |
| D2Ch | HFSR | HardFault Status Register | Go | |
| D34h | MMFAR | MemManage Fault Address Register | Go | |
| D38h | BFAR | BusFault Address Register | Go | |
| D3Ch | AFSR | Auxiliary Fault Status Register | Go |
Complex bit access types are encoded to fit into small table cells. Table 41-153 shows the codes that are used for access types in this section.
| Access Type | Code | Description |
|---|---|---|
| Read Type | ||
| R | R | Read |
| R-0 | R -0 | Read Returns 0s |
| Write Type | ||
| W | W | Write |
| W1S | W 1S | Write 1 to set |
| Reset or Default Value | ||
| -n | Value after reset or the default value | |
| Register Array Variables | ||
| i,j,k,l,m,n | When these variables are used in a register name, an offset, or an address, they refer to the value of a register array where the register is part of a group of repeating registers. The register groups form a hierarchical structure and the array is represented with a formula. | |
| y | When this variable is used in a register name, an offset, or an address it refers to the value of a register array. | |
ACTLR is shown in Figure 41-141 and described in Table 41-154.
Return to the Summary Table.
Auxiliary Control Register
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| RESERVED | |||||||
| R/W-0h | |||||||
| 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| RESERVED | |||||||
| R/W-0h | |||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| RESERVED | RESERVED | DISFPCA | |||||
| R/W-0h | R/W-0h | R/W-0h | |||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | DISFOLD | DISDEFWBUF | DISMCYCINT | ||||
| R/W-0h | R/W-0h | R/W-0h | R/W-0h | ||||
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-10 | RESERVED | R/W | 0h | Reserved |
| 9 | RESERVED | R/W | 0h | Reserved |
| 8 | DISFPCA | R/W | 0h | Disables automatic update of CONTROL.FPCA. Reset type: CM.SYSRESETn |
| 7-3 | RESERVED | R/W | 0h | Reserved |
| 2 | DISFOLD | R/W | 0h | When set to 1, disables IT folding. see About IT folding for more information. Reset type: CM.SYSRESETn |
| 1 | DISDEFWBUF | R/W | 0h | When set to 1, disables write buffer use during default memory map accesses. This causes all
BusFaults to be precise BusFaults but decreases performance because any store to memory must complete,before the processor can execute the next instruction. Note This bit only affects write buffers implemented in the Cortex-M4 processor. Reset type: CM.SYSRESETn |
| 0 | DISMCYCINT | R/W | 0h | When set to 1, disables interruption of load multiple and store multiple instructions. This increases
the,interrupt latency of the processor because any LDM or STM must complete before the processor,can stack the current state and enter the interrupt handler. Reset type: CM.SYSRESETn |
CPUID is shown in Figure 41-142 and described in Table 41-155.
Return to the Summary Table.
CPUID Base Register
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| Implementer | Variant | Constant | |||||||||||||
| R-41h | R-0h | R-Fh | |||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| PartNo | Revision | ||||||||||||||
| R-C24h | R-0h | ||||||||||||||
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-24 | Implementer | R | 41h | Implementer code:
0x41 = ARM Reset type: CM.SYSRESETn |
| 23-20 | Variant | R | 0h | Variant number, the r value in the rnpn product revision identifier:
0x0 = Revision 0 Reset type: CM.SYSRESETn |
| 19-16 | Constant | R | Fh | Reads as 0xF Reset type: CM.SYSRESETn |
| 15-4 | PartNo | R | C24h | Part number of the processor:
0xC24 = Cortex-M4 Reset type: CM.SYSRESETn |
| 3-0 | Revision | R | 0h | Revision number, the p value in the rnpn product revision identifier:
0x0 = Patch 0 Reset type: CM.SYSRESETn |
ICSR is shown in Figure 41-143 and described in Table 41-156.
Return to the Summary Table.
Interrupt Control and State Register
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| NMIPENDSET | RESERVED | PENDSVSET | PENDSVCLR | PENDSTSET | PENDSTCLR | RESERVED | |
| R/W-0h | R-0h | R/W-0h | R-0/W1S-0h | R/W-0h | R-0/W1S-0h | R-0h | |
| 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| RESERVED | ISRPENDING | RESERVED | VECTPENDING | ||||
| R-0h | R-0h | R-0h | R-0h | ||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| VECTPENDING | RETTOBASE | RESERVED | VECTACTIVE | ||||
| R-0h | R-0h | R-0h | R-0h | ||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| VECTACTIVE | |||||||
| R-0h | |||||||
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31 | NMIPENDSET | R/W | 0h | NMI set-pending bit.
Write.. 0 = no effect 1 = changes NMI exception state to pending. Read.. 0 = NMI exception is not pending 1 = NMI exception is pending. Because NMI is the highest-priority exception, normally the processor enter the NMI exception handler as soon as it registers a write of 1 to this bit, and entering the handler clears this bit to 0. A read of this bit by the NMI exception handler returns 1 only if the NMI signal is reasserted while the processor is executing that handler. Reset type: CM.SYSRESETn |
| 30-29 | RESERVED | R | 0h | Reserved |
| 28 | PENDSVSET | R/W | 0h | PendSV set-pending bit.
Write.. 0 = no effect 1 = changes PendSV exception state to pending. Read.. 0 = PendSV exception is not pending 1 = PendSV exception is pending. Writing 1 to this bit is the only way to set the PendSV exception state to pending. Reset type: CM.SYSRESETn |
| 27 | PENDSVCLR | R-0/W1S | 0h | PendSV clear-pending bit.
Write.. 0 = no effect 1 = removes the pending state from the PendSV exception. Reset type: CM.SYSRESETn |
| 26 | PENDSTSET | R/W | 0h | SysTick exception set-pending bit.
Write.. 0 = no effect 1 = changes SysTick exception state to pending. Read.. 0 = SysTick exception is not pending 1 = SysTick exception is pending. When you write to the ICSR, the effect is Unpredictable if you.. write 1 to the PENDSVSET bit and write 1 to the PENDSVCLR bit write 1 to the PENDSTSET bit and write 1 to the PENDSTCLR bit. Reset type: CM.SYSRESETn |
| 25 | PENDSTCLR | R-0/W1S | 0h | SysTick exception clear-pending bit.
Write.. 0 = no effect 1 = removes the pending state from the SysTick exception. This bit is WO. On a register read its value is Unknown. Reset type: CM.SYSRESETn |
| 24 | RESERVED | R | 0h | Reserved |
| 23 | RESERVED | R | 0h | Reserved |
| 22 | ISRPENDING | R | 0h | Interrupt pending flag, excluding NMI and Faults..
0 = interrupt not pending 1 = interrupt pending. Reset type: CM.SYSRESETn |
| 21-18 | RESERVED | R | 0h | Reserved |
| 17-12 | VECTPENDING | R | 0h | Indicates the exception number of the highest priority pending enabled exception:
0 = no pending exceptions Nonzero = the exception number of the highest priority pending enabled exception. The value indicated by this field includes the effect of the BASEPRI and FAULTMASK registers, but not any effect of the PRIMASK register. Reset type: CM.SYSRESETn |
| 11 | RETTOBASE | R | 0h | Indicates whether there are preempted active exceptions..
0 = there are preempted active exceptions to execute 1 = there are no active exceptions, or the currently-executing exception is the only active exception. Reset type: CM.SYSRESETn |
| 10-9 | RESERVED | R | 0h | Reserved |
| 8-0 | VECTACTIVE | R | 0h | Contains the active exception number:
0 = Thread mode Nonzero = The exception numbera of the currently active exception. Note Subtract 16 from this value to obtain the CMSIS IRQ number required to index into the Interrupt Clear-Enable, Set-Enable, Clear-Pending, Set-Pending, or Priority Register. Reset type: CM.SYSRESETn |
VTOR is shown in Figure 41-144 and described in Table 41-157.
Return to the Summary Table.
Vector Table Offset Register
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| TBLOFF | |||||||||||||||
| R/W-0h | |||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| TBLOFF | RESERVED | ||||||||||||||
| R/W-0h | R-0h | ||||||||||||||
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-7 | TBLOFF | R/W | 0h | Vector table base offset field. It contains bits[29:7] of the offset of the table base from the bottom of the memory map. Note Bit[29] determines whether the vector table is in the code or SRAM memory region: 0 = code 1 = SRAM. In implementations bit[29] is sometimes called the TBLBASE bit. Reset type: CM.SYSRESETn |
| 6-0 | RESERVED | R | 0h | Reserved |
AIRCR is shown in Figure 41-145 and described in Table 41-158.
Return to the Summary Table.
Application Interrupt and Reset Control Register
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| VECTKEY | |||||||
| R/W-FA05h | |||||||
| 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| VECTKEY | |||||||
| R/W-FA05h | |||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| ENDIANNESS | RESERVED | PRIGROUP | |||||
| R-0h | R-0h | R/W-0h | |||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | SYSRESETREQ | VECTCLRACTIVE | VECTRESET | ||||
| R-0h | R-0/W1S-0h | R-0/W1S-0h | R-0/W1S-0h | ||||
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-16 | VECTKEY | R/W | FA05h | Register key..
Reads as 0xFA05 On writes, write 0x5FA to VECTKEY, otherwise the write is ignored. Reset type: CM.SYSRESETn |
| 15 | ENDIANNESS | R | 0h | Data endianness bit is implementation defined..
0 = Little-endian 1 = Big-endian. Reset type: CM.SYSRESETn |
| 14-11 | RESERVED | R | 0h | Reserved |
| 10-8 | PRIGROUP | R/W | 0h | Interrupt priority grouping field is implementation defined. This field
determines the split of group priority from subpriority. PRIGROUP Binary pointa Group priority bits Subpriority bits Group priorities Subpriorities 0b000 bxxxxxxx.y [7:1] [0] 128 2 0b001 bxxxxxx.yy [7:2] [1:0] 64 4 0b010 bxxxxx.yyy [7:3] [2:0] 32 8 0b011 bxxxx.yyyy [7:4] [3:0] 16 16 0b100 bxxx.yyyyy [7:5] [4:0] 8 32 0b101 bxx.yyyyyy [7:6] [5:0] 4 64 0b110 bx.yyyyyyy [7] [6:0] 2 128 0b111 b.yyyyyyyy None [7:0] 1 256 Reset type: CM.SYSRESETn |
| 7-3 | RESERVED | R | 0h | Reserved |
| 2 | SYSRESETREQ | R-0/W1S | 0h | System reset request bit is implementation defined..
0 = no system reset request 1 = asserts a signal to the outer system that requests a reset. This is intended to force a large system reset of all major components except for debug. This bit reads as 0. See you vendor documentation for more information about the use of this signal in your implementation. Reset type: CM.SYSRESETn |
| 1 | VECTCLRACTIVE | R-0/W1S | 0h | Reserved for Debug use. This bit reads as 0. When writing to the register
you must write 0 to this bit, otherwise behavior is Unpredictable. Reset type: CM.SYSRESETn |
| 0 | VECTRESET | R-0/W1S | 0h | Reserved for Debug use. This bit reads as 0. When writing to the register
you must write 0 to this bit, otherwise behavior is Unpredictable Reset type: CM.SYSRESETn |
SCR is shown in Figure 41-146 and described in Table 41-159.
Return to the Summary Table.
System Control Register
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| RESERVED | |||||||
| R-0h | |||||||
| 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| RESERVED | |||||||
| R-0h | |||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| RESERVED | |||||||
| R-0h | |||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | RESERVED | RESERVED | RESERVED | SLEEPONEXIT | RESERVED | ||
| R-0h | R/W-0h | R-0h | R/W-0h | R/W-0h | R-0h | ||
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-5 | RESERVED | R | 0h | Reserved |
| 4 | RESERVED | R/W | 0h | Reserved |
| 3 | RESERVED | R | 0h | Reserved |
| 2 | RESERVED | R/W | 0h | Reserved |
| 1 | SLEEPONEXIT | R/W | 0h | Indicates sleep-on-exit when returning from Handler mode to Thread mode..
0 = do not sleep when returning to Thread mode. 1 = enter sleep, or deep sleep, on return from an ISR. Setting this bit to 1 enables an interrupt driven application to avoid returning to an empty main application. Reset type: CM.SYSRESETn |
| 0 | RESERVED | R | 0h | Reserved |
CCR is shown in Figure 41-147 and described in Table 41-160.
Return to the Summary Table.
Configuration and Control Register
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| RESERVED | |||||||
| R-0h | |||||||
| 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| RESERVED | |||||||
| R-0h | |||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| RESERVED | STKALIGN | BFHFNMIGN | |||||
| R-0h | R/W-1h | R/W-0h | |||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | DIV_0_TRP | UNALIGN_TRP | RESERVED | USERSETMPEND | NONBASETHRDENA | ||
| R-0h | R/W-0h | R/W-0h | R-0h | R/W-0h | R/W-0h | ||
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-10 | RESERVED | R | 0h | Reserved |
| 9 | STKALIGN | R/W | 1h | Indicates stack alignment on exception entry..
0 = 4-byte aligned 1 = 8-byte aligned. On exception entry, the processor uses bit 9 of the stacked PSR to indicate the stack alignment. On return from the exception it uses this stacked bit to restore the correct stack alignment. Reset type: CM.SYSRESETn |
| 8 | BFHFNMIGN | R/W | 0h | Enables handlers with priority -1 or -2 to ignore data BusFaults caused by load
and store instructions. This applies to the hard fault, NMI, and FAULTMASK escalated handlers.. 0 = data bus faults caused by load and store instructions cause a lock-up 1 = handlers running at priority -1 and -2 ignore data bus faults caused by load and store instructions. Set this bit to 1 only when the handler and its data are in absolutely safe memory. The normal use of this bit is to probe system devices and bridges to detect control path problems and fix them. Reset type: CM.SYSRESETn |
| 7-5 | RESERVED | R | 0h | Reserved |
| 4 | DIV_0_TRP | R/W | 0h | Enables faulting or halting when the processor executes an SDIV or UDIV
instruction with a divisor of 0.. 0 = do not trap divide by 0 1 = trap divide by 0. When this bit is set to 0, a divide by zero returns a quotient of 0. Reset type: CM.SYSRESETn |
| 3 | UNALIGN_TRP | R/W | 0h | Enables unaligned access traps..
0 = do not trap unaligned halfword and word accesses 1 = trap unaligned halfword and word accesses. If this bit is set to 1, an unaligned access generates a UsageFault. Unaligned LDM, STM, LDRD, and STRD instructions always fault irrespective of whether UNALIGN_TRP is set to 1. Reset type: CM.SYSRESETn |
| 2 | RESERVED | R | 0h | Reserved |
| 1 | USERSETMPEND | R/W | 0h | Enables unprivileged software access to the STIR. 0 = disable 1 = enable. Reset type: CM.SYSRESETn |
| 0 | NONBASETHRDENA | R/W | 0h | Indicates how the processor enters Thread mode..
0 = processor can enter Thread mode only when no exception is active. 1 = processor can enter Thread mode from any level under the control of an EXC_RETURN. EXC_RETURN[31:0] Description 0xFFFFFFF1 Return to Handler mode, exception return uses non-floating-point state from the MSP and execution uses MSP after return. 0xFFFFFFF9 Return to Thread mode, exception return uses non-floating-point state from MSP and execution uses MSP after return. 0xFFFFFFFD Return to Thread mode, exception return uses non-floating-point state from the PSP and execution uses PSP after return. 0xFFFFFFE1 Return to Handler mode, exception return uses floating-point-state from MSP and execution uses MSP after return. 0xFFFFFFE9 Return to Thread mode, exception return uses floating-point state from MSP and execution uses MSP after return. 0xFFFFFFED Return to Thread mode, exception return uses floating-point state from PSP and execution uses PSP after return. Reset type: CM.SYSRESETn |
SHPR1 is shown in Figure 41-148 and described in Table 41-161.
Return to the Summary Table.
System Handler Priority Register 1
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| RESERVED | PRI_6 | RESERVED | |||||||||||||
| R-0h | R/W-0h | R-0h | |||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| PRI_5 | RESERVED | PRI_4 | RESERVED | ||||||||||||
| R/W-0h | R-0h | R/W-0h | R-0h | ||||||||||||
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-24 | RESERVED | R | 0h | Reserved |
| 23-21 | PRI_6 | R/W | 0h | Priority of system handler 6, UsageFault Reset type: CM.SYSRESETn |
| 20-16 | RESERVED | R | 0h | Reserved |
| 15-13 | PRI_5 | R/W | 0h | Priority of system handler 5, BusFault Reset type: CM.SYSRESETn |
| 12-8 | RESERVED | R | 0h | Reserved |
| 7-5 | PRI_4 | R/W | 0h | Priority of system handler 4, MemManage Reset type: CM.SYSRESETn |
| 4-0 | RESERVED | R | 0h | Reserved |
SHPR2 is shown in Figure 41-149 and described in Table 41-162.
Return to the Summary Table.
System Handler Priority Register 2
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| PRI_11 | RESERVED | ||||||||||||||
| R/W-0h | R-0h | ||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | |||||||||||||||
| R-0h | |||||||||||||||
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-29 | PRI_11 | R/W | 0h | Priority of system handler 11, SVCall Reset type: CM.SYSRESETn |
| 28-0 | RESERVED | R | 0h | Reserved |
SHPR3 is shown in Figure 41-150 and described in Table 41-163.
Return to the Summary Table.
System Handler Priority Register 3
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| PRI_15 | RESERVED | PRI_14 | RESERVED | ||||||||||||
| R/W-0h | R-0h | R/W-0h | R-0h | ||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | |||||||||||||||
| R-0h | |||||||||||||||
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-29 | PRI_15 | R/W | 0h | Priority of system handler 15, SysTick exception Reset type: CM.SYSRESETn |
| 28-24 | RESERVED | R | 0h | Reserved |
| 23-21 | PRI_14 | R/W | 0h | Priority of system handler 14, PendSV Reset type: CM.SYSRESETn |
| 20-0 | RESERVED | R | 0h | Reserved |
SHCSRS is shown in Figure 41-151 and described in Table 41-164.
Return to the Summary Table.
System Handler Control and State Register
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| RESERVED | |||||||
| R-0h | |||||||
| 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| RESERVED | USGFAULTENA | BUSFAULTENA | MEMFAULTENA | ||||
| R-0h | R/W-0h | R/W-0h | R/W-0h | ||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| SVCALLPENDED | BUSFAULTPENDED | MEMFAULTPENDED | USGFAULTPENDED | SYSTICKACT | PENDSVACT | RESERVED | MONITORACT |
| R/W-0h | R/W-0h | R/W-0h | R/W-0h | R-0h | R-0h | R-0h | R-0h |
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| SVCALLACT | RESERVED | USGFAULTACT | RESERVED | BUSFAULTACT | MEMFAULTACT | ||
| R-0h | R-0h | R-0h | R-0h | R-0h | R-0h | ||
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-19 | RESERVED | R | 0h | Reserved |
| 18 | USGFAULTENA | R/W | 0h | UsageFault enable bit, set to 1 to enable Note:Enable bits, set to 1 to enable the exception, or set to 0 to disable the exception. Reset type: CM.SYSRESETn |
| 17 | BUSFAULTENA | R/W | 0h | BusFault enable bit, set to 1 to enable Note:Enable bits, set to 1 to enable the exception, or set to 0 to disable the exception. Reset type: CM.SYSRESETn |
| 16 | MEMFAULTENA | R/W | 0h | MemManage enable bit, set to 1 to enable Note:Enable bits, set to 1 to enable the exception, or set to 0 to disable the exception. Reset type: CM.SYSRESETn |
| 15 | SVCALLPENDED | R/W | 0h | SVCall pending bit, reads as 1 if exception is pending Note:Pending bits, read as 1 if the exception is pending, or as 0 if it is not pending. You can write to these bits to change the pending status of the exceptions. Reset type: CM.SYSRESETn |
| 14 | BUSFAULTPENDED | R/W | 0h | BusFault exception pending bit, reads as 1 if exception is pending Note:Pending bits, read as 1 if the exception is pending, or as 0 if it is not pending. You can write to these bits to change the pending status of the exceptions. Reset type: CM.SYSRESETn |
| 13 | MEMFAULTPENDED | R/W | 0h | MemManage exception pending bit, reads as 1 if exception is pending Note:Pending bits, read as 1 if the exception is pending, or as 0 if it is not pending. You can write to these bits to change the pending status of the exceptions. Reset type: CM.SYSRESETn |
| 12 | USGFAULTPENDED | R/W | 0h | UsageFault exception pending bit, reads as 1 if exception is pending Note:Pending bits, read as 1 if the exception is pending, or as 0 if it is not pending. You can write to these bits to change the pending status of the exceptions. Reset type: CM.SYSRESETn |
| 11 | SYSTICKACT | R | 0h | SysTick exception active bit, reads as 1 if exception is active Note:Active bits, read as 1 if the exception is active, or as 0 if it is not active. You can write to these bits to change the active status of the exceptions, but see the Caution below: Software that changes the value of an active bit in this register without correct adjustment to the stacked content can cause the processor to generate a fault exception. Ensure software that writes to this register retains and subsequently restores the current active status. After you have enabled the system handlers, if you have to change the value of a bit in this register you must use a read-modify-write procedure to ensure that you change only the required bit. Reset type: CM.SYSRESETn |
| 10 | PENDSVACT | R | 0h | PendSV exception active bit, reads as 1 if exception is active Note:Active bits, read as 1 if the exception is active, or as 0 if it is not active. You can write to these bits to change the active status of the exceptions, but see the Caution below: Software that changes the value of an active bit in this register without correct adjustment to the stacked content can cause the processor to generate a fault exception. Ensure software that writes to this register retains and subsequently restores the current active status. After you have enabled the system handlers, if you have to change the value of a bit in this register you must use a read-modify-write procedure to ensure that you change only the required bit. Reset type: CM.SYSRESETn |
| 9 | RESERVED | R | 0h | Reserved |
| 8 | MONITORACT | R | 0h | Debug monitor active bit, reads as 1 if Debug monitor is active Note:Active bits, read as 1 if the exception is active, or as 0 if it is not active. You can write to these bits to change the active status of the exceptions, but see the Caution below: Software that changes the value of an active bit in this register without correct adjustment to the stacked content can cause the processor to generate a fault exception. Ensure software that writes to this register retains and subsequently restores the current active status. After you have enabled the system handlers, if you have to change the value of a bit in this register you must use a read-modify-write procedure to ensure that you change only the required bit. Reset type: CM.SYSRESETn |
| 7 | SVCALLACT | R | 0h | SVCall active bit, reads as 1 if SVC call is active Note:Active bits, read as 1 if the exception is active, or as 0 if it is not active. You can write to these bits to change the active status of the exceptions, but see the Caution below: Software that changes the value of an active bit in this register without correct adjustment to the stacked content can cause the processor to generate a fault exception. Ensure software that writes to this register retains and subsequently restores the current active status. After you have enabled the system handlers, if you have to change the value of a bit in this register you must use a read-modify-write procedure to ensure that you change only the required bit. Reset type: CM.SYSRESETn |
| 6-4 | RESERVED | R | 0h | Reserved |
| 3 | USGFAULTACT | R | 0h | UsageFault exception active bit, reads as 1 if exception is active Note:Active bits, read as 1 if the exception is active, or as 0 if it is not active. You can write to these bits to change the active status of the exceptions, but see the Caution below: Software that changes the value of an active bit in this register without correct adjustment to the stacked content can cause the processor to generate a fault exception. Ensure software that writes to this register retains and subsequently restores the current active status. After you have enabled the system handlers, if you have to change the value of a bit in this register you must use a read-modify-write procedure to ensure that you change only the required bit. Reset type: CM.SYSRESETn |
| 2 | RESERVED | R | 0h | Reserved |
| 1 | BUSFAULTACT | R | 0h | BusFault exception active bit, reads as 1 if exception is active Note:Active bits, read as 1 if the exception is active, or as 0 if it is not active. You can write to these bits to change the active status of the exceptions, but see the Caution below: Software that changes the value of an active bit in this register without correct adjustment to the stacked content can cause the processor to generate a fault exception. Ensure software that writes to this register retains and subsequently restores the current active status. After you have enabled the system handlers, if you have to change the value of a bit in this register you must use a read-modify-write procedure to ensure that you change only the required bit. Reset type: CM.SYSRESETn |
| 0 | MEMFAULTACT | R | 0h | MemManage exception active bit, reads as 1 if exception is active Note:Active bits, read as 1 if the exception is active, or as 0 if it is not active. You can write to these bits to change the active status of the exceptions, but see the Caution below: Software that changes the value of an active bit in this register without correct adjustment to the stacked content can cause the processor to generate a fault exception. Ensure software that writes to this register retains and subsequently restores the current active status. After you have enabled the system handlers, if you have to change the value of a bit in this register you must use a read-modify-write procedure to ensure that you change only the required bit. Reset type: CM.SYSRESETn |
CFSR is shown in Figure 41-152 and described in Table 41-165.
Return to the Summary Table.
Configurable Fault Status Register
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| RESERVED | DIVBYZERO | UNALIGNED | |||||
| R-0h | R/W-0h | R/W-0h | |||||
| 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| RESERVED | NOCP | INVPC | INVSTATE | UNDEFINSTR | |||
| R-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | |||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| BFARVALID | RESERVED | RESERVED | STKERR | UNSTKERR | IMPRECISERR | PRECISERR | IBUSERR |
| R/W-0h | R-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h |
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| MMARVALID | RESERVED | RESERVED | MSTKERR | MUNSTKERR | RESERVED | DACCVIOL | IACCVIOL |
| R/W-0h | R-0h | R/W-0h | R/W-0h | R/W-0h | R-0h | R/W-0h | R/W-0h |
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-26 | RESERVED | R | 0h | Reserved |
| 25 | DIVBYZERO | R/W | 0h | Divide by zero UsageFault:
0 = no divide by zero fault, or divide by zero trapping not enabled 1 = the processor has executed an SDIV or UDIV instruction with a divisor of 0. When the processor sets this bit to 1, the PC value stacked for the exception return points to the instruction that performed the divide by zero. Enable trapping of divide by zero by setting the DIV_0_TRP bit in the CCR to 1. Note:The UFSR bits are sticky. This means as one or more fault occurs, the associated bits are set to 1. A bit that is set to 1 is cleared to 0 only by writing 1 to that bit, or by a reset. Reset type: CM.SYSRESETn |
| 24 | UNALIGNED | R/W | 0h | Unaligned access UsageFault:
0 = no unaligned access fault, or unaligned access trapping not enabled 1 = the processor has made an unaligned memory access. Enable trapping of unaligned accesses by setting the UNALIGN_TRP bit in the CCR to 1. Unaligned LDM, STM, LDRD, and STRD instructions always fault irrespective of the setting of UNALIGN_TRP. Note:The UFSR bits are sticky. This means as one or more fault occurs, the associated bits are set to 1. A bit that is set to 1 is cleared to 0 only by writing 1 to that bit, or by a reset. Reset type: CM.SYSRESETn |
| 23-20 | RESERVED | R | 0h | Reserved |
| 19 | NOCP | R/W | 0h | No coprocessor UsageFault. The processor does not support coprocessor instructions:
0 = no UsageFault caused by attempting to access a coprocessor 1 = the processor has attempted to access a coprocessor. Note:The UFSR bits are sticky. This means as one or more fault occurs, the associated bits are set to 1. A bit that is set to 1 is cleared to 0 only by writing 1 to that bit, or by a reset. Reset type: CM.SYSRESETn |
| 18 | INVPC | R/W | 0h | Invalid PC load UsageFault, caused by an invalid PC load by EXC_RETURN:
0 = no invalid PC load UsageFault 1 = the processor has attempted an illegal load of EXC_RETURN to the PC, as a result of an invalid context, or an invalid EXC_RETURN value. When this bit is set to 1, the PC value stacked for the exception return points to the instruction that tried to perform the illegal load of the PC. Note:The UFSR bits are sticky. This means as one or more fault occurs, the associated bits are set to 1. A bit that is set to 1 is cleared to 0 only by writing 1 to that bit, or by a reset. Reset type: CM.SYSRESETn |
| 17 | INVSTATE | R/W | 0h | Invalid state UsageFault:
0 = no invalid state UsageFault 1 = the processor has attempted to execute an instruction that makes illegal use of the EPSR. When this bit is set to 1, the PC value stacked for the exception return points to the instruction that attempted the illegal use of the EPSR. This bit is not set to 1 if an undefined instruction uses the EPSR. Note:The UFSR bits are sticky. This means as one or more fault occurs, the associated bits are set to 1. A bit that is set to 1 is cleared to 0 only by writing 1 to that bit, or by a reset. Reset type: CM.SYSRESETn |
| 16 | UNDEFINSTR | R/W | 0h | Undefined instruction UsageFault:
0 = no undefined instruction UsageFault 1 = the processor has attempted to execute an undefined instruction. When this bit is set to 1, the PC value stacked for the exception return points to the undefined instruction. An undefined instruction is an instruction that the processor cannot decode Note:The UFSR bits are sticky. This means as one or more fault occurs, the associated bits are set to 1. A bit that is set to 1 is cleared to 0 only by writing 1 to that bit, or by a reset. Reset type: CM.SYSRESETn |
| 15 | BFARVALID | R/W | 0h | BusFault Address Register (BFAR) valid flag:
0 = value in BFAR is not a valid fault address 1 = BFAR holds a valid fault address. The processor sets this bit to 1 after a BusFault where the address is known. Other faults can set this bit to 0, such as a MemManage fault occurring later. If a BusFault occurs and is escalated to a hard fault because of priority, the hard fault handler must set this bit to 0. This prevents problems if returning to a stacked active BusFault handler whose BFAR value has been overwritten. Reset type: CM.SYSRESETn |
| 14 | RESERVED | R | 0h | Reserved |
| 13 | RESERVED | R/W | 0h | Reserved |
| 12 | STKERR | R/W | 0h | BusFault on stacking for exception entry:
0 = no stacking fault 1 = stacking for an exception entry has caused one or more BusFaults. When the processor sets this bit to 1, the SP is still adjusted but the values in the context area on the stack might be incorrect. The processor does not write a fault address to the BFAR. Reset type: CM.SYSRESETn |
| 11 | UNSTKERR | R/W | 0h | BusFault on unstacking for a return from exception:
0 = no unstacking fault 1 = unstack for an exception return has caused one or more BusFaults. This fault is chained to the handler. This means that when the processor sets this bit to 1, the original return stack is still present. The processor does not adjust the SP from the failing return, does not performed a new save, and does not write a fault address to the BFAR. Reset type: CM.SYSRESETn |
| 10 | IMPRECISERR | R/W | 0h | Imprecise data bus error:
0 = no imprecise data bus error 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 the processor sets this bit to 1, it does not write a fault address to the BFAR. This is an asynchronous fault. Therefore, if it is detected when the priority of the current process is higher than the BusFault priority, the BusFault 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 BusFault, the handler detects both IMPRECISERR set to 1 and one of the precise fault status bits set to 1. Reset type: CM.SYSRESETn |
| 9 | PRECISERR | R/W | 0h | Precise data bus error:
0 = no precise data bus error 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 the processor sets this bit is 1, it writes the faulting address to the BFAR. Reset type: CM.SYSRESETn |
| 8 | IBUSERR | R/W | 0h | Instruction bus error:
0 = no instruction bus error 1 = instruction bus error. The processor detects the instruction bus error on prefetching an instruction, but it sets the IBUSERR flag to 1 only if it attempts to issue the faulting instruction. When the processor sets this bit is 1, it does not write a fault address to the BFAR. Reset type: CM.SYSRESETn |
| 7 | MMARVALID | R/W | 0h | MemManage Fault Address Register (MMFAR) valid flag..
0 = value in MMAR is not a valid fault address 1 = MMAR holds a valid fault address. If a MemManage fault occurs and is escalated to a HardFault because of priority, the HardFault handler must set this bit to 0. This prevents problems on return to a stacked active MemManage fault handler whose MMAR value has been overwritten. Reset type: CM.SYSRESETn |
| 6 | RESERVED | R | 0h | Reserved |
| 5 | RESERVED | R/W | 0h | Reserved |
| 4 | MSTKERR | R/W | 0h | MemManage fault on stacking for exception entry..
0 = no stacking fault 1 = stacking for an exception entry has caused one or more access violations. When this bit is 1, the SP is still adjusted but the values in the context area on the stack might be incorrect. The processor has not written a fault address to the MMAR. Reset type: CM.SYSRESETn |
| 3 | MUNSTKERR | R/W | 0h | MemManage fault on unstacking for a return from exception..
0 = no unstacking fault 1 = unstack for an exception return has caused one or more access violations. This fault is chained to the handler. This means that when this bit is 1, the original return stack is still present. The processor has not adjusted the SP from the failing return, and has not performed a new save. The processor has not written a fault address to the MMAR. Reset type: CM.SYSRESETn |
| 2 | RESERVED | R | 0h | Reserved |
| 1 | DACCVIOL | R/W | 0h | Data access violation flag..
0 = no data access violation fault 1 = the processor attempted a load or store at a location that does not permit the operation. When this bit is 1, the PC value stacked for the exception return points to the faulting instruction. The processor has loaded the MMAR with the address of the attempted access. Reset type: CM.SYSRESETn |
| 0 | IACCVIOL | R/W | 0h | Instruction access violation flag..
0 = no instruction access violation fault 1 = the processor attempted an instruction fetch from a location that does not permit execution. This fault occurs on any access to an XN region, even when the MPU is disabled or not present. When this bit is 1, the PC value stacked for the exception return points to the faulting instruction. The processor has not written a fault address to the MMAR. Reset type: CM.SYSRESETn |
HFSR is shown in Figure 41-153 and described in Table 41-166.
Return to the Summary Table.
HardFault Status Register
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| DEBUGEVT | FORCED | RESERVED | |||||
| R/W-0h | R/W-0h | R-0h | |||||
| 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| RESERVED | |||||||
| R-0h | |||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| RESERVED | |||||||
| R-0h | |||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | VECTTBL | RESERVED | |||||
| R-0h | R/W-0h | R-0h | |||||
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31 | DEBUGEVT | R/W | 0h | Reserved for Debug use. When writing to the register you must write 0 to this bit, otherwise
behavior is Unpredictable. Reset type: CM.SYSRESETn |
| 30 | FORCED | R/W | 0h | Indicates a forced hard fault, generated by escalation of a fault with configurable priority that
cannot be handles, either because of priority or because it is disabled: 0 = no forced HardFault 1 = forced HardFault. When this bit is set to 1, the HardFault handler must read the other fault status registers to find the cause of the fault. Reset type: CM.SYSRESETn |
| 29-2 | RESERVED | R | 0h | Reserved |
| 1 | VECTTBL | R/W | 0h | Indicates a BusFault on a vector table read during exception processing:
0 = no BusFault on vector table read 1 = BusFault on vector table read. This error is always handled by the hard fault handler. When this bit is set to 1, the PC value stacked for the exception return points to the instruction that was preempted by the exception. Reset type: CM.SYSRESETn |
| 0 | RESERVED | R | 0h | Reserved |
MMFAR is shown in Figure 41-154 and described in Table 41-167.
Return to the Summary Table.
MemManage Fault Address Register
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| ADDRESS | |||||||||||||||||||||||||||||||
| R/W-0h | |||||||||||||||||||||||||||||||
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-0 | ADDRESS | R/W | 0h | When the MMARVALID bit of the MMFSR is set to 1, this field holds the address of the location that generated the MemManage fault Reset type: CM.SYSRESETn |
BFAR is shown in Figure 41-155 and described in Table 41-168.
Return to the Summary Table.
BusFault Address Register
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| ADDRESS | |||||||||||||||||||||||||||||||
| R/W-0h | |||||||||||||||||||||||||||||||
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-0 | ADDRESS | R/W | 0h | When the BFARVALID bit of the BFSR is set to 1, this field holds the address of the location that generated the BusFault Reset type: CM.SYSRESETn |
AFSR is shown in Figure 41-156 and described in Table 41-169.
Return to the Summary Table.
Auxiliary Fault Status Register
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| ADDRESS | |||||||||||||||||||||||||||||||
| R/W-0h | |||||||||||||||||||||||||||||||
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-0 | ADDRESS | R/W | 0h | Implementation defined. The bits map to the AUXFAULT input signals. Reset type: CM.SYSRESETn |