36. Debug support (DBG)
36.1 DBG introduction and main features
A comprehensive set of debug features is provided to support software development and system integration:
- • Breakpoint debugging of the CPU core in the system
- • Code execution tracing
- • Software instrumentation
The debug features can be controlled via a JTAG/Serial-wire debug access port, using industry standard debugging tools. A trace port allows data to be captured for logging and analysis.
The debug features are based on Arm CoreSight™ components.
- • General features:
- – SWJ-DP: JTAG/Serial-wire debug port
- – AHB-AP: AHB access port
- • CPU debug features
- – ROM table (see Section 36.7 )
- – System control space (SCS)
- – Breakpoint unit (FPB) (see Section 36.8 )
- – Data watchpoint and trace unit (DWT) (see Section 36.6 )
- – Instrumentation trace macrocell (ITM) (see Section 36.9 )
- – Trace port interface unit (TPIU) (see Section 36.10 )
CPU debug features are accessible by the debugger via the CPU AHB-AP.
Additional information can be found in the Arm ® documents referenced in Section 36.12 .
Device level debug features are controlled in the DBGMCU (see Section 36.11 ).
36.2 DBG use cases
The trace and debug system is designed to support a variety of typical use cases:
- • Low-cost trace
Limited trace capability is available over the single-wire debug output. This supports code instrumentation using
printf
, tracing of data and address watchpoints, interrupt detection and program counter sampling. Single-wire trace can be maintained even when the processor is switched off or clock-stopped.
- • Breakpoint debugging of the core
The processor core can be debugged using equipment connected to the JTAG/SWD debug port. This enables, among others, breakpoint and watchpoint setting, code stopping and memory access.
- • Tracing code execution via the trace port
Trace information from the CPU (Cortex-M4) is combined into a single trace stream and sent to a trace port analyzer in real time. An ID embedded in the trace allows the analyzer to identify the source of each information packet.
36.3 DBG functional description
36.3.1 DBG block diagram
Figure 370. Block diagram of debug support infrastructure

The diagram illustrates the debug support infrastructure for a CPU Cortex-M4. On the left, the JTAG/Serial-wire port includes pins JTMS/SWDIO, JTDI, JTDO, JTCK/SWCLK, and nJTRST. These are connected to a Debug access port (DAP) containing an SWJ-DP component. The DAP is connected to the CPU via an AHB-AP. The CPU is connected to several Arm CoreSight components: DWT (1) , FPB (1) , ITM (1) , and TPIU (1) . The TPIU is connected to a Trace port with the TRACESWO pin. The CPU is also connected to a ROM table (1) and a DBG_MCU. A legend at the bottom indicates that components marked with (1) are Arm CoreSight components. The reference MSv60365V1 is noted in the bottom right corner.
36.3.2 DBG pins and internal signals
Table 253. JTAG/Serial-wire debug port pins
| Pin name | JTAG debug port | Serial-wire debug port | Pin assignment | ||
|---|---|---|---|---|---|
| Type | Description | Type | Description | ||
| JTMS/SWDIO | I | JTAG test mode select | IO | Serial wire data in/out | PA13 |
| JTCK/SWCLK | I | JTAG test clock | I | Serial wire clock | PA14 |
| JTDI | I | JTAG test data input | - | - | PA15 |
| JTDO/TRACESWO (1) | O | JTAG test data output | - | - | PB3 |
| nJTRST | I | JTAG test reset | - | - | PB4 |
1. Debug access port JTDO and Trace port TRACESWO are multiplexed on a single device GPIO pin.
Table 254. Single-wire trace port pins
| Pin name | Type | Description | Pin assignment |
|---|---|---|---|
| TRACESWO | O | Single wire trace asynchronous data out | PB3 (1) |
1. TRACESWO is multiplexed with JTDO. This means that single-wire trace is only available when using the Serial-wire debug interface, and not when using JTAG.
36.3.3 DBG reset and clocks
The debug port (SWJ-DP) is reset by a power-on reset or an OBL (option byte loading) reset, and when waking up from Standby mode.
The debugger supplies the clock for the debug port via the debug interface pin JTCK/SWCLK. This clock is used to register the serial input data in both Serial-wire and JTAG modes, as well as to operate the state machines and internal logic of the debug port.
It must therefore continue to toggle for several cycles after the end of an access, to ensure that the debug port returns to the idle state.
The SWJ-DP contains an asynchronous interface to the DAPCLK domain, which covers the rest of the SWJ-DP.
The DAPCLK is a gated version of the system HCLK3.
The DAPCLK domain is enabled by the debugger using the CDBGPWRUPREQ bit in the DP_CTRLSTATR register. The clock must be enabled before the debugger can access any of the debug features on the device. The availability of the clock is reflected in the CDBGPWRUPACK bit in the DP_CTRLSTATR register. DAPCLK is disabled at power up, after OBL, and after a wake-up from Standby. DAPCLK must be disabled when the debugger is disconnected to avoid wasting energy.
The debug components included in the processor (such as ITM, DWG, FPB) are clocked with the core clock.
36.3.4 DBG power domains
The debug components are located in the core power domain. This means that debugger connection is not possible in Shutdown or Standby low-power modes. To avoid losing the connection when the device enters Standby mode, it is possible to maintain the power to the core by setting a bit in the microcontroller debug unit (DBGMCU). This also keeps the processor clocks active and hold off the reset, so that the debug session is maintained.
36.3.5 DBG low-power modes
The STM32WLE x devices include power saving features that allow the core power domain to be switched off or stopped when not required. If the power is switched off, or the core is not clocked, all debug components are inaccessible to the debugger. To avoid this, power saving mode emulation has been implemented. If emulation is enabled for a domain, the domain still enters power saving mode, but its clock and power are maintained. In other words, the domain behaves as if it is in power saving mode, but the debugger does not lose the connection.
Emulation mode is programmed in the DBGMCU. For more information refer to Section 36.11: Microcontroller debug unit (DBGMCU) .
36.3.6 Serial-wire and JTAG debug port
The Serial-wire and JTAG debug port (SWJ-DP) is a CoreSight component that implements an external access port for connecting debugging equipment.
The two following types of interface can be configured:
- • a 5-pin standard JTAG interface (JTAG-DP)
- • a 2-pin (clock + data) Serial-wire debug port (SW-DP)
The two modes are mutually exclusive since they share the same I/O pins.
By default the JTAG-DP is selected after a system or a power-on reset. The five I/O pins are configured by hardware in debug alternative function mode.
The SWJ-DP incorporates pull-up resistors on JTDI, JTMS/SWDIO and nJTRST, as well as a pull-down resistor on JTCK/SWCLK.
A debugger can select the SW-DP by transmitting the following serial data sequence on JTMS/SWDIO:
... (50 or more ones) ..., 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, ... (50 or more ones) ...
JTCK/SWCLK must be cycled for each data bit.
In SW-DP mode, the unused JTAG pins JTDI, JTDO and nJTRST can be used for other functions.
Note: All SWJ port I/Os can be reconfigured to other functions by software but debugging is no longer possible.
36.3.7 JTAG debug port
The JTAG debug port (JTAG-DP) implements a TAP state machine (TAPSM) shown in Figure 371 , based on IEEE Std 1149.1-1990. The state machine controls two scan chains, one associated with an instruction register (IR) and the other one with a number of data registers (DR).
Figure 371. JTAG TAP state machine

stateDiagram-v2
[*] --> Test-Logic-Reset: JTMS=1
Test-Logic-Reset --> Run-Test/Idle: JTMS=0
Run-Test/Idle --> Select-DR-Scan: JTMS=1
Run-Test/Idle --> Select-IR-Scan: JTMS=1
Select-DR-Scan --> Capture-DR: JTMS=0
Select-IR-Scan --> Capture-IR: JTMS=0
Capture-DR --> Shift-DR: JTMS=0
Capture-IR --> Shift-IR: JTMS=0
Shift-DR --> Shift-DR: JTMS=0
Shift-DR --> Exit1-DR: JTMS=1
Shift-IR --> Shift-IR: JTMS=0
Shift-IR --> Exit1-IR: JTMS=1
Exit1-DR --> Pause-DR: JTMS=0
Exit1-IR --> Pause-IR: JTMS=0
Pause-DR --> Pause-DR: JTMS=0
Pause-DR --> Exit2-DR: JTMS=1
Pause-IR --> Pause-IR: JTMS=0
Pause-IR --> Exit2-IR: JTMS=1
Exit2-DR --> Update-DR: JTMS=1
Exit2-IR --> Update-IR: JTMS=1
Update-DR --> Run-Test/Idle: JTMS=0
Update-IR --> Run-Test/Idle: JTMS=0
Update-DR --> Select-DR-Scan: JTMS=1
Update-IR --> Select-IR-Scan: JTMS=1
MSV60366V1
The operation of the JTAG-DP is as follows:
- • When the TAPSM goes through the Capture-IR state, 0b0001 is transferred onto the instruction register (IR) scan chain. The IR scan chain is connected between JTDI and JTDO.
- • While the TAPSM is in the Shift-IR state, the IR scan chain shifts one bit for each rising edge of JTCK. This means that, on the first tick:
- – The LSB of the IR scan chain is output on JTDO.
- – Bit[n] of the IR scan chain is transferred to bit[n-1].
- – The value on JTDI is transferred to the MSB of the IR scan chain.
- • When the TAPSM goes through the Update-IR state, the value scanned into the IR scan chain is transferred into the instruction register.
- • When the TAPSM goes through the Capture-DR state, a value is transferred from one of the data registers onto one of the DR scan chains, connected between JTDI and JTDO.
- • The value held in the instruction register determines which data register and associated DR scan chain are selected.
- • This data is then shifted while the TAPSM is in the Shift-DR state, in the same manner as the IR shift in the Shift-IR state.
- • When the TAPSM goes through the Update-DR state, the value scanned into the DR scan chain is transferred into the selected data register.
- • When the TAPSM is in the Run-Test/Idle state, no special actions occur. The IDCODE instruction is loaded in the instruction register.
When active, the nJTRST signal resets the state machine asynchronously to the Test-Logic-Reset state.
The data registers corresponding to the 4-bit IR instructions are listed in Table 255 .
Table 255. JTAG-DP data registers
| IR instruction | Data register | Scan chain length | Description |
|---|---|---|---|
| 0000 to 0111 | (BYPASS) | 1 | Not implemented: BYPASS selected |
| 1000 | ABORT | 35 | ABORT register – Bits 34:1 = Reserved – Bit 0 = APABORT: write 1 to generate an AP abort. |
| 1001 | (BYPASS) | 1 | Reserved: BYPASS selected |
| 1010 | DPACC | 35 | Debug port access register Initiates the debug port and gives access to a debug port register. – When transferring data IN: Bits 34:3 = DATA[31:0] = 32-bit data to transfer for a write request Bits 2:1 = A[3:2] = 2-bit address of a debug port register Bit 0 = RnW = Read request (1) or write request (0) – When transferring data OUT: Bits 34:3 = DATA[31:0] = 32-bit data read following a read request Bits 2:0 = ACK[2:0] = 3-bit Acknowledge 010 = OK/FAULT 001 = WAIT OTHER = reserved |
| 1011 | APACC | 35 | Access port access register Initiates an access port and gives access to an access port register. – When transferring data IN: Bits 34:3 = DATA[31:0] = 32-bit data to shift in for a write request Bits 2:1 = A[3:2] = 2-bit sub-address of an access port register Bit 0 = RnW = Read request (1) or write request (0) – When transferring data OUT: Bits 34:3 = DATA[31:0] = 32-bit data read following a read request Bits 2:0 = ACK[2:0] = 3-bit Acknowledge 010 = OK/FAULT 001 = WAIT OTHER = reserved |
| 1100 | (BYPASS) | 1 | Reserved: BYPASS selected |
| 1101 | (BYPASS) | 1 | Reserved: BYPASS selected |
Table 255. JTAG-DP data registers (continued)
| IR instruction | Data register | Scan chain length | Description |
|---|---|---|---|
| 1110 | IDCODE | 32 | ID code 0x6BA0 0477: Arm® JTAG debug port ID code |
| 1111 | BYPASS | 1 | Bypass A single JTC clock cycle delay is inserted between JTDI and JTDO. |
Data registers are described in more detail in the Arm® Debug Interface Architecture Specification [1].
36.3.8 Serial-wire debug port
The Serial-wire debug (SWD) protocol uses the two following pins:
- • SWCLK: clock from host to target
- • SWDIO: bi-directional serial data (100 k \( \Omega \) pull-up required)
Serial data is transferred LSB first, synchronously with the clock.
Each transfer comprises the three phases listed below:
- 1. a packet request (8 bits) transmitted by the host (see Table 256 )
- 2. an acknowledge response (3 bits) transmitted by the target (see Table 257 )
- 3. data transfer (33 bits) transmitted by the host (in case of a write) or by the target (in case of a read) (see Table 258 )
The data transfer only occurs if the acknowledge response is OK.
Between each phase, if the direction of the data is reversed, a single clock cycle turn-around time is inserted.
Table 256. Packet request
| Bit field | Name | Description |
|---|---|---|
| 0 | Start | Must be 1. |
| 1 | APnDP | – 0: DP register access - see
Table 255
for a list of DP registers – 1: AP register access - see Section 36.5: Access port |
| 2 | RnW | – 0: Write request – 1: Read request |
| 4:3 | A(3:2) | Address field of the DP or AP registers |
| 5 | Parity | Single bit parity of preceding bits |
| 6 | Stop | 0 |
| 7 | Park | Not driven by host, must be read as 1 by the target. |
Table 257. ACK response
| Bit field | Name | Description |
|---|---|---|
| 2:0 | ACK |
|
Table 258. Data transfer
| Bit field | Name | Description |
|---|---|---|
| 31:0 | WDATA or RDATA | Write or read data |
| 32 | Parity | Single bit parity of 32 data bits |
In the case of a FAULT or WAIT ACK response from the target, the data transfer phase is canceled, unless overrun detection is enabled: in this case the data is ignored by the target (in the case of a write), or not driven (in the case of a read).
A line reset must be generated by the host when it is first connected, or following a protocol error. The line reset consists in 50 or more SWCLK cycles with SWDIO high, followed by two SWCLK cycles with SWDIO low.
For more details on the Serial-wire debug protocol, refer to the Arm® Debug Interface Architecture Specification [1].
Note: The SWJ-DP implements SWD protocol version 2.
36.4 Debug port (DP) registers
Both SW-DP and JTAG-DP access the DP registers listed in Table 260: DP register map and reset values .
The debugger accesses the DP registers as follows:
- • Program the A(3:2) field in the DPACC register, if using JTAG, with the register address within the bank. Program the RnW bit to select a read or write. In the case of a write, program the DATA field with the write data. If using SWD, the A(3:2) and RnW fields are part of the packet request word sent to the SW-DP with the APnDP bit reset (see Table 256 ). The write data are sent in the data phase.
- • To access one of the banked DP registers at address 0x4, the register number must first be written to the DP_SELECTR register at address 0x8. Any subsequent read or write to address 0x4 accesses the register corresponding to the content of the DP_SELECTR register.
Table 259. Debug port registers
| Address | A(3:2) value | R/W | Description |
|---|---|---|---|
| 0x0 | 00 | R | DP_DIPDR register (see
Section 36.4.1
) Contains the IDCODE for the debug port. |
| W | DP_ABORTR register
(1)
(see
Section 36.4.2
) Aborts the current AP transaction. This register is also used to clear the error flags in the DP_CTRLSTATR register. | ||
| 0x4 | 01 | R/W | If DP_SELECTR.DPBANKSEL = 0, DP_CTRLSTATR register (see
Section 36.4.3
) Controls the DP and provides status information. |
| If DP_SELECTR.DPBANKSEL = 1, DP_DLCR register
(2)
(see
Section 36.4.4
) Controls the operating mode of the SWD data link. | |||
| If DP_SELECTR.DPBANKSEL = 2, DP_TARGETIDR register (see
Section 36.4.5
) Provides target identification information. | |||
| If DP_SELECTR.DPBANKSEL = 3, DP_DLPIDR register
(2)
(see
Section 36.4.6
) Provides the SWD protocol version. | |||
| 0x8 | 10 | R | DP_RESENR register
(2)
(see
Section 36.4.7
) Returns the value returned by the last AP read or DP_RDBUFFR read. Used in the event of a corrupted read transfer. |
| W | DP_SELECTR register (see
Section 36.4.8
) Selects the access port, access port register bank, and DP register at address 0x4. | ||
| 0xC | 11 | R | DP_BUFFR register (see
Section 36.4.9
) – Via JTAG-DP - Used to allow the debugger to get the final result after a sequence of operations (without requesting new JTAG-DP operation). – Via SW-DP - Contains the result of the preceding AP read access, allowing a new AP access to be avoided. |
| W | DP_TARGETSELR register
(2)
(see
Section 36.4.10
) On a write to DP_TARGETSELR immediately following a line reset sequence, the target is selected if both the following conditions are met: – Bits [31:28] match bits [31:28] in the DP_DLPIDR register. – Bits [27:0] match bits [27:0] in the DP_TARGETIDR register. Writing any other value de-selects the target. Debug tools must write 0xFFFFFFFF to de-select all targets. This is an invalid TARGETID value. All other invalid TARGETID values are reserved. |
1. Access to the DP_ABORTR register from the JTAG-DP is done using the ABORT instruction.
2. Only accessible via SW-DP. Register is “reserved” via JTAG-DP.
36.4.1 DP identification register (DP_PIDR)
Address offset: 0x00
Reset value: 0x5BA0 2477
Read only
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| REVISION[3:0] | PARTNO[7:0] | Res. | Res. | Res. | MIN | ||||||||||
| r | r | r | r | r | r | r | r | r | r | r | r | r | |||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| VERSION[3:0] | DESIGNER[10:0] | Res. | |||||||||||||
| r | r | r | r | r | r | r | r | r | r | r | r | r | r | r | |
Bits 31:28 REVISION[3:0] : revision code
0x5
Bits 27:20 PARTNO[7:0] : part number for the debug port
0xBA
Bits 19:17 Reserved, must be kept at reset value.
Bit 16 MIN : minimal debug port (MINDP) implementation
0x0: MINDP not implemented (transaction counter and pushed operations are supported)
Bits 15:12 VERSION[3:0] : DP architecture version
0x2: DPv2
Bits 11:1 DESIGNER[10:0] : JEDEC designer identity code
0x23B: Arm® JEDEC code
Bit 0 Reserved, must be kept at reset value.
36.4.2 DP abort register (DP_ABORTR)
Address offset: 0x00
Reset value: 0x0000 0000
Write only
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | ORUN ERR CLR | WD ERR CLR | STK ERR CLR | STK CMP CLR | DAP ABORT |
| w | w | w | w | w |
Bits 31:5 Reserved, must be kept at reset value.
Bit 4 ORUNERRCLR : overrun error clear
0: No effect
1: Clears DP_CTRLSTATR.STICKYORUN bit.
Bit 3 WDERRCLR : write data error clear
0: No effect
1: Clears DP_CTRLSTATR.WDATAERR bit.
Bit 2 STKERRCLR : sticky error clear
0: No effect
1: Clears DP_CTRLSTATR.STICKYERR bit.
Bit 1 STKMPCLR : sticky compare clear
0: No effect
1: Clears DP_CTRLSTATR.STICKYCMP bit
Bit 0 DAPABORT : data AP abort
Aborts current AP transaction if an excessive number of WAIT responses are returned, indicating that the transaction is stalled.
0: No effect
1: Aborts the transaction.
36.4.3 DP control and status register (DP_CTRLSTATR)
Address offset: 0x04
and DP_SELECTR.DPBANKSEL = 0
Reset value: 0x0000 0000
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Res. | Res. | CDBG PWRU PACK | CDBG PWRU PREQ | Res. | Res. | Res. | Res. | TRNCNT[11:4] | |||||||
| r | r | r | r | r | r | r | r | r | r | ||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| TRNCNT[3:0] | MASKLANE[3:0] | WDATA ERR | READ OK | STICK YERR | STICK YCMP | TRNMODE[1:0] | STICK YORU N | ORUN DETEC T | |||||||
| r | r | r | r | r | r | r | r | r | r | rc_w1 | rc_w1 | r | r | rc_w1 | r |
Bits 31:30 Reserved, must be kept at reset value.
Bit 29 CDBGPWRUPACK : see description in Section 36.3.6
0 = DAPCLK gated
1 = DAPCLK enabled
Bit 28 CDBGPWRUPREQ : control of DAPCLK enable request signal
0 = Requests DAPCLK gating
1 = Requests DAPCLK enabled
Bits 27:24 Reserved, must be kept at reset value.
Bits 23:12 TRNCNT[11:0] : transaction counter
To program a sequence of transactions to incremental addresses via an AP, TRNCNT is loaded with the number of transactions to perform. It is decremented at the successful completion of each transaction.
Bits 11:8 MASKLANE[3:0] : masked byte lanesIndicates the bytes to be masked in pushed-compare and pushed-verify operations (DP_CTRLSTATR.TRNMODE = 1 or 2). In the pushed operations, the word supplied in an AP write transaction is compared with the current value at the target AP address.
1XXX = includes byte lane 3 in comparisons.
X1XX = includes byte lane 2 in comparisons.
XX1X = includes byte lane 1 in comparisons.
XXX1 = includes byte lane 0 in comparisons.
Bit 7 WDATAERR : write data error (read only) in SW-DPThere is a parity or framing error on the data phase of a write, or a write that has been accepted by the DP is then discarded without being submitted to the AP.
This bit is reset by writing 1 to the DP_ABORTR.WDERRCLR bit.
0: No error
1: An error occurred.
Reserved in JTAG-DP.
Bit 6 READOK : AP read response (read only) in SW-DPIndicates the response to the last AP read access.
0: Read not OK
1: Read OK
Reserved in JTAG-DP.
Bit 5 STICKYERR : transaction error (read only in SW-DP, R/W in JTAG-DP)Indicates that an error occurred in an AP transaction.
0: No error
1: An error occurred.
In SW-DP, STICKYERR bit is read only, reset by writing 1 to the DP_ABORTR.STKERRCLR bit.
In JTAG-DP, STICKYERR bit is read, cleared by writing a 1 to it.
Bit 4 STICKYCMP : match comparison (read only in SW-DP, R/W in JTAG-DP)Indicates that a match occurred in a pushed operation.
0: match if TRNMODE = 0x1; no match if TRNMODE = 0x2
1: no match if TRNMODE = 0x1; match if TRNMODE = 0x2
In SW-DP, STICKYCMP bit is read only, reset by writing 1 to the DP_ABORTR.STKCMPCLR bit.
In JTAG-DP, STICKYCMP bit is read, cleared by writing a 1 to it.
Bits 3:2 TRNMODE[1:0] : transfer mode for AP write operations
For read operations, this field must be set to 0x0.
0x0: Normal operation
- – AP transactions are passed directly to the AP.
0x1: Pushed-verify operation
- – The DP stores the write data and performs a read transaction at the target AP address.
- – The result of the read is compared with the stored data and if they do not match, the STICKYCMP bit is set.
0x2: Pushed-compare operation
- – The DP stores the write data and performs a read transaction at the target AP address.
- – The result of the read is compared with the stored data and if they match, the STICKYCMP bit is set.
0x3: reserved
In pushed operation, only the data bytes indicated by the MASKLANE field are included in the compare.
Bit 1 STICKYORUN : overrun (read only in SW-DP, R/W in JTAG-DP)
Indicates that an overrun occurred (new transaction received before previous transaction completed). This bit is only set if the ORUNDETECT bit is set.
0: No overrun
1: An overrun occurred.
In SW-DP, STICKYORUN bit is read only, reset by writing 1 to the DP_ABORTR.ORUNERRCLR bit.
In JTAG-DP, STICKYORUN bit is read, cleared by writing a 1 to it.
Bit 0 ORUNDETECT : overrun detection mode enable
0: Overrun detection disabled
1: Overrun detection enabled
In the event of an overrun, the STICKYORUN bit is set and subsequent transactions are blocked until the STICKYORUN bit is cleared.
36.4.4 DP data link control register (DP_DLCR)
Address offset: 0x04
and DP_SELECTR.DPBANKSEL = 1
Reset value: 0x0000 0040
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Res. | Res. | Res. | Res. | Res. | Res. | TURNROUND [1:0] | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | |
| r | r | ||||||||||||||
Bits 31:10 Reserved, must be kept at reset value.
Bits 9:8 TURNROUND[1:0] : tristate period for SWDIO
- 0x0: 1 data bit period
- 0x1: 2 data bit periods
- 0x2: 3 data bit periods
- 0x3: 4 data bit periods
Bits 7:0 Reserved, must be kept at reset value.
36.4.5 DP target identification register (DP_TARGETIDR)
Address offset: 0x04
and DP_SELECTR.DPBANKSEL = 2
Reset value: 0x0497 0041
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| TREVISION[3:0] | TPARTNO[15:4] | ||||||||||||||
| r | r | r | r | r | r | r | r | r | r | r | r | r | r | r | r |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| TPARTNO[3:0] | TDESIGNER[10:0] | Res. | |||||||||||||
| r | r | r | r | r | r | r | r | r | r | r | r | r | r | r | |
Bits 31:28 TREVISION[3:0] : target revision
0x0: revision 1
Bits 27:12 TPARTNO[15:0] : target part number
0x4970: STM32WLEx
Bits 11:1 TDESIGNER[10:0] : target designer JEDEC code.
0x020: STMicroelectronics
Bit 0 Reserved, must be kept at reset value.
36.4.6 DP data link protocol identification register (DP_DLPIDR)
Address offset: 0x04
and DP_SELECTR.DPBANKSEL = 3
Reset value: 0x0000 0001
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| TINSTANCE[3:0] | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | |||
| r | r | r | r | ||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | PROTSVN[3:0] | |||
| r | r | r | r | ||||||||||||
Bits 31:28 TINSTANCE[3:0] : target instance number
Defines the instance number for this device in a multi-drop system.
0x0: Instance number 0
Bits 27:4 Reserved, must be kept at reset value.
Bits 3:0
PROTSVN[3:0]
: Serial-wire debug protocol version
0x1: Version 2
36.4.7 DP resend register (DP_RESENDR)
Address offset: 0x08
Reset value: 0x0000 0000

| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| RESEND[31:16] | |||||||||||||||
| r | r | r | r | r | r | r | r | r | r | r | r | r | r | r | r |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESEND[15:0] | |||||||||||||||
| r | r | r | r | r | r | r | r | r | r | r | r | r | r | r | r |
Bits 31:0 RESEND[31:0] : Returns the value that was returned by the last AP read or DP_RDBUFR read.
Used in the event of a corrupted read transfer.
36.4.8 DP access port select register (DP_SELECTR)
Address offset: 0x08
Reset value: 0xXXXX XXXX

| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| APSEL[3:0] | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | |||
| w | w | w | w | ||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | APBANKSEL[3:0] | DPBANKSEL[3:0] | ||||||
| w | w | w | w | w | w | w | w | ||||||||
Bits 31:28 APSEL[3:0] : access port selection
Selects the access port for the next transaction.
- 0x0: AP0 - CPU (Cortex-M4) debug access port (AHB-AP)
- 0x1 to 0xF: reserved
Bits 27:8 Reserved, must be kept at reset value.
Bits 7:4 APBANKSEL[3:0] : AP register bank selection
Selects the 4-word register bank on the active AP for the next transaction.
Bits 3:0 DPBANKSEL[3:0] : DP register bank selection
Selects the register at address 0x4 of the debug port.
- 0x0: DP_CTRLSTATR
- 0x1: DP_DLCR
- 0x2: DP_TARGETIDR
- 0x3: DP_DLPIDR
- 0x4 to 0xF: reserved
36.4.9 DP read buffer register (DP_BUFFR)
Address offset: 0x0C
Reset value: 0x0000 0000
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| RDBUFF[31:16] | |||||||||||||||
| r | r | r | r | r | r | r | r | r | r | r | r | r | r | r | r |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RDBUFF[15:0] | |||||||||||||||
| r | r | r | r | r | r | r | r | r | r | r | r | r | r | r | r |
Bits 31:0 RDBUFF[31:0] : Contains the value returned by the last AP read access.
The value returned by an AP read access can either be obtained using a second read access to the same address, which initiates a new transaction on the corresponding bus, or else it can be read from this register, in which case no new AP transaction occurs.
36.4.10 DP target identification register (DP_TARGETSELR)
Address offset: 0x0C
Reset value: 0xXXXX XXXX
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| TINSTANCE[3:0] | TPARTNO[15:4] | ||||||||||||||
| w | w | w | w | w | w | w | w | w | w | w | w | w | w | w | w |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| TPARTNO[3:0] | TDESIGNER[10:0] | Res. | |||||||||||||
| w | w | w | w | w | w | w | w | w | w | w | w | w | w | w | |
Bits 31:28 TINSTANCE[3:0] : target instance number
Defines the instance number for the target device in a multi-drop system. These bits must be written with the same value used for DP_DLPIDR.TINSTANCE to select this device.
Bits 27:12 TPARTNO[15:0] : target part number
Defines the part number for the target device. These bits must be written with the same value used for DP_TARGETIDR.TPARTNO to select this device.
Bits 11:1 TDESIGNER[10:0] : target designer JEDEC code
Defines the JEDEC code for the target device. These bits must be written with the same value used for DP_TARGETIDR.TDESIGNER to select this device.
Bit 0 Reserved, must be kept at reset value.
36.4.11 DP register map and reset values
These registers are not on the CPU memory bus and are only accessed through SW-DP and JTAG-DP debug interface.
The debug port address is 2-bit wide, defined in the JTAG-DP register DPACC or SW-DP packet request A[3:2] field.
Table 260. DP register map and reset values
| Offset | Register name | 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 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0x00 | DP_DPIDR | REVISION[3:0] | PARTNO[7:0] | Res. | Res. | Res. | MIN | VERSION[3:0] | DESIGNER[10:0] | Res. | |||||||||||||||||||||||
| Reset value | 0 | 1 | 0 | 1 | 1 | 0 | 1 | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 1 | 1 | 1 | 0 | 1 | 1 | |||||
| 0x00 | DP_ABORTR | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | ORUNERRCLR | WDERRCLR | STKERRCLR | STKCMPCLR | DAPABORT |
| Reset value | 0 | 0 | 0 | 0 | 0 | ||||||||||||||||||||||||||||
| 0x04 (1) | DP_CTRLSTATR | Res. | Res. | CDBGPWRUPACK | CDBGPWRUPREQ | Res. | Res. | Res. | Res. | TRNCNT[11:0] | MASKLANE[3:0] | WDATAERR | READOK | STICKYERR | STICKYCMP | TRNMODE[1:0] | STICKYORUN | ORUNDETECT | |||||||||||||||
| Reset value | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||||||
| 0x04 (2) | DP_DLCR | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | TURNROUND[1:0] | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | |
| Reset value | 0 | 0 | |||||||||||||||||||||||||||||||
| 0x04 (3) | DP_TARGETIDR | TREVISION[3:0] | TPARTNO[15:0] | TDESIGNER[10:0] | Res. | ||||||||||||||||||||||||||||
| Reset value | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | |
| 0x04 (4) | DP_DLPIDR | TINSTANCE[3:0] | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | PROTSVN[3:0] | ||||||
| Reset value | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | |||||||||||||||||||||||||
| 0x08 | DP_RESENDR | RESEND[31:0] | |||||||||||||||||||||||||||||||
| Reset value | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |
Table 260. DP register map and reset values (continued)
| Offset | Register name | 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 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0x08 | DP_SELECTR | APSEL[3:0] | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | APBANKSEL[3:0] | DPBANKSEL[3:0] | |||||||||
| Reset value | x | x | x | x | x | x | x | x | x | x | x | x | x | ||||||||||||||||||||
| 0x0C | DP_BUFFR | RDBUFF[31:0] | |||||||||||||||||||||||||||||||
| Reset value | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |
| 0x0C | DP_TARGETSELR | TINSTANCE[3:0] | TPARTNO[15:0] | Res. | |||||||||||||||||||||||||||||
| Reset value | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | |
- 1. DP_SELECTR.DPBANKSEL = 0.
- 2. DP_SELECTR.DPBANKSEL = 1.
- 3. DP_SELECTR.DPBANKSEL = 2.
- 4. DP_SELECTR.DPBANKSEL = 3.
36.5 Access port
As shown in Figure 372, there is one access port (AP) attached to the DP:
- • AP0 , CPU (Cortex-M4) access port (AHB-AP): enables access to the debug and trace features integrated in the core via its internal AHB bus.
The access port is of MEM-AP type, that is to say the debug and trace component registers are mapped in the address space of the associated debug bus.
AP is seen by the debugger as a set of 32-bit registers organized in banks of four registers each. Some of these registers are used to configure or monitor the AP itself, while others are used to perform a transfer on the bus.
The AP registers are listed in Table 262: AP register map and reset values.
Figure 372. Debug and access port connections

graph LR
JTAG/SWD <--> SWJ-DP
SWJ-DP <-->|DAPBUS| AP0["AP0 (AHB-AP)"]
AP0 <--> CPU["CPU Cortex-M4"]
MSV60368V1
The address of the AP registers is composed as follows:
- • Bits [7:4]: content of the APBANKSEL[3:0] field in the DP_SELECTR register (see Section 36.4.8 )
- • Bits [3:2]: content of the A(3:2) field of the APACC data register in the JTAG-DP (see Table 260: DP register map and reset values ) or of the SW-DP packet request (see Table 256: Packet request ), depending on the debug interface used
- • Bits [1:0]: always set to 0
The content of the APSEL[3:0] field of the DP_SELECTR register defines which MEM-AP is being accessed.
Table 261. MEM-AP registers
| Address | APBANKSEL | A(3:2) | Name | Description |
|---|---|---|---|---|
| 0x00 | 0x0 | 0 | AP_CSWR | Control/status word register (see Section 36.5.1 ) |
| 0x04 | 0x0 | 1 | AP_TAR | Transfer address register (see
Section 36.5.2
) Target address for the bus transaction |
| 0x08 | - | - | - | Reserved |
| 0x0C | 0x0 | 3 | AP_DRWR | Data read/write register (see
Section 36.5.3
) Access to this register triggers a corresponding transaction on the debug bus to the address in AP_TAR[31:0]. |
| 0x10 | 0x1 | 0 | AP_BD0R | Banked data 0 register (see
Section 36.5.4
) Access to this register triggers a corresponding transaction on the debug bus to the address in Address [31:4] = AP_TAR[31:4], address [3:0] = 0x0. |
| 0x14 | 0x1 | 1 | AP_BD1R | Banked data 1 register (see
Section 36.5.4
) Access to this register triggers a corresponding transaction on the debug bus to the address in Address [31:4] = AP_TAR[31:4], address [3:0] = 0x4. |
| 0x18 | 0x1 | 2 | AP_BD2R | Banked data 2 register (see
Section 36.5.4
) Access to this register triggers a corresponding transaction on the debug bus to the address in Address [31:4] = AP_TAR[31:4], address [3:0] = 0x8. |
| 0x1C | 0x1 | 3 | AP_BD3R | Banked data 3 register (see
Section 36.5.4
) Access to this register triggers a corresponding transaction on the debug bus to the address in Address [31:4] = AP_TAR[31:4], address [3:0] = 0xC. |
| 0x20 | - | - | - | Reserved |
| 0x24 to 0xEC | - | - | - | Reserved |
| 0xF0 | - | - | - | Reserved |
| 0xF4 | - | - | - | Reserved |
| 0xF8 | 0xF | 2 | AP_BASER | Debug base address register (RO) (see
Section 36.5.5
) Base address of the ROM table |
| 0xFC | 0xF | 3 | AP_IDR | Identification register (RO) (see Section 36.5.6 ) |
The debugger can access the AP registers as follows:
- 1. Program in the DP_SELECTR register, the APSEL(3:0) field to choose the AP and the APBANKSEL[3:0] field to select the register bank to be accessed (see Section 36.4.8 ).
- 2. Program the A(3:2) field in the APACC register, if using JTAG, with the register address within the bank. Program the RnW bit to select a read or write. In the case of a write, program the DATA field with the write data. If using SWD, the A(3:2) and RnW fields are part of the packet request word sent to the SW-DP with the APnDP bit set (see Table 256: Packet request ). The write data is sent in the data phase.
The debugger can access the memory mapped debug component registers through the MEM-AP registers (using the above AP register access procedure) as follows:
- 1. Program the transaction target address in the AP_TAR register.
- 2. Program the AP_CSWR register, if necessary, with the transfer parameters (AddrInc for example).
- 3. Write to or read from the AP_DRWR register to initiate a bus transaction at the address held in the AP_TAR register. Alternatively, a read or write to the AP_BDxR register triggers an access to address \( AP\_TAR[31:4] + x \) (allowing up to four consecutive addresses to be accessed without changing the address in the AP_TAR register).
Figure 373 shows how the MEM-AP is used to connect the debug port to the debug components (in this example a processor and a ROM table).
For more detailed information on the MEM-AP, refer to the Arm ® Debug Interface Architecture Specification [1] .
Figure 373. Debugger connection to debug components

The diagram illustrates the internal architecture of the debug components and their interconnections:
- DPACC (Debug Port Access Controller): Contains a register with fields Data[31:0], A[3:2], and RnW. It is connected to a set of DP registers (Data link defined, Control/status (CTRLSTAT), AP select (SELECT), Read buffer (RDBUFF)).
- APACC (Access Port Access Controller): Contains a register with fields Data[31:0], A[3:2], and RnW. It is connected to an AP register with fields Data [31:0], A[7:4], A[3:2], and RnW. A note indicates: "A[7:4] selects the register bank. A[3:2] selects a register within bank."
- APSEL decode: Receives input from the AP register and sends it to the Address incrementer .
- Address incrementer: Sends data to the Memory access port (MEM-AP) .
- Memory access port (MEM-AP): Contains multiple banks (Bank 0x0, Bank 0x1, ..., Bank 0xF). Each bank has a structure: Control/status word (CSW), Transfer address (TAR), Reserved, and Data read/write (DRW). It is connected to the AP register and the Debug access decode .
- Debug access decode: Receives input from the MEM-AP and sends it to the Processor 4-Kbyte block and the ROM table 4-Kbyte block .
- Processor 4-Kbyte block: Contains registers: Register 0 (0x000), Register 1 (0x004), Register 2 (0x008), Register 3 (0x00C), ..., Register 1023 (0xFFC).
- ROM table 4-Kbyte block: Contains: Processor address (0x000), Reserved (0x004), 0x0000 0000 (0x008), Reserved (0x00C), ...
Connections:
- Debug port: Connects to DPACC and APACC.
- AP access: Connects to the AP register.
- Memory access port: Connects to the MEM-AP.
- Resource-specific transport: Connects the MEM-AP to the Debug register files.
- Debug register files: Contains the Processor 4-Kbyte block and the ROM table 4-Kbyte block.
(1) This is only a partial view of the DP registers (refer to the DP registers descriptions for more details).
(2) Register field widths are not to scale. For example, RnW is a single bit.
MSV60375V1
36.5.1 AP control/status word register (AP_CSWR)
Address offset: 0x00
Reset value: 0x2300 0040
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Res. | SPROT | Res. | PROT[4:0] | SPISTA TUS | Res. | Res. | Res. | Res. | Res. | Res. | Res. | ||||
| r | r | r | r | r | r | r | |||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Res. | Res. | Res. | Res. | MODE[3:0] | TRINP ROG | DEVIC EEN | ADDRINC[1:0] | Res. | SIZE[2:0] | ||||||
| r | r | r | r | r | r | r | r | r | r | r | |||||
Bit 31 Reserved, must be kept at reset value.
Bit 30 SPROT : secure transfer request
In the AHB-APs, this field sets the protection attribute HPROT[6] of the bus transfer.
0: If SPIDEN is high, secure transfer. If SPIDEN is low, non-secure transfer
1: Non-secure transfer
Bit 29 Reserved, must be kept at reset value.
Bits 28:24 PROT[4:0] : bus transfer protection
In the AHB-APs, this field sets the protection attributes HPROT[4:0] of the bus transfer.
XXXX0: Instruction fetch
XXXX1: Data access
XXX0X: User mode
XXX1X: Privileged mode
XX0XX: Non-bufferable
XX1XX: Bufferable
X0XXX: Non-cacheable
X1XXX: Cacheable
0XXXX: Non-exclusive
1XXXX: Exclusive
Bit 23 SPISTATUS : status of SPIDEN option bit (read only)
This signal determines whether the debugger can access secure memory.
0: Secure AHB transfers blocked
1: Secure AHB transfers allowed
Bits 22:12 Reserved, must be kept at reset value.
Bits 11:8 MODE[3:0] : barrier support enabled
Defines if memory barrier operation is supported.
0x0: Not supported
Bit 7 TRINPROG : transfer in progress (read only)
Indicates if a bus transfer is in progress on the AP.
0x0: No transfer in progress
0x1: Bus transfer in progress
Bit 6 DEVICEEN : device enabled (read only)
Defines whether the AP can be accessed.
0x1: AP access enabled
Bits 5:4 ADDRINC[1:0] : auto-increment mode
Defines whether AP_TAR address is automatically incremented after a transaction.
0x0: No auto-increment
0x1: Address is incremented by the size in bytes of the transaction (SIZE field).
0x2: Packed transfers enabled
- – A 32-bit AP access gives rise to 1 x 32-bit, 2 x 16-bit or 4 x 8-bit bus transactions corresponding to the programmed transaction size.
- – The data is packed or unpacked accordingly.
0x3: reserved
Bit 3 Reserved, must be kept at reset value.
Bits 2:0 SIZE[2:0] : size of next memory access transaction
0x0: Byte (8-bit)
0x1: Halfword (16-bit)
0x2: Word (32-bit)
0x3-0x7: reserved
36.5.2 AP transfer address register (AP_TAR)
Address offset: 0x04
Reset value: 0x0000 0000

| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| TA[31:16] | |||||||||||||||
| rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| TA[15:0] | |||||||||||||||
| rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw |
Bits 31:0 TA[31:0] : address of current transfer
36.5.3 AP data read/write register (AP_DRWR)
Address offset: 0x0C
Reset value: 0x0000 0000

| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| TD[31:16] | |||||||||||||||
| rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| TD[15:0] | |||||||||||||||
| rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw |
Bits 31:0 TD[31:0] : data of current transfer
36.5.4 AP banked data registers x (AP_BDxR)
Address offset: 0x10 + 0x04 * x, (x=0 to 3)
Reset value: 0x0000 0000
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| TBD[31:16] | |||||||||||||||
| rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| TBD[15:0] | |||||||||||||||
| rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw |
Bits 31:0
TBD[31:0]
: banked data of current transfer to address AP_TAR.TA
TA + AP_BDnR address [3:2] + 0b00
Auto address incrementing is not performed on AP_BD[3:0]R.
Banked transfers are only supported for word transfers.
36.5.5 AP base address register (AP_BASER)
Address offset: 0xF8
Reset value: 0xE00F F003
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| BASEADDR[19:4] | |||||||||||||||
| r | r | r | r | r | r | r | r | r | r | r | r | r | r | r | r |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| BASEADDR[3:0] | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | FORM AT | ENTRY PRESE NT | |||
| r | r | r | r | r | r | ||||||||||
Bits 31:12
BASEADDR[19:0]
: base address (bits 31 to 12) of ROM table for the AP
The 12 LSBs are zero since the ROM table must be aligned on a 4-Kbyte boundary.
AP0 CPU (Cortex-M4) AHB-AP: 0xE00FF
Bits 11:2 Reserved, must be kept at reset value.
Bit 1
FORMAT
: base address register format
1: Arm debug interface v5
Bit 0
ENTRYPRESENT
: Indicates that debug components are present on the access port bus.
1: Debug components are present
36.5.6 AP identification register (AP_IDR)
Address offset: 0xFC
Reset value: 0x2477 0011
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| REVISION[3:0] | JEDECBANK[3:0] | JEDECCODE[6:0] | MEMAP | ||||||||||||
| r | r | r | r | r | r | r | r | r | r | r | r | r | r | r | r |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | IDENTITY[7:0] | |||||||
| r | r | r | r | r | r | r | r | ||||||||
Bits 31:28 REVISION[3:0] : revision
0x2: Cortex-M4 r0p3
Bits 27:24 JEDECBANK[3:0] : JEDEC bank
0x4: Arm
Bits 23:17 JEDECCODE[6:0] : JEDEC code
0x3B: Arm
Bit 16 MEMAP : memory access port
0x1: Standard register map
Bits 15:8 Reserved, must be kept at reset value.
Bits 7:0 IDENTITY[7:0] : AP type
0x11: CPU (Cortex-M4) AHB-AP (AP0)
Others: reserved
36.5.7 AP register map and reset values
These registers are not on the CPU memory bus and are only accessed through SW-DP and JTAG-DP debug interface.
The access port address is 8-bit wide, defined by debug port register DP_SELECTR.APBANKSEL[3:0] field and by JTAG-DP register DPACC or SW-DP packet request A[3:2] field.
Table 262. AP register map and reset values
| Offset | Register name | 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 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0x00 | AP_CSWR | Res. | SPROT | Res. | PROT[4:0] | SPSTATUS | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | MODE[3:0] | TRINPROG | DEVICEEN | ADDRINC[1:0] | Res. | SIZE[2:0] | ||||||||||
| Reset value | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | ||||||||||||||||
| 0x04 | AP_TAR | TA[31:0] | ||||||||||||||||||||||||||||||||
| Reset value | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ||
| 0x08 | Reserved | Reserved | ||||||||||||||||||||||||||||||||
| 0x0C | AP_DRWR | TD[31:0] | ||||||||||||||||||||||||||||||||
| Reset value | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ||
Table 262. AP register map and reset values (continued)
| Offset | Register name | 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 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0x10 | AP_BD0R | TBD[31:0] | |||||||||||||||||||||||||||||||
| Reset value | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |
| 0x14 | AP_BD1R | TBD[31:0] | |||||||||||||||||||||||||||||||
| Reset value | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |
| 0x18 | AP_BD2R | TBD[31:0] | |||||||||||||||||||||||||||||||
| Reset value | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |
| 0x1C | AP_BD3R | TBD[31:0] | |||||||||||||||||||||||||||||||
| Reset value | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |
| 0x20 to 0xF4 | Reserved | Reserved | |||||||||||||||||||||||||||||||
| 0xF8 | AP_BASER | BASEADDR[19:0] | FORMAT ENTRYPRESENT | ||||||||||||||||||||||||||||||
| Reset value | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | |
| 0xFC | AP_IDR | REVISION[3:0] | JEDEC BANK[3:0] | JEDECCODE[6:0] | MEMAP | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | IDENTITY[7:0] | |||||||||||||||||||
| Reset value | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 1 | 1 | 1 | 0 | 1 | 1 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 1 | |||||||||
36.6 Data watchpoint and trace unit (DWT)
The DWT provides four comparators that can be used as one of the following function:
- • watchpoint
- • PC sampling trigger
- • data address sampling trigger
- • data comparator (comparator 1 only)
- • clock cycle counter comparator (comparator 0 only)
It also contains counters for:
- • clock cycles
- • folded instructions
- • load store unit (LSU) operations
- • sleep cycles
- • number of cycles per instruction
- • interrupt overhead
A DWT comparator compares the value held in its DWT_COMPxR registers with one of the following:
- • a data address
- • an instruction address
- • a data value
- • the cycle count value, for comparator 0 only.
For address matching, the comparator can use a mask, so it matches a range of addresses.
On a successful match, the comparator generates one of the following:
- • one or more DWT data trace packets, containing one or more of:
- – the address of the instruction that caused a data access
- – an address offset, bits[15:0] of the data access address
- – the matched data value
- • a watchpoint debug event, on either the PC value or the accessed data address
- • a CMPMATCH[N] event that signals the match outside the DWT unit
A watchpoint debug event either generates a DebugMonitor exception or causes the processor to halt execution and enter Debug state.
For more details on how to use the DWT, refer to the Arm ® v7-M Architecture Reference Manual [5] .
36.6.1 DWT control register (DWT_CTRLR)
Address offset: 0x000
Reset value: 0x4000 0000
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| NUMCOMP[3:0] | NOTR CPKT | NOEXT TRIG | NOCY CCNT | NOPRF CNT | Res. | CYCEV TENA | FOLDE VTENA | LSUEV TENA | SLEEP EVTEN A | EXCEV TENA | CPIEV TENA | EXCTR CENA | |||
| r | r | r | r | r | r | r | r | rw | rw | rw | rw | rw | rw | rw | |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Res. | Res. | Res. | PCSA MPLEN A | SYNCTAP[1:0] | CYCTA P | POSTINIT[3:0] | POSTPRESET[3:0] | CYCC NTENA | |||||||
| rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | |||
Bits 31:28 NUMCOMP[3:0] : number of comparators implemented (read only)
0x4: Four comparators
Bit 27 NOTRCPKT : trace sampling and exception tracing support (read only)
0: Supported
Bit 26 NOEXTTRIG : external match signal, CMPMATCH support (read only)
0: Supported
Bit 25 NOCYCCNT : cycle counter support (read only)
0: Supported
Bit 24 NOPRFCNT : profiling counter support (read only)
0: Supported
- Bit 23 Reserved, must be kept at reset value.
- Bit 22
CYCEVTENA
: enable for POSTCNT underflow event counter packet generation
0: Disabled
1: Enabled - Bit 21
FOLDEVVTENA
: enable for folded instruction counter overflow event generation
0: Disabled
1: Enabled - Bit 20
LSUEVTENA
: enable for LSU counter overflow event generation
0: Disabled
1: Enabled - Bit 19
SLEEPEVTENA
: enable for sleep counter overflow event generation
0: Disabled
1: Enabled - Bit 18
EXCEVTENA
: enable for exception overhead counter overflow event generation
0: Disabled
1: Enabled - Bit 17
CPIEVVTENA
: enable for CPI counter overflow event generation
0: Disabled
1: Enabled - Bit 16
EXCTRCENA
: enable for exception trace generation
0: Disabled
1: Enabled - Bits 15:13 Reserved, must be kept at reset value.
- Bit 12
PCSAMPLENA
: enable for POSTCNT counter used as a timer for periodic PC sample packet generation
0: Disabled
1: Enabled - Bits 11:10
SYNCTAP[1:0]
: synchronization packet counter tap
Selects the position of the synchronization packet counter tap on the CYCCNT counter. This determines the synchronization packet rate.
0x0: Disabled. No synchronization packets
0x1: Tap at CYCCNT[24]
0x2: Tap at CYCCNT[26]
0x3: Tap at CYCCNT[28] - Bit 9
CYCTAP
: Selects the position of the POSTCNT tap on the CYCCNT counter.
0: Tap at CYCCNT[6]
1: Tap at CYCCNT[10] - Bits 8:5
POSTINIT[3:0]
: initial value of the POSTCNT counter
Writes to this field are ignored if POSTCNT counter is enabled (CYCEVTENA or PCSAMPLENA must be reset prior to writing POSTINIT). - Bits 4:1 POSTPRESET[3:0] : Reloads value of the POSTCNT counter.
- Bit 0
CYCCNTENA
: enable for CYCCNT counter
0: Disabled
1: Enabled
36.6.2 DWT cycle count register (DWT_CYCCNTR)
Address offset: 0x004
Reset value: 0x0000 0000

| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| CYCCNT[31:16] | |||||||||||||||
| r | r | r | r | r | r | r | r | r | r | r | r | r | r | r | r |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| CYCCNT[15:0] | |||||||||||||||
| r | r | r | r | r | r | r | r | r | r | r | r | r | r | r | r |
Bits 31:0 CYCCNT[31:0] : processor clock cycle counter
36.6.3 DWT CPI count register (DWT_CPICNTR)
Address offset: 0x008
Reset value: 0x0000 0000

| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | CPICNT[7:0] | |||||||
| r | r | r | r | r | r | r | r | ||||||||
Bits 31:8 Reserved, must be kept at reset value.
Bits 7:0 CPICNT[7:0] : CPI counter
Counts additional cycles required to execute multi-cycle instructions (except those recorded by DWT_LSUCNTR) and counts any instruction fetch stalls.
36.6.4 DWT exception count register (DWT_EXCCNTR)
Address offset: 0x00C
Reset value: 0x0000 0000

| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | EXCCNT[7:0] | |||||||
| r | r | r | r | r | r | r | r | ||||||||
Bits 31:8 Reserved, must be kept at reset value.
Bits 7:0 EXCCNT[7:0] : exception overhead cycle counter
Counts the number of cycles spent in exception processing.
36.6.5 DWT sleep count register (DWT_SLP CNTR)
Address offset: 0x010
Reset value: 0x0000 0000
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | SLEEP CNT[7:0] | |||||||
| rw | rw | rw | rw | rw | rw | rw | rw | ||||||||
Bits 31:8 Reserved, must be kept at reset value.
Bits 7:0 SLEEP CNT[7:0] : sleep cycle counter
Counts the number of cycles spent in sleep mode (WFI, WFE, sleep-on-exit).
36.6.6 DWT LSU count register (DWT_LSUCNTR)
Address offset: 0x014
Reset value: 0x0000 0000
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | LSUCNT[7:0] | |||||||
| rw | rw | rw | rw | rw | rw | rw | rw | ||||||||
Bits 31:8 Reserved, must be kept at reset value.
Bits 7:0 LSUCNT[7:0] : load store counter
Counts additional cycles required to execute load and store instructions.
36.6.7 DWT fold count register (DWT_FOLDCNTR)
Address offset: 0x018
Reset value: 0x0000 0000
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | FOLDCNT[7:0] | |||||||
| rw | rw | rw | rw | rw | rw | rw | rw | ||||||||
Bits 31:8 Reserved, must be kept at reset value.
Bits 7:0 FOLDCNT[7:0] : folded instruction counter
Increments on each instruction that takes 0 cycles.
36.6.8 DWT program counter sample register (DWT_PCSR)
Address offset: 0x01C
Reset value: 0x0000 0000

| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| EIASAMPLE[31:16] | |||||||||||||||
| r | r | r | r | r | r | r | r | r | r | r | r | r | r | r | r |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| EIASAMPLE[15:0] | |||||||||||||||
| r | r | r | r | r | r | r | r | r | r | r | r | r | r | r | r |
Bits 31:0
EIASAMPLE[31:0]
: executed Instruction Address sample value
Samples the current value of the program counter.
36.6.9 DWT comparator register x (DWT_COMPxR)
Address offset: 0x020 + 0x010 * x, (x = 0 to 3)
Reset value: 0x0000 0000

| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| COMP[31:16] | |||||||||||||||
| r | r | r | r | r | r | r | r | r | r | r | r | r | r | r | r |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| COMP[15:0] | |||||||||||||||
| r | r | r | r | r | r | r | r | r | r | r | r | r | r | r | r |
Bits 31:0 COMP[31:0] : reference value for comparison
36.6.10 DWT mask register x (DWT_MASKxR)
Address offset: 0x024 + 0x010 * x, (x = 0 to 3)
Reset value: 0x0000 0000

| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Res | Res | Res | Res | Res | Res | Res | Res | Res | Res | Res | MASK[4:0] | ||||
| rw | rw | rw | rw | rw | |||||||||||
Bits 31:5 Reserved, must be kept at reset value.
Bits 4:0 MASK[4:0] : comparator mask size
Provides the size of the ignore mask applied to the access address for address range matching by comparator n. A debugger can write 0b11111 to this field and then read the register back to determine the maximum mask size supported.
36.6.11 DWT function register x (DWT_FUNCTxR)
Address offset: 0x028 + 0x010 * x, (x = 0 to 3)
Reset value: 0x0000 0000
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | MATCHED | Res. | Res. | Res. | Res. | DATAVADDR1[3:0] | |||
| r | rw | rw | rw | rw | |||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| DATAVADDR0[3:0] | DATAVSIZE[1:0] | LNK1ENA | DATAVMATCH | CYCMATCH | Res. | EMITRANGE | Res. | FUNCTION[3:0] | |||||||
| rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | ||
Bits 31:25 Reserved, must be kept at reset value.
Bit 24 MATCHED : comparator match (read only)
Indicates if a comparator match has occurred since the register was last read.
0: No match
1: Match occurred
Bits 23:20 Reserved, must be kept at reset value.
Bits 19:16 DATAVADDR1[3:0] : When the DATAVMATCH and LNK1ENA bits are both 1, this field can hold the comparator number of a second comparator to use for linked address comparison.
Bits 15:12 DATAVADDR0[3:0] : When the DATAVMATCH and LNK1ENA bits are both 1, this field can hold the comparator number of a comparator to use for linked address comparison.
Bits 11:10 DATAVSIZE[1:0] : For data value matching, specifies the size of the required data comparison.
0x0: Byte
0x1: Half word
0x2: Word
0x3: reserved
Bit 9 LNK1ENA : enable for a second linked comparator
Indicates whether use of a second linked comparator is supported (read only).
0x1: Supported
Bit 8 DATAVMATCH : enable for cycle comparison.
0x0: Address comparison
0x1: Data value comparison
Bit 7 CYCMATCH : enable for cycle count comparison on comparator 0
This field is reserved for other comparators.
0x0: No cycle count comparison
0x1: Compares DWT_COMP0R with the cycle counter, DWT_CYCCNTR.
Bit 6 Reserved, must be kept at reset value.
Bit 5 EMITRANGE : Enables generation of data trace address offset packets (containing data address bits 0 to 15).
0x0: Disabled
0x1: Enabled
Bit 4 Reserved, must be kept at reset value.
Bits 3:0 FUNCTION[3:0] : Selection of action to take on comparator match
The meaning of this bit field depends on the setting of the DATAVMATCH and CYCMATCH fields. See [5].
36.6.12 DWT CoreSight peripheral identity register 4 (DWT_PIDR4)
Address offset: 0xFD0
Reset value: 0x0000 0004
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | F4KCOUNT[3:0] | JEP106CON[3:0] | ||||||
| r | r | r | r | r | r | r | r | ||||||||
Bits 31:8 Reserved, must be kept at reset value.
Bits 7:4 F4KCOUNT[3:0] : register file size
0x0: Register file occupies a single 4-Kbyte region.
Bits 3:0 JEP106CON[3:0] : JEP106 continuation code
0x4: Arm® JEDEC code
36.6.13 DWT CoreSight peripheral identity register 0 (DWT_PIDR0)
Address offset: 0xFE0
Reset value: 0x0000 0002
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | PARTNUM[7:0] | |||||||
| r | r | r | r | r | r | r | r | ||||||||
Bits 31:8 Reserved, must be kept at reset value.
Bits 7:0 PARTNUM[7:0] : part number bits [7:0]
0x02: DWT part number
36.6.14 DWT CoreSight peripheral identity register 1 (DWT_PIDR1)
Address offset: 0xFE4
Reset value: 0x0000 00B0
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | JEP106ID[3:0] | PARTNUM[11:8] | ||||||
| r | r | r | r | r | r | r | r | ||||||||
Bits 31:8 Reserved, must be kept at reset value.
Bits 7:4 JEP106ID[3:0] : JEP106 identity code bits [3:0]
0xB: Arm® JEDEC code
Bits 3:0 PARTNUM[11:8] : part number bits [11:8]
0x0: DWT part number
36.6.15 DWT CoreSight peripheral identity register 2 (DWT_PIDR2)
Address offset: 0xFE8
Reset value: 0x0000 003B
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | REVISION[3:0] | JEDEC | JEP106ID[6:4] | |||||
| r | r | r | r | r | r | r | r | ||||||||
Bits 31:8 Reserved, must be kept at reset value.
Bits 7:4 REVISION[3:0] : component revision number
0x3: r0p4
Bit 3 JEDEC : JEDEC assigned value
0x1: Designer ID specified by JEDEC
Bits 2:0 JEP106ID[6:4] : JEP106 identity code bits [6:4]
0x3: Arm® JEDEC code
36.6.16 DWT CoreSight peripheral identity register 3 (DWT_PIDR3)
Address offset: 0xFEC
Reset value: 0x0000 0000
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | REVAND[3:0] | CMOD[3:0] | ||||||
| r | r | r | r | r | r | r | r | ||||||||
Bits 31:8 Reserved, must be kept at reset value.
Bits 7:4 REVAND[3:0] : metal fix version
0x0: No metal fix
Bits 3:0 CMOD[3:0] : customer modified
0x0: No customer modifications
36.6.17 DWT CoreSight component identity register 0 (DWT_CIDR0)
Address offset: 0xFF0
Reset value: 0x0000 000D
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | PREAMBLE[7:0] | |||||||
| r | r | r | r | r | r | r | r | ||||||||
Bits 31:8 Reserved, must be kept at reset value.
Bits 7:0 PREAMBLE[7:0] : component ID bits [7:0]
0x0D: Common ID value
36.6.18 DWT CoreSight peripheral identity register 1 (DWT_CIDR1)
Address offset: 0xFF4
Reset value: 0x0000 00E0
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | CLASS[3:0] | PREAMBLE[11:8] | ||||||
| r | r | r | r | r | r | r | r | ||||||||
Bits 31:8 Reserved, must be kept at reset value.
Bits 7:4
CLASS[3:0]
: component ID bits [15:12] - component class
0xE: Trace generator component
Bits 3:0
PREAMBLE[11:8]
: component ID bits [11:8]
0x0: Common ID value
36.6.19 DWT CoreSight component identity register 2 (DWT_CIDR2)
Address offset: 0xFF8
Reset value: 0x0000 0005
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | PREAMBLE[19:12] | |||||||
| r | r | r | r | r | r | r | r | ||||||||
Bits 31:8 Reserved, must be kept at reset value.
Bits 7:0
PREAMBLE[19:12]
: component ID bits [23:16]
0x05: Common ID value
36.6.20 DWT CoreSight component identity register 3 (DWT_CIDR3)
Address offset: 0xFFC
Reset value: 0x0000 00B1
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | PREAMBLE[27:20] | |||||||
| r | r | r | r | r | r | r | r | ||||||||
Bits 31:8 Reserved, must be kept at reset value.
Bits 7:0
PREAMBLE[27:20]
: component ID bits [31:24]
0xB1: Common ID value
36.6.21 DWT register map
Table 263. DWT register map and reset values
| Offset | Register name | 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 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0x000 | DWT_CTRLR | NUMCOMP [3:0] | NOTRPKT | NOEXTTRIG | NOCYCCNT | NOPRFONT | Res. | CYCEVTENA | FOLDEVENA | LSUEVTENA | SLEEPVTVENA | EXCEVTENA | CPIEVTVENA | EXCTRCEENA | Res. | Res. | Res. | PCSAMPLENA | SYNCTAP[1:0] | CYCTAP | POSINIT[3:0] | POSTPRESET[3:0] | CYCCNTENA | ||||||||||
| Reset value | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |
| 0x004 | DWT_CYCCNTR | CYCCNT[31:0] | |||||||||||||||||||||||||||||||
| Reset value | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |
| 0x008 | DWT_CPICNTR | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | CPICNT[7:0] | |||||||
| Reset value | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||||||||||||||||||||||||
| 0x00C | DWT_EXCCNTR | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | EXCCNT[7:0] | |||||||
| Reset value | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||||||||||||||||||||||||
| 0x010 | DWT_SLPICNTR | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | SLIEPCNT[7:0] | |||||||
| Reset value | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||||||||||||||||||||||||
| 0x014 | DWT_LSUCNTR | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | LSUCNT[7:0] | |||||||
| Reset value | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||||||||||||||||||||||||
| 0x018 | DWT_FOLDCNTR | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | FOLDCNT[7:0] | |||||||
| Reset value | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||||||||||||||||||||||||
| 0x01C | DWT_PCSR | EIASAMPLE[31:0] | |||||||||||||||||||||||||||||||
| Reset value | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |
| 0x020 | DWT_COMP0R | COMP[31:0] | |||||||||||||||||||||||||||||||
| Reset value | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |
| 0x024 | DWT_MASK0R | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | MASK[4:0] | |||||
| Reset value | 0 | 0 | 0 | 0 | 0 | 0 | |||||||||||||||||||||||||||
| 0x028 | DWT_FUNCT0R | Res. | Res. | Res. | Res. | Res. | Res. | Res. | MATCHED | Res. | Res. | Res. | Res. | DATAVADDR1 [3:0] | DATAVADDR0 [3:0] | DATAVSIZE [1:0] | LNK1ENA | DATAVMATCH | CYCMATCH | Res. | EMITRANGE | Res. | FUNCTION [3:0] | ||||||||||
| Reset value | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||||||||||||
| 0x02C | Reserved | Reserved. | |||||||||||||||||||||||||||||||
| 0x030 | DWT_COMP1R | COMP[31:0] | |||||||||||||||||||||||||||||||
| Reset value | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |
| 0x034 | DWT_MASK1R | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | MASK[4:0] | |||||
| Reset value | 0 | 0 | 0 | 0 | 0 | 0 | |||||||||||||||||||||||||||
| 0x038 | DWT_FUNCT1R | Res. | Res. | Res. | Res. | Res. | Res. | Res. | MATCHED | Res. | Res. | Res. | Res. | DATAVADDR1 [3:0] | DATAVADDR0 [3:0] | DATAVSIZE [1:0] | LNK1ENA | DATAVMATCH | CYCMATCH | Res. | EMITRANGE | Res. | FUNCTION [3:0] | ||||||||||
| Reset value | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||||||||||||
| 0x03C | Reserved | Reserved. | |||||||||||||||||||||||||||||||
Table 263. DWT register map and reset values (continued)
| Offset | Register name | 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 | ||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0x040 | DWT_COMP2R | COMP[31:0] | |||||||||||||||||||||||||||||||||
| Reset value | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| 0x044 | DWT_MASK2R | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | MASK[4:0] | ||||||
| Reset value | 0 | 0 | 0 | 0 | 0 | ||||||||||||||||||||||||||||||
| 0x048 | DWT_FUNCT2R | Res. | Res. | Res. | Res. | Res. | Res. | Res. | MATCHED | Res. | Res. | Res. | Res. | Res. | DATAVADDR1[3:0] | DATAVADDR0[3:0] | DATAVSIZE[1:0] | LNK1ENA | DATAVMATCH | CYCMATCH | Res. | Res. | EMITRANGE | Res. | FUNCTION[3:0] | ||||||||||
| Reset value | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||||||||||||
| 0x04C | Reserved | Reserved. | |||||||||||||||||||||||||||||||||
| 0x050 | DWT_COMP3R | COMP[31:0] | |||||||||||||||||||||||||||||||||
| Reset value | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| 0x054 | DWT_MASK3R | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | MASK[4:0] | ||||||
| Reset value | 0 | 0 | 0 | 0 | 0 | ||||||||||||||||||||||||||||||
| 0x058 | DWT_FUNCT3R | Res. | Res. | Res. | Res. | Res. | Res. | Res. | MATCHED | Res. | Res. | Res. | Res. | Res. | DATAVADDR1 [3:0] | DATAVADDR0 [3:0] | DATAVSIZE [1:0] | LNK1ENA | DATAVMATCH | CYCMATCH | Res. | Res. | EMITRANGE | Res. | FUNCTION [3:0] | ||||||||||
| Reset value | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||||||||||||
| 0x05C to 0xFCC | Reserved | Reserved. | |||||||||||||||||||||||||||||||||
| 0xFD0 | DWT_PIDR4 | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | F4KCOUNT [3:0] | JEP106CON [3:0] | ||||||||
| Reset value | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | |||||||||||||||||||||||||||
| 0xFD4 to 0xFDC | Reserved | Reserved. | |||||||||||||||||||||||||||||||||
| 0xFE0 | DWT_PIDR0 | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | PARTNUM[7:0] | |||||||||
| Reset value | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | |||||||||||||||||||||||||||
| 0xFE4 | DWT_PIDR1 | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | JEP106ID [3:0] | PARTNUM [11:8] | ||||||||
| Reset value | 1 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | |||||||||||||||||||||||||||
| 0xFE8 | DWT_PIDR2 | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | REVISION [3:0] | JEDEC | JEP106ID [6:4] | |||||||
| Reset value | 0 | 0 | 1 | 1 | 1 | 0 | 1 | 1 | |||||||||||||||||||||||||||
| 0xFEC | DWT_PIDR3 | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | REVAND[3:0] | CMOD[3:0] | ||||||||
| Reset value | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||||||||||||||||||||||||||
| 0xFF0 | DWT_CIDR0 | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | PREAMBLE[7:0] | |||||||||
| Reset value | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | |||||||||||||||||||||||||||
| 0xFF4 | DWT_CIDR1 | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | CLASS[3:0] | PREAMBLE [11:8] | ||||||||
| Reset value | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | |||||||||||||||||||||||||||
| 0xFF8 | DWT_CIDR2 | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | PREAMBLE[19:12] | |||||||||
| Reset value | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | |||||||||||||||||||||||||||
Table 263. DWT register map and reset values (continued)
| Offset | Register name | 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 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0xFFC | DWT_CIDR3 | PREAMBLE[27:20] | |||||||||||||||||||||||||||||||
| Reset value | 1 | 0 | 1 | 1 | 0 | 0 | 0 | 1 | |||||||||||||||||||||||||
Refer to Section 36.7: ROM table for the register boundary addresses.
36.7 ROM table
The ROM table is a CoreSight component that contains the base addresses of all the CoreSight debug components accessible via the AHB-AP. This table allows a debugger to discover the topology of the CoreSight system automatically.
There is one ROM table in the CPU sub-system. This table is pointed to by the AP_BASER register in the CPU AHB-AP. It contains the base address pointer for the system control space (SCS) registers, which allow the debugger to identify the CPU core, as well as the FPB, DWT, and CTI (a) .
The ROM table (see Table 264 ) occupies a 4-Kbyte, 32-bit wide chunk of address space, from 0xE00FF000 to 0xE00FFFFC.
Table 264. ROM table
| Address in ROM table | Component name | Component base address | Component address offset | Size (bytes) | Entry |
|---|---|---|---|---|---|
| 0xE00FF000 | SCS | 0xE000E000 | 0xFFF0F000 | 4 K | 0xFFF0F003 |
| 0xE00FF004 | DWT | 0xE0001000 | 0xFFF02000 | 4 K | 0xFFF02003 |
| 0xE00FF008 | FPB | 0xE0002000 | 0xFFF03000 | 4 K | 0xFFF03003 |
| 0xE00FF00C | ITM | 0xE0000000 | 0xFFF01000 | 4 K | 0xFFF01003 |
| 0xE00FF010 | TPIU | 0xE0040000 | 0xFFF41000 | 4 K | 0xFFF41003 |
| 0xE00FF014 | CTI (1) | 0xE0043000 | 0xFFF44000 | 4 K | 0xFFF44003 |
| 0xE00FF018 | Top of table | - | - | - | 0x00000000 |
| 0xE00FF01C to 0xE00FFFC8 | Reserved | - | - | - | 0x00000000 |
| 0xE00FFFCC to 0xE00FFFFC | ROM table registers | - | - | - | See Table 264 |
1. CTI is visible in the ROM table but has no function.
The topology for the CoreSight components in the CPU subsystem is shown in Figure 374 .
a. CTI is visible in the ROM table but has no function.
Figure 374. CPU CoreSight topology

The diagram illustrates the CPU CoreSight topology. On the left, the AHB-AP (0xE00FF000) contains the AP_BASER register (0xF8). The CPU ROM table is located at 0xE00FF000 and contains entries for various debug components. The System control space (SCS) is at 0xE000E000. The Data watchpoint/trace (DWT) is at 0xE0001000. The Breakpoint unit (FPB) is at 0xE0002000. The Trace port interface (TPIU) is at 0xE0040000. The Cross trigger (CTI) is at 0xE0043000. Each component has its own set of registers, including Register file base, PIDR4, and CIDR3. The CPU ROM table entries are as follows:
| Offset | Value |
|---|---|
| 0x000 | Offset: 0xFFF0F000 |
| 0x004 | Offset: 0xFFF02000 |
| 0x008 | Offset: 0xFFF03000 |
| 0x00C | Offset: 0xFFF01000 |
| 0x010 | Offset: 0xFFF41000 |
| 0x014 | Offset: 0xFFF44000 |
| 0x018 | Top of table |
(1) CTI is visible in the ROM table but has no function.
MSv60374V2
36.7.1 ROM memory type register (ROM_MEMTYPER)
Address offset: 0xFCC
Reset value: 0x0000 0001
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | SYSTEMEM |
| r |
Bits 31:1 Reserved, must be kept at reset value.
Bit 0 SYSTEMEM : system memory
1: System memory present on this bus
36.7.2 ROM CoreSight peripheral identity register 4 (ROM_PIDR4)
Address offset: 0xFD0
Reset value: 0x0000 0000
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | F4KCOUNT[3:0] | JEP106CON[3:0] | ||||||
| r | r | r | r | r | r | r | r | ||||||||
Bits 31:8 Reserved, must be kept at reset value.
Bits 7:4 F4KCOUNT[3:0] : register file size
0x0: Register file occupies a single 4-Kbyte region.
Bits 3:0 JEP106CON[3:0] : JEP106 continuation code
0x0: STMicroelectronics JEDEC continuation code
36.7.3 ROM CoreSight peripheral identity register 0 (ROM_PIDR0)
Address offset: 0xFE0
Reset value: 0x0000 0097
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | PARTNUM[7:0] | |||||||
| r | r | r | r | r | r | r | r | ||||||||
Bits 31:8 Reserved, must be kept at reset value.
Bits 7:0 PARTNUM[7:0] : part number bits [7:0]
0x97: STM32WLE
36.7.4 ROM CoreSight peripheral identity register 1 (ROM_PIDR1)
Address offset: 0xFE4
Reset value: 0x0000 0004
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | JEP106ID[3:0] | PARTNUM[11:8] | ||||||
| r | r | r | r | r | r | r | r | ||||||||
Bits 31:8 Reserved, must be kept at reset value.
Bits 7:4 JEP106ID[3:0] : JEP106 identity code bits [3:0]
0x0: STMicroelectronics JEDEC code
Bits 3:0 PARTNUM[11:8] : part number bits [11:8]
0x4: STM32WLEx
36.7.5 ROM CoreSight peripheral identity register 2 (ROM_PIDR2)
Address offset: 0xFE8
Reset value: 0x0000 000A
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | REVISION[3:0] | JEDEC | JEP106ID[6:4] | |||||
| r | r | r | r | r | r | r | r | ||||||||
Bits 31:8 Reserved, must be kept at reset value.
Bits 7:4 REVISION[3:0] : component revision number
0x0: rev r0p0
Bit 3 JEDEC : JEDEC assigned value
1: Designer ID specified by JEDEC
Bits 2:0 JEP106ID[6:4] : JEP106 identity code bits [6:4]
0x2: STMicroelectronics JEDEC code
36.7.6 ROM CoreSight peripheral identity register 3 (ROM_PIDR3)
Address offset: 0xFEC
Reset value: 0x0000 0000
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | REVAND[3:0] | CMOD[3:0] | ||||||
| r | r | r | r | r | r | r | r | ||||||||
Bits 31:8 Reserved, must be kept at reset value.
Bits 7:4 REVAND[3:0] : metal fix version
0x0: No metal fix
Bits 3:0 CMOD[3:0] : customer modified
0x0: No customer modifications
36.7.7 ROM CoreSight component identity register 0 (ROM_CIDR0)
Address offset: 0xFF0
Reset value: 0x0000 000D
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | PREAMBLE[7:0] | |||||||
| r | r | r | r | r | r | r | r | ||||||||
Bits 31:8 Reserved, must be kept at reset value.
Bits 7:0 PREAMBLE[7:0] : component ID bits [7:0]
0x0D: Common ID value
36.7.8 ROM CoreSight peripheral identity register 1 (ROM_CIDR1)
Address offset: 0xFF4
Reset value: 0x0000 0010
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | ||||||||
| CLASS[3:0] | PREAMBLE[11:8] | ||||||||||||||
| r | r | r | r | r | r | r | r | ||||||||
Bits 31:8 Reserved, must be kept at reset value.
Bits 7:4 CLASS[3:0] : component ID bits [15:12] - component class
0x1: ROM table component
Bits 3:0 PREAMBLE[11:8] : component ID bits [11:8]
0x0: Common ID value
36.7.9 ROM CoreSight component identity register 2 (ROM_CIDR2)
Address offset: 0xFF8
Reset value: 0x0000 0005
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | ||||||||
| PREAMBLE[19:12] | |||||||||||||||
| r | r | r | r | r | r | r | r | ||||||||
Bits 31:8 Reserved, must be kept at reset value.
Bits 7:0 PREAMBLE[19:12] : component ID bits [23:16]
0x05: Common ID value
36.7.10 ROM CoreSight component identity register 3 (ROM_CIDR3)
Address offset: 0xFFC
Reset value: 0x0000 00B1
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | PREAMBLE[27:20] | |||||||
| r | r | r | r | r | r | r | r | ||||||||
Bits 31:8 Reserved, must be kept at reset value.
Bits 7:0 PREAMBLE[27:20] : component ID bits [31:24]
0xB1: Common ID value
36.7.11 ROM table register map
Table 265. ROM table register map and reset values
| Offset | Register name | 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 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0xFCC | ROM_MEMTYPER | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | SYSTEM |
| Reset value | 1 | ||||||||||||||||||||||||||||||||
| 0xFD0 | ROM_PIDR4 | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | F4KCOUNT [3:0] | JEP106CON [3:0] | ||||||
| Reset value | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ||||||||||||||||||||||||||
| 0xFD4- 0xFDC | Reserved | Reserved. | |||||||||||||||||||||||||||||||
| 0xFE0 | ROM_PIDR0 | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | PARTNUM[7:0] | |||||||
| Reset value | 1 | 0 | 0 | 1 | 0 | 1 | 1 | ||||||||||||||||||||||||||
| 0xFE4 | ROM_PIDR1 | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | JEP106ID [3:0] | PARTNUM [11:8] | |||||||
| Reset value | 0 | 0 | 0 | 0 | 0 | 1 | 0 | ||||||||||||||||||||||||||
| 0xFE8 | ROM_PIDR2 | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | REVISION [3:0] | JEDEC | JEP106ID [6:4] | ||||||
| Reset value | 0 | 0 | 0 | 0 | 1 | 0 | 1 | ||||||||||||||||||||||||||
| 0xFEC | ROM_PIDR3 | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | REVAND[3:0] | CMOD[3:0] | |||||||
| Reset value | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ||||||||||||||||||||||||||
| 0xFF0 | ROM_CIDR0 | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | PREAMBLE[7:0] | ||||||||
| Reset value | 0 | 0 | 0 | 0 | 1 | 1 | 0 | ||||||||||||||||||||||||||
| 0xFF4 | ROM_CIDR1 | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | CLASS[3:0] | PREAMBLE [11:8] | |||||||
| Reset value | 0 | 0 | 0 | 1 | 0 | 0 | 0 | ||||||||||||||||||||||||||
| 0xFF8 | ROM_CIDR2 | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | PREAMBLE[19:12] | ||||||||
| Reset value | 0 | 0 | 0 | 0 | 0 | 1 | 0 | ||||||||||||||||||||||||||
Table 265. ROM table register map and reset values (continued)
| Offset | Register name | 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 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0xFFC | ROM_CIDR3 | PREAMBLE[27:20] | |||||||||||||||||||||||||||||||
| Reset value | 1 | 0 | 1 | 1 | 0 | 0 | 0 | 1 | |||||||||||||||||||||||||
Refer to Section 36.7: ROM table for the register boundary addresses.
36.8 Breakpoint unit (FPB)
The FPB allows the user to set hardware breakpoints. It contains six comparators that monitor the instruction fetch address and two literal address comparators.
If a match occurs, the address is remapped to an address in system memory, defined by the FPB_REMAPR register plus an offset corresponding to the matching comparator.
Alternatively, the instruction comparators can be configured to generate a breakpoint instruction.
36.8.1 FPB control register (FPB_CTRLR)
Address offset: 0x000
Reset value: 0x0000 0260
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Res. | NUM_CODE 6 | NUM_CODE 5 | NUM_CODE 4 | NUM_LIT[3:0] | NUM_CODE[3:0] | Res. | Res. | KEY | ENABLE | ||||||
| r | r | r | r | r | r | r | r | r | r | r | rw | rw | |||
Bits 31:15 Reserved, must be kept at reset value.
Bits 11:8 NUM_LIT[3:0] : number of literal address comparators supported (read only)
0x2: Two literal comparators supported.
Bits 14, 13, 12, 7, 6, NUM_CODE[6:0] : number of instruction address comparators supported - least significant bits 5, 4 (read only)
0x6: 6 instruction comparators supported
Bits 3:2 Reserved, must be kept at reset value.
Bit 1 KEY : write protect key
A write to FPB_CTRLR register is ignored if this bit is not set to 1.
Bit 0 ENABLE : FPB enable
0: Disabled
1: Enabled
36.8.2 FPB remap register (FPB_REMAPR)
Address offset: 0x004
Reset value: 0x2000 0000
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Res. | Res. | RMPSPT | REMAP[23:11] | ||||||||||||
| r | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | ||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| REMAP[10:0] | Res. | Res. | Res. | Res. | Res. | ||||||||||
| rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | |||||
Bits 31:30 Reserved, must be kept at reset value.
Bit 29 RMPSPT : Flash memory patch remap
Indicates whether flash memory patch remap is supported (read only).
1: Remapping supported.
Bits 28:5 REMAP[23:0] : remap target address
Bits [28:5] of the base address in SRAM to which the FPB remaps the address. The remap base address must be aligned to the number of words required to support the implemented comparators, that is to (NUM_CODE+NUM_LIT) words, with a minimum alignment of 8 words. Because remap is into the SRAM memory region, 0x20000000-0x3FFFFFFF, bits [31:29] of the remap address are 0b001.
Bits 4:0 Reserved, must be kept at reset value.
36.8.3 FPB comparator register x (FPB_COMPxR)
Address offset: 0x008 + 0x004 * x, (x = 0 to 7)
Reset value: 0x0000 0000
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| REPLACE[1:0] | Res. | COMP[26:14] | |||||||||||||
| rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| COMP[13:0] | Res. | ENABLE | |||||||||||||
| rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | |
Bits 31:30 REPLACE[1:0] : Defines the behavior when a match occurs between the COMP field and the instruction fetch address.
- 0x0: reserved
- 0x1: Breakpoint on lower half-word, upper half-word is unaffected.
- 0x2: Breakpoint on upper half-word, lower half-word is unaffected.
- 0x3: Breakpoint on both upper and lower half-words
Bit 29 Reserved, must be kept at reset value.
Bits 28:2 COMP[26:0] : value to compare with address bits 28:2 of accesses to instruction code memory (0x00000000 to 0x1FFFFFFF)
If a match occurs, the action to be taken is defined by the REPLACE field.
Bit 1 Reserved, must be kept at reset value.
Bit 0 ENABLE : comparator enable
The comparator is only enabled if both this bit and the FPB ENABLE bit in the FPB_CTRLR register are set.
- 0: Disabled
- 1: Enabled
36.8.4 FPB CoreSight peripheral identity register 4 (FPB_PIDR4)
Address offset: 0xFD0
Reset value: 0x0000 0004
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | F4KCOUNT[3:0] | JEP106CON[3:0] | ||||||
| r | r | r | r | r | r | r | r | ||||||||
Bits 31:8 Reserved, must be kept at reset value.
Bits 7:4 F4KCOUNT[3:0] : register file size
0x0: Register file occupies a single 4-Kbyte region.
Bits 3:0 JEP106CON[3:0] : JEP106 continuation code
0x4: Arm ® JEDEC code
36.8.5 FPB CoreSight peripheral identity register 0 (FPB_PIDR0)
Address offset: 0xFE0
Reset value: 0x0000 0003
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | PARTNUM[7:0] | |||||||
| r | r | r | r | r | r | r | r | ||||||||
Bits 31:8 Reserved, must be kept at reset value.
Bits 7:0 PARTNUM[7:0] : part number bits [7:0]
0x03: FPB part number
36.8.6 FPB CoreSight peripheral identity register 1 (FPB_PIDR1)
Address offset: 0xFE4
Reset value: 0x0000 00B0
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | JEP106ID[3:0] | PARTNUM[11:8] | ||||||
| r | r | r | r | r | r | r | r | ||||||||
Bits 31:8 Reserved, must be kept at reset value.
Bits 7:4 JEP106ID[3:0] : JEP106 identity code bits [3:0]
0xB: Arm® JEDEC code
Bits 3:0 PARTNUM[11:8] : part number bits [11:8]
0x0: FPB part number
36.8.7 FPB CoreSight peripheral identity register 2 (FPB_PIDR2)
Address offset: 0xFE8
Reset value: 0x0000 002B
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | REVISION[3:0] | JEDEC | JEP106ID[6:4] | |||||
| r | r | r | r | r | r | r | r | ||||||||
Bits 31:8 Reserved, must be kept at reset value.
Bits 7:4 REVISION[3:0] : component revision number
0x2: r0p3
Bit 3 JEDEC : JEDEC assigned value
0x1: Designer ID specified by JEDEC
Bits 2:0 JEP106ID[6:4] : JEP106 identity code bits [6:4]
0x3: Arm ® JEDEC code
36.8.8 FPB CoreSight peripheral identity register 3 (FPB_PIDR3)
Address offset: 0xFEC
Reset value: 0x0000 0000
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | REVAND[3:0] | CMOD[3:0] | ||||||
| r | r | r | r | r | r | r | r | ||||||||
Bits 31:8 Reserved, must be kept at reset value.
Bits 7:4 REVAND[3:0] : metal fix version
0x0: No metal fix
Bits 3:0 CMOD[3:0] : customer modified
0x0: No customer modifications
36.8.9 FPB CoreSight component identity register 0 (FPB_CIDR0)
Address offset: 0xFF0
Reset value: 0x0000 000D
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | PREAMBLE[7:0] | |||||||
| r | r | r | r | r | r | r | r | ||||||||
Bits 31:8 Reserved, must be kept at reset value.
Bits 7:0 PREAMBLE[7:0] : component ID bits [7:0]
0x0D: Common ID value
36.8.10 FPB CoreSight peripheral identity register 1 (FPB_CIDR1)
Address offset: 0xFF4
Reset value: 0x0000 00E0
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | CLASS[3:0] | PREAMBLE[11:8] | ||||||
| r | r | r | r | r | r | r | r | ||||||||
Bits 31:8 Reserved, must be kept at reset value.
Bits 7:4 CLASS[3:0] : component ID bits [15:12] - component class
0xE: Trace generator component
Bits 3:0 PREAMBLE[11:8] : component ID bits [11:8]
0x0: Common ID value
36.8.11 FPB CoreSight component identity register 2 (FPB_CIDR2)
Address offset: 0xFF8
Reset value: 0x0000 0005
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | PREAMBLE[19:12] | |||||||
| r | r | r | r | r | r | r | r | ||||||||
Bits 31:8 Reserved, must be kept at reset value.
Bits 7:0 PREAMBLE[19:12] : component ID bits [23:16]
0x05: Common ID value
36.8.12 FPB CoreSight component identity register 3 (FPB_CIDR3)
Address offset: 0xFFC
Reset value: 0x0000 00B1
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | PREAMBLE[27:20] | |||||||
| r | r | r | r | r | r | r | r | ||||||||
Bits 31:8 Reserved, must be kept at reset value.
Bits 7:0 PREAMBLE[27:20] : component ID bits [31:24]
0xB1: Common ID value
36.8.13 FPB register map
Table 266. FPB register map and reset values
| Offset | Register name | 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 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0x000 | FPB_CTRLR | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | NUM_CODE[6:4] | NUM_LIT[3:0] | NUM_CODE[3:0] | Res. | Res. | KEY | ENABLE | |||||||
| Reset value | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | ||||||||||||||||||||
Table 266. FPB register map and reset values (continued)
| Offset | Register name | 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 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0x004 | FPB_REMAPR | Res. | Res. | RM/SP | REMAP[23:0] | Res. | Res. | Res. | Res. | Res. | |||||||||||||||||||||||
| Reset value | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| 0x008 to 0x024 | FPB_COMP0-7R | REPLACE[1:0] | Res. | COMP[26:0] | Res. | ENABLE | |||||||||||||||||||||||||||
| Reset value | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| 0x028 to 0xFCC | Reserved | Reserved. | |||||||||||||||||||||||||||||||
| 0xFD0 | FPB_PIDR4 | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | F4KCOUNT [3:0] | JEP106CON [3:0] | |||
| Reset value | 0 | 0 | 0 | 0 | |||||||||||||||||||||||||||||
| 0xFD4 to 0xFDC | Reserved | Reserved. | |||||||||||||||||||||||||||||||
| 0xFE0 | FPB_PIDR0 | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | PARTNUM[7:0] | ||||
| Reset value | 0 | 0 | 0 | 1 | |||||||||||||||||||||||||||||
| 0xFE4 | FPB_PIDR1 | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | JEP106ID [3:0] | PARTNUM [11:8] | |||
| Reset value | 1 | 0 | 1 | 1 | |||||||||||||||||||||||||||||
| 0xFE8 | FPB_PIDR2 | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | REVISION [3:0] | JEDEC | JEP106ID [6:4] | ||
| Reset value | 0 | 0 | 1 | 0 | |||||||||||||||||||||||||||||
| 0xFEC | FPB_PIDR3 | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | REVAND[3:0] | CMOD[3:0] | |||
| Reset value | 0 | 0 | 0 | 0 | |||||||||||||||||||||||||||||
| 0xFF0 | FPB_CIDR0 | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | PREAMBLE[7:0] | ||||
| Reset value | 0 | 0 | 0 | 1 | |||||||||||||||||||||||||||||
| 0xFF4 | FPB_CIDR1 | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | CLASS[3:0] | PREAMBLE [11:8] | |||
| Reset value | 1 | 1 | 1 | 0 | |||||||||||||||||||||||||||||
| 0xFF8 | FPB_CIDR2 | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | PREAMBLE[19:12] | ||||
| Reset value | 0 | 0 | 0 | 1 | |||||||||||||||||||||||||||||
| 0xFFC | FPB_CIDR3 | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | PREAMBLE[27:20] | ||||
| Reset value | 1 | 0 | 1 | 1 | |||||||||||||||||||||||||||||
36.9 Instrumentation trace macrocell (ITM)
The ITM generates trace information as packets. There are three sources that can generate packets. If multiple sources generate packets at the same time, the ITM arbitrates the order in which packets are output. The three sources in decreasing order of priority are:
1. Software trace
Software can write directly to any of 32 x 32-bit ITM stimulus registers to generate packets. The permission level for each port can be programmed. When software writes to an enabled stimulus port, the ITM combines the identity of the port, the size of the write access and the data written, into a packet that it writes to a FIFO. The ITM outputs packets from the FIFO onto the trace bus. Reading a stimulus port register returns the status of the stimulus register (empty or pending) in bit 0.
2. Hardware trace
The DWT generates trace packets in response to a data trace event, a PC sample or a performance profiling counter wraparound. The ITM outputs these packets on the trace bus.
3. Local timestamping
The ITM contains a 21-bit counter clocked by the (pre-divided) processor clock. The counter value is output in a timestamp packet on the trace bus. The counter is reset to zero every time a timestamp packet is generated. The timestamps thus indicate the time elapsed since the previous timestamp packet.
36.9.1 ITM stimulus register x (ITM_STIMRx)
Address offset: 0x000 + 0x004 * x, (x = 0 to 31)
Reset value: 0xXXXX XXXX

| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| STIMULUS[31:16] | |||||||||||||||
| r | r | r | r | r | r | r | r | r | r | r | r | r | r | r | r |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| STIMULUS[15:0] | |||||||||||||||
| r | r | r | r | r | r | r | r | r | r | r | r | r | r | r | r |
Bits 31:0 STIMULUS[31:0] : Write data is output on the trace bus as a software event packet.
When reading, bit 0 is a FIFOREADY indicator:
0: Stimulus port buffer is full (or port is disabled).
1: Stimulus port can accept new write data.
36.9.2 ITM trace enable register (ITM_TER)
Address offset: 0xE00
Reset value: 0x0000 0000

| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| STIMENA[31:16] | |||||||||||||||
| r | r | r | r | r | r | r | r | r | r | r | r | r | r | r | r |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| STIMENA[15:0] | |||||||||||||||
| r | r | r | r | r | r | r | r | r | r | r | r | r | r | r | r |
Bits 31:0 STIMENA[31:0] : enable for stimulus port
Each bit n (31:0) enables the stimulus port associated with the ITM_STIMRn register.
0: Port disabled
1: Port enabled
36.9.3 ITM trace privilege register (ITM_TPR)
Address offset: 0xE40
Reset value: 0x0000 0000

| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| PRIVMASK[31:16] | |||||||||||||||
| r | r | r | r | r | r | r | r | r | r | r | r | r | r | r | r |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| PRIVMASK[15:0] | |||||||||||||||
| r | r | r | r | r | r | r | r | r | r | r | r | r | r | r | r |
Bits 31:0 PRIVMASK[31:0] : Enables unprivileged access to ITM stimulus ports.
Each bit controls eight stimulus ports.
XXX0: Unprivileged access permitted on ports 0 to 7
XXX1: Only privileged access permitted on ports 0 to 7
XX0X: Unprivileged access permitted on ports 8 to 15
XX1X: Only privileged access permitted on ports 8 to 15
X0XX: Unprivileged access permitted on ports 16 to 23
X1XX: Only privileged access permitted on ports 16 to 23
0XXX: Unprivileged access permitted on ports 24 to 31
1XXX: Only privileged access permitted on ports 24 to 31
Note: PRIVMASK is a 32-bit value, the above listed values apply only on the lower 4 bits (PRIVMASK[3:0]), with PRIVMASK[31:4] = 0xXXXXXXXX.
36.9.4 ITM trace control register (ITM_TCR)
Address offset: 0xE80
Reset value: 0x0000 0000
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | BUSY | TRACEBUSID[6:0] | ||||||
| rw | rw | rw | rw | rw | rw | rw | rw | ||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Res. | Res. | Res. | Res. | Res. | Res. | TSPRESCALE[1:0] | Res. | Res. | Res. | SWOENA | TXENA | SYNCENA | TSENA | ITMENA | |
| rw | rw | r | rw | rw | rw | rw | |||||||||
Bits 31:24 Reserved, must be kept at reset value.
Bit 23 BUSY : Indicates whether the ITM is currently processing events (read only).
0: Not busy
1: Busy
Bits 22:16 TRACEBUSID[6:0] : identifier for multi-source trace stream formatting
If multi-source trace is in use, the debugger must write a non-zero value to this field.
Note: Different IDs must be used for each trace source in the system.
Bits 15:10 Reserved, must be kept at reset value.
Bits 9:8 TSPRESCALE[1:0] : local timestamp prescaler
Used with the trace packet reference clock. The possible values are:
0x0: No prescaling
0x1: Divides by 4.
0x2: Divides by 16.
0x3: Divides by 64.
Bits 7:5 Reserved, must be kept at reset value.
Bit 4 SWOENA : enable for asynchronous clocking of the timestamp counter (read only)
0: Timestamp counter uses processor clock
Bit 3 TXENA : Enables forwarding of hardware event packets from the DWT unit to the trace port.
0: Disabled
1: Enabled
Bit 2 SYNCENA : enable for packet transmission synchronization
Note: The debugger setting this bit must also configure the DWT_CTRLR register SYNCTAP field in the DWT for the correct synchronization speed.
0: Disabled
1: Enabled
Bit 1 TSENA : enable for local timestamp generation
0: Disabled
1: Enabled
Bit 0 ITMENA : ITM enable
0: Disabled
1: Enabled
36.9.5 ITM CoreSight peripheral identity register 4 (ITM_PIDR4)
Address offset: 0xFD0
Reset value: 0x0000 0004
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | F4KCOUNT[3:0] | JEP106CON[3:0] | ||||||
| r | r | r | r | r | r | r | r | ||||||||
Bits 31:8 Reserved, must be kept at reset value.
Bits 7:4 F4KCOUNT[3:0] : register file size
0x0: Register file occupies a single 4-Kbyte region.
Bits 3:0 JEP106CON[3:0] : JEP106 continuation code
0x4: Arm® JEDEC code
36.9.6 ITM CoreSight peripheral identity register 0 (ITM_PIDR0)
Address offset: 0xFE0
Reset value: 0x0000 0001
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | PARTNUM[7:0] | |||||||
| r | r | r | r | r | r | r | r | ||||||||
Bits 31:8 Reserved, must be kept at reset value.
Bits 7:0 PARTNUM[7:0] : part number bits [7:0]
0x01: ITM part number
36.9.7 ITM CoreSight peripheral identity register 1 (ITM_PIDR1)
Address offset: 0xFE4
Reset value: 0x0000 00B0
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | JEP106ID[3:0] | PARTNUM[11:8] | ||||||
| r | r | r | r | r | r | r | r | ||||||||
Bits 31:8 Reserved, must be kept at reset value.
Bits 7:4 JEP106ID[3:0] : JEP106 identity code bits [3:0]
0xB: Arm® JEDEC code
Bits 3:0 PARTNUM[11:8] : part number bits [11:8]
0x0: ITM part number
36.9.8 ITM CoreSight peripheral identity register 2 (ITM_PIDR2)
Address offset: 0xFE8
Reset value: 0x0000 003B
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | REVISION[3:0] | JEDEC | JEP106ID[6:4] | |||||
| r | r | r | r | r | r | r | r | ||||||||
Bits 31:8 Reserved, must be kept at reset value.
Bits 7:4 REVISION[3:0] : component revision number
0x3: r0p4
Bit 3 JEDEC : JEDEC assigned value
0x1: Designer ID specified by JEDEC
Bits 2:0 JEP106ID[6:4] : JEP106 identity code bits [6:4]
0x3: Arm® JEDEC code
36.9.9 ITM CoreSight peripheral identity register 3 (ITM_PIDR3)
Address offset: 0xFEC
Reset value: 0x0000 0000
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | REVAND[3:0] | CMOD[3:0] | ||||||
| r | r | r | r | r | r | r | r | ||||||||
Bits 31:8 Reserved, must be kept at reset value.
Bits 7:4 REVAND[3:0] : metal fix version
0x0: No metal fix
Bits 3:0 CMOD[3:0] : customer modified
0x0: No customer modifications
36.9.10 ITM CoreSight component identity register 0 (ITM_CIDR0)
Address offset: 0xFF0
Reset value: 0x0000 000D
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | PREAMBLE[7:0] | |||||||
| r | r | r | r | r | r | r | r | ||||||||
Bits 31:8 Reserved, must be kept at reset value.
Bits 7:0 PREAMBLE[7:0] : component ID bits [7:0]
0x0D: Common ID value
36.9.11 ITM CoreSight peripheral identity register 1 (ITM_CIDR1)
Address offset: 0xFF4
Reset value: 0x0000 00E0
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | ||||||||
| CLASS[3:0] | PREAMBLE[11:8] | ||||||||||||||
| r | r | r | r | r | r | r | r | ||||||||
Bits 31:8 Reserved, must be kept at reset value.
Bits 7:4 CLASS[3:0] : component ID bits [15:12] - component class
0xE: Trace generator component
Bits 3:0 PREAMBLE[11:8] : component ID bits [11:8]
0x0: Common ID value
36.9.12 ITM CoreSight component identity register 2 (ITM_CIDR2)
Address offset: 0xFF8
Reset value: 0x0000 0005
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | ||||||||
| PREAMBLE[19:12] | |||||||||||||||
| r | r | r | r | r | r | r | r | ||||||||
Bits 31:8 Reserved, must be kept at reset value.
Bits 7:0 PREAMBLE[19:12] : component ID bits [23:16]
0x05: Common ID value
36.9.13 ITM CoreSight component identity register 3 (ITM_CIDR3)
Address offset: 0xFFC
Reset value: 0x0000 00B1
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | PREAMBLE[27:20] | |||||||
| r | r | r | r | r | r | r | r | ||||||||
Bits 31:8 Reserved, must be kept at reset value.
Bits 7:0 PREAMBLE[27:20] : component ID bits [31:24]
0xB1: Common ID value
36.9.14 ITM register map
Table 267. ITM register map and reset values
| Offset | Register name | 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 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0x000 to 0x07C | ITM_STIM0-31R | STIMULUS[31:0] | |||||||||||||||||||||||||||||||
| Reset value | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | |
| 0x080 | ITM_TER | STIMENA[31:0] | |||||||||||||||||||||||||||||||
| Reset value | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |
| 0x084 to 0xDCC | Reserved | Reserved. | |||||||||||||||||||||||||||||||
| 0xE00 | ITM_TPR | PRIVMASK[31:0] | |||||||||||||||||||||||||||||||
| Reset value | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |
| 0xE04 to 0xE4C | Reserved | Reserved. | |||||||||||||||||||||||||||||||
| 0xE80 | ITM_TCR | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | BUSY | TRACEBUSID[6:0] | Res. | Res. | Res. | Res. | Res. | Res. | TSPRESCALE[1:0] | Res. | Res. | SWOENA | TXENA | SYNCENA | TSENA | ITMENA | ||||||||
| Reset value | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||||||||||||||||||
| 0xE84 to 0xFCC | Reserved | Reserved. | |||||||||||||||||||||||||||||||
| 0xFD0 | ITM_PIDR4 | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | F4KCOUNT [3:0] | JEP106CON [3:0] | ||||||
| Reset value | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | |||||||||||||||||||||||||
| 0xFD4 to 0xFDC | Reserved | Reserved. | |||||||||||||||||||||||||||||||
| 0xFE0 | ITM_PIDR0 | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | PARTNUM[7:0] | |||||||
| Reset value | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | |||||||||||||||||||||||||
| 0xFE4 | ITM_PIDR1 | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | JEP106ID [3:0] | PARTNUM [11:8] | ||||||
| Reset value | 1 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | |||||||||||||||||||||||||
Table 267. ITM register map and reset values (continued)
| Offset | Register name | 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 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0xFE8 | ITM_PIDR2 | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | REVISION [3:0] | JEDEC | JEP106ID [6:4] | |||||
| Reset value | 0 | 0 | 1 | 1 | 1 | 0 | 1 | 1 | |||||||||||||||||||||||||
| 0xFEC | ITM_PIDR3 | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | REVAND[3:0] | CMOD[3:0] | ||||||
| Reset value | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||||||||||||||||||||||||
| 0xFF0 | ITM_CIDR0 | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | PREAMBLE[7:0] | |||||||
| Reset value | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | |||||||||||||||||||||||||
| 0xFF4 | ITM_CIDR1 | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | CLASS[3:0] | PREAMBLE [11:8] | ||||||
| Reset value | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | |||||||||||||||||||||||||
| 0xFF8 | ITM_CIDR2 | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | PREAMBLE[19:12] | |||||||
| Reset value | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | |||||||||||||||||||||||||
| 0xFFC | ITM_CIDR3 | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | PREAMBLE[27:20] | |||||||
| Reset value | 1 | 0 | 1 | 1 | 0 | 0 | 0 | 1 | |||||||||||||||||||||||||
Refer to Section 36.7: ROM table for the register boundary addresses.
36.10 Trace port interface unit (TPIU)
The TPIU formats the trace stream and outputs it on the external trace port signals. The TPIU has one ATB slave ports for incoming trace data from the ITM. The trace port is the serial-wire output, TRACESWO.
Figure 375 shows the TPIU architecture.
Figure 375. TPIU architecture

graph LR
ITM_ATB[ITM ATB] --> ATB_IF[ATB interface]
subgraph TPIU
ATB_IF --> Formatter[Formatter]
Formatter --> Trace_Out[Trace output serializer]
APB_IF[APB interface] <--> Formatter
end
Trace_Out --> TRACESWO[TRACESWO]
PPB[PPB] <--> APB_IF
For more information on the TPIU, refer to the Arm ® CoreSight ™ SoC-400 Technical Reference Manual [2].
36.10.1 TPIU supported port size register (TPIU_SSPSR)
Address offset: 0x000
Reset value: 0x0000 000F

| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| PORTSIZE[31:16] | |||||||||||||||
| r | r | r | r | r | r | r | r | r | r | r | r | r | r | r | r |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| PORTSIZE[15:0] | |||||||||||||||
| r | r | r | r | r | r | r | r | r | r | r | r | r | r | r | r |
Bits 31:0 PORTSIZE[31:0] : supported trace port sizes, from 1 to 32 pins
Bit n-1 when set indicates that port size n is supported.
0x0000 000F: Port sizes 1 to 4 supported
36.10.2 TPIU current port size register (TPIU_CSPSR)
Address offset: 0x004
Reset value: 0x0000 0001

| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| PORTSIZE[31:16] | |||||||||||||||
| rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| PORTSIZE[15:0] | |||||||||||||||
| rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw |
Bits 31:0 PORTSIZE[31:0] : current trace port size
Bit n-1 when set indicates that the current port size is n pins. The value of n must be within the range of supported port sizes (1-4). Only one bit can be set, or unpredictable behaviour may result. This register must be modified only when the formatter is stopped.
36.10.3 TPIU asynchronous clock prescaler register (TPIU_ACPR)
Address offset: 0x010
Reset value: 0x0000 0000

| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Res. | Res. | Res. | PRESCALER[12:0] | ||||||||||||
| rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | |||
Bits 31:13 Reserved, must be kept at reset value.
Bits 12:0
PRESCALER[12:0]
: selects the baud rate for the asynchronous output, TRACESWO
The baud rate is given by the TRACECLKIN frequency divided by (PRESCALER + 1).
36.10.4 TPIU selected pin protocol register (TPIU_SPPR)
Address offset: 0x0F0
Reset value: 0x0000 0001
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | TXMODE[1:0] | |
| rw | rw |
Bits 31:2 Reserved, must be kept at reset value.
Bits 1:0
TXMODE[1:0]
: selects the protocol used for trace output
0x0: reserved (parallel trace port mode not supported in this device)
0x1: Asynchronous SWO using Manchester encoding
0x2: Asynchronous SWO using NRZ encoding
0x3: reserved
36.10.5 TPIU formatter and flush status register (TPIU_FFSR)
Address offset: 0x300
Reset value: 0x0000 0008
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | FTNON STOP | TCPRE SENT | FTSTO PPED | FLINPR OG |
| r | r | r | r |
Bits 31:4 Reserved, must be kept at reset value.
Bit 3
FTNONSTOP
: indicates whether formatter can be stopped or not
1: Formatter cannot be stopped.
Bit 2 TCPRESENT : indicates whether the optional TRACECTL output pin is available for use
0: TRACECTL pin is not present in this device.
Bit 1 FTSTOPPED : stop request signal received
The formatter received a stop request signal and all trace data and post-amble is sent. Any additional trace data on the ATB interface is ignored.
0: Formatter not stopped
1: Formatter stopped
Bit 0 FLINPROG : flush in progress
This bit indicates whether a flush on the ATB slave port is in progress and reflects the status of the AFVALIDS output. A flush can be initiated by the flush control bits in the TPIU_FFCR register.
0: No flush in progress
1: Flush in progress
36.10.6 TPIU formatter and flush control register (TPIU_FFCR)
Address offset: 0x304
Reset value: 0x0000 0102
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | TRIGIN | Res. | Res. | Res. | Res. | Res. | Res. | ENFCONT | Res. |
| r | rw |
Bits 31:9 Reserved, must be kept at reset value.
Bit 8 TRIGIN : trigger on trigger in
1: Indicates a trigger in the trace stream when the TRIGIN input is asserted.
Bits 7:2 Reserved, must be kept at reset value.
Bit 1 ENFCONT : continuous formatting enable
Setting this bit to 0 in SWO mode bypasses the formatter and only ITM/DWT trace is output.
0: Continuous formatting disabled
1: Continuous formatting enabled
Bit 0 Reserved, must be kept at reset value.
36.10.7 TPIU formatter synchronization counter register (TPIU_FSCR)
Address offset: 0x308
Reset value: 0x0000 0040
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Res. | Res. | Res. | CYCCOUNT[12:0] | ||||||||||||
| rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | rw | |||
Bits 31:13 Reserved, must be kept at reset value.
Bits 12:0 CYCCOUNT[12:0] : enables effective use of different sized TPAs without wasting large amounts of the storage capacity of the capture device
This counter contains the number of formatter frames since the last synchronization packet of 128 bits. It is a 12-bit counter with a maximum count value of 4096. This equates to synchronization every 65536 bytes, that is, 4096 packets x 16 bytes per packet. The default is set up for a synchronization packet every 1024 bytes, that is, every 64 formatter frames. If the formatter is configured for continuous mode, full and half-word sync frames are inserted during normal operation. Under these circumstances, the count value is the maximum number of complete frames between full synchronization packets.
36.10.8 TPIU claim tag set register (TPIU_CLAIMSETR)
Address offset: 0xFA0
Reset value: 0x0000 000F
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | CLAIMSET[3:0] | |||
| rw | rw | rw | rw | ||||||||||||
Bits 31:4 Reserved, must be kept at reset value.
Bits 3:0 CLAIMSET[3:0] : sets claim tag bits
Write:
0000: No effect
xxx1: Sets bit 0.
xx1x: Sets bit 1.
x1xx: Sets bit 2.
1xxx: Sets bit 3.
Read:
0xF: Indicates there are four bits in claim tag.
36.10.9 TPIU claim tag clear register (TPIU_CLAIMCLR)
Address offset: 0xFA4
Reset value: 0x0000 0000
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | CLAIMCLR[3:0] | |||
| rw | rw | rw | rw | ||||||||||||
Bits 31:4 Reserved, must be kept at reset value.
Bits 3:0 CLAIMCLR[3:0] : resets claim tag bits
Write:
0000: No effect
xxx1: Clears bit 0.
xx1x: Clears bit 1.
x1xx: Clears bit 2.
1xxx: Clears bit 3.
Read: Returns current value of claim tag.
36.10.10 TPIU device configuration register (TPIU_DEVIDR)
Address offset: 0xFC8
Reset value: 0x0000 0CA0
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Res. | Res. | Res. | Res. | SWONRZ | SWOMAN | TCLKDATA | FIFOSIZE[2:0] | CLKRE LAT | MAXNUM[4:0] | ||||||
| r | r | r | r | r | r | r | r | r | r | r | r | ||||
Bits 31:12 Reserved, must be kept at reset value.
Bit 11 SWONRZ : indicates whether serial-wire output, NRZ, is supported
1: Supported
Bit 10 SWOMAN : indicates whether serial-wire output, Manchester encoded format, is supported
1: Supported
Bit 9 TCLKDATA : indicates whether trace clock plus data is supported
0: Supported
Bits 8:6 FIFOSIZE[2:0] : FIFO size in powers of two
0x2: FIFO size = 4 bytes
Bit 5 CLKRELAT : indicates relationship between ATB clock and TRACECLKIN
0: Synchronous
1: Asynchronous
Bits 4:0 MAXNUM[4:0] : number/type of ATB input port multiplexing
0x0: one input port
36.10.11 TPIU device type identifier register (TPIU_DEVTYPE)
Address offset: 0xFCC
Reset value: 0x0000 0011
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | SUBTYPE[3:0] | MAJORTYPE[3:0] | ||||||
| r | r | r | r | r | r | r | r | ||||||||
Bits 31:8 Reserved, must be kept at reset value.
Bits 7:4 SUBTYPE[3:0] : sub-classification
0x1: trace port component
Bits 3:0 MAJORTYPE[3:0] : major classification
0x1: trace sink component
36.10.12 TPIU CoreSight peripheral identity register 4 (TPIU_PIDR4)
Address offset: 0xFD0
Reset value: 0x0000 0004
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | F4KCOUNT[3:0] | JEP106CON[3:0] | ||||||
| r | r | r | r | r | r | r | r | ||||||||
Bits 31:8 Reserved, must be kept at reset value.
Bits 7:4 F4KCOUNT[3:0] : register file size
0x0: Register file occupies a single 4-Kbyte region.
Bits 3:0 JEP106CON[3:0] : JEP106 continuation code
0x4: Arm® JEDEC code
36.10.13 TPIU CoreSight peripheral identity register 0 (TPIU_PIDR0)
Address offset: 0xFE0
Reset value: 0x0000 00A1
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | ||||||||
| PARTNUM[7:0] | |||||||||||||||
| r | r | r | r | r | r | r | r | ||||||||
Bits 31:8 Reserved, must be kept at reset value.
Bits 7:0 PARTNUM[7:0] : part number bits [7:0]
0x02: TPIU part number
36.10.14 TPIU CoreSight peripheral identity register 1 (TPIU_PIDR1)
Address offset: 0xFE4
Reset value: 0x0000 00B9
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | ||||||||
| JEP106ID[3:0] | PARTNUM[11:8] | ||||||||||||||
| r | r | r | r | r | r | r | r | ||||||||
Bits 31:8 Reserved, must be kept at reset value.
Bits 7:4 JEP106ID[3:0] : JEP106 identity code bits [3:0]
0xB: Arm® JEDEC code
Bits 3:0 PARTNUM[11:8] : part number bits [11:8]
0x0: TPIU part number
36.10.15 TPIU CoreSight peripheral identity register 2 (TPIU_PIDR2)
Address offset: 0xFE8
Reset value: 0x0000 004B
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | REVISION[3:0] | JEDEC | JEP106ID[6:4] | |||||
| r | r | r | r | r | r | r | r | ||||||||
Bits 31:8 Reserved, must be kept at reset value.
Bits 7:4 REVISION[3:0] : component revision number
0x4: r0p5
Bit 3 JEDEC : JEDEC assigned value
0x1: Designer ID specified by JEDEC
Bits 2:0 JEP106ID[6:4] : JEP106 identity code bits [6:4]
0x3: Arm ® JEDEC code
36.10.16 TPIU CoreSight peripheral identity register 3 (TPIU_PIDR3)
Address offset: 0xFEC
Reset value: 0x0000 0000
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | REVAND[3:0] | CMOD[3:0] | ||||||
| r | r | r | r | r | r | r | r | ||||||||
Bits 31:8 Reserved, must be kept at reset value.
Bits 7:4 REVAND[3:0] : metal fix version
0x0: No metal fix
Bits 3:0 CMOD[3:0] : customer modified
0x0: No customer modifications
36.10.17 TPIU CoreSight component identity register 0 (TPIU_CIDR0)
Address offset: 0xFF0
Reset value: 0x0000 000D

| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | PREAMBLE[7:0] | |||||||
| r | r | r | r | r | r | r | r | ||||||||
Bits 31:8 Reserved, must be kept at reset value.
Bits 7:0 PREAMBLE[7:0] : component ID bits [7:0]
0x0D: Common ID value
36.10.18 TPIU CoreSight peripheral identity register 1 (TPIU_CIDR1)
Address offset: 0xFF4
Reset value: 0x0000 0090

| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | CLASS[3:0] | PREAMBLE[11:8] | ||||||
| r | r | r | r | r | r | r | r | ||||||||
Bits 31:8 Reserved, must be kept at reset value.
Bits 7:4 CLASS[3:0] : component ID bits [15:12] - component class
0x9: CoreSight component
Bits 3:0 PREAMBLE[11:8] : component ID bits [11:8]
0x0: Common ID value
36.10.19 TPIU CoreSight component identity register 2 (TPIU_CIDR2)
Address offset: 0xFF8
Reset value: 0x0000 0005
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | PREAMBLE[19:12] | |||||||
| r | r | r | r | r | r | r | r | ||||||||
Bits 31:8 Reserved, must be kept at reset value.
Bits 7:0 PREAMBLE[19:12] : component ID bits [23:16]
0x05: Common ID value
36.10.20 TPIU CoreSight component identity register 3 (TPIU_CIDR3)
Address offset: 0xFFC
Reset value: 0x0000 00B1
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | PREAMBLE[27:20] | |||||||
| r | r | r | r | r | r | r | r | ||||||||
Bits 31:8 Reserved, must be kept at reset value.
Bits 7:0 PREAMBLE[27:20] : component ID bits [31:24]
0xB1: Common ID value
36.10.21 TPIU register map
Table 268. TPIU register map and reset values
| Offset | Register name | 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 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0x000 | TPIU_SSPSR | PORTSIZE[31:0] | |||||||||||||||||||||||||||||||
| Reset value | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | |
| 0x004 | TPIU_CSPSR | PORTSIZE[31:0] | |||||||||||||||||||||||||||||||
| Reset value | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | |
| 0x008 to 0x00C | Reserved | Reserved. | |||||||||||||||||||||||||||||||
| 0x010 | TPIU_ACPR | Res | Res | Res | Res | Res | Res | Res | Res | Res | Res | Res | Res | Res | Res | Res | Res | Res | Res | Res | PRESCALER[12:0] | ||||||||||||
| Reset value | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ||||||||||||||||||||
Table 268. TPIU register map and reset values (continued)
| Offset | Register name | 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 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0x014 to 0x0EC | Reserved | Reserved. | ||||||||||||||||||||||||||||||||
| 0x0F0 | TPIU_SPPR | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | TXMODE[1:0] | |
| Reset value | 0 1 | |||||||||||||||||||||||||||||||||
| 0x0F4 to 0x2FC | Reserved | Reserved. | ||||||||||||||||||||||||||||||||
| 0x300 | TPIU_FFSR | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | FTNONSTOP | TCPPRESENT | FTSTOPPED | FLINPROG | |
| Reset value | 1 | 0 | 0 | 0 | ||||||||||||||||||||||||||||||
| 0x304 | TPIU_FFCR | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | TRIGIN | Res. | Res. | Res. | Res. | Res. | Res. | Res. | ENFCONT | Res. | |
| Reset value | 0 | 1 | ||||||||||||||||||||||||||||||||
| 0x308 | TPIU_FSCR | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | CYCCOUNT[12:0] | |||||||||||||
| Reset value | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | ||||||||||||||||||||||
| 0x30C to 0xF8C | Reserved | Reserved. | ||||||||||||||||||||||||||||||||
| 0xFA0 | TPIU_CLAIMSETR | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | CLAIMSET[3:0] | ||||
| Reset value | 1 | 1 | 1 | 1 | ||||||||||||||||||||||||||||||
| 0xFA4 | TPIU_CLAIMCLR | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | CLAIMCLR[3:0] | ||||
| Reset value | 0 | 0 | 0 | 0 | ||||||||||||||||||||||||||||||
| 0xFA8 to 0xF | Reserved | Reserved. | ||||||||||||||||||||||||||||||||
| 0xFC8 | TPIU_DEVIDR | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | SWONRZ | SWOMAN | TCLKDATA | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | MAXNUM[4:0] | |||
| Reset value | 1 | 1 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | ||||||||||||||||||||||
| 0xFC8 | TPIU_DEVTYPE | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | SUBTYPE[3:0] | MAJORTYPE[3:0] | |||
| Reset value | 0 | 0 | 0 | 1 | ||||||||||||||||||||||||||||||
| 0xFCC | Reserved | Reserved. | ||||||||||||||||||||||||||||||||
| 0xFD0 | TPIU_PIDR4 | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | F4KCOUNT[3:0] | JEP106CON[3:0] | |||
| Reset value | 0 | 0 | 0 | 0 | ||||||||||||||||||||||||||||||
| 0xFD4 to 0xFDC | Reserved | Reserved. | ||||||||||||||||||||||||||||||||
| 0xFE0 | TPIU_PIDR0 | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | PARTNUM[7:0] | ||
| Reset value | 1 | 0 | 1 | 0 | ||||||||||||||||||||||||||||||
| 0xFE4 | TPIU_PIDR1 | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | JEP106ID[3:0] | PARTNUM[11:8] | |||
| Reset value | 1 | 0 | 1 | 1 | ||||||||||||||||||||||||||||||
Table 268. TPIU register map and reset values (continued)
| Offset | Register name | 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 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0xFE8 | TPIU_PIDR2 | Res | Res | Res | Res | Res | Res | Res | Res | Res | Res | Res | Res | Res | Res | Res | Res | Res | Res | Res | Res | Res | Res | Res | Res | REVISION [3:0] | JEDEC | JEP106ID [6:4] | |||||
| Reset value | 0 | 1 | 0 | 0 | 1 | 0 | 1 | 1 | |||||||||||||||||||||||||
| 0xFEC | TPIU_PIDR3 | Res | Res | Res | Res | Res | Res | Res | Res | Res | Res | Res | Res | Res | Res | Res | Res | Res | Res | Res | Res | Res | Res | Res | Res | REVAND[3:0] | CMOD[3:0] | ||||||
| Reset value | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||||||||||||||||||||||||
| 0xFF0 | TPIU_CIDR0 | Res | Res | Res | Res | Res | Res | Res | Res | Res | Res | Res | Res | Res | Res | Res | Res | Res | Res | Res | Res | Res | Res | Res | Res | PREAMBLE[7:0] | |||||||
| Reset value | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | |||||||||||||||||||||||||
| 0xFF4 | TPIU_CIDR1 | Res | Res | Res | Res | Res | Res | Res | Res | Res | Res | Res | Res | Res | Res | Res | Res | Res | Res | Res | Res | Res | Res | Res | Res | CLASS[3:0] | PREAMBLE [11:8] | ||||||
| Reset value | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | |||||||||||||||||||||||||
| 0xFF8 | TPIU_CIDR2 | Res | Res | Res | Res | Res | Res | Res | Res | Res | Res | Res | Res | Res | Res | Res | Res | Res | Res | Res | Res | Res | Res | Res | Res | PREAMBLE[19:12] | |||||||
| Reset value | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | |||||||||||||||||||||||||
| 0xFFC | TPIU_CIDR3 | Res | Res | Res | Res | Res | Res | Res | Res | Res | Res | Res | Res | Res | Res | Res | Res | Res | Res | Res | Res | Res | Res | Res | Res | PREAMBLE[27:20] | |||||||
| Reset value | 1 | 0 | 1 | 1 | 0 | 0 | 0 | 1 | |||||||||||||||||||||||||
Refer to Section 36.7: ROM table for the register boundary addresses.
36.11 Microcontroller debug unit (DBGMCU)
DBGMCU is a component containing a number of registers that control the power and clock behavior in debug mode. It allows the debugger (or the debug software) to perform the following tasks:
- • Maintain the clock and power to the processor cores when in low-power modes (Sleep, Stop or Standby).
- • Maintain the clock and power to the system debug and trace components when in low-power modes.
- • Stop the clock to certain peripherals (such as watchdogs, timers, RTC) when the processor core is stopped in debug mode.
DBGMCU registers are not reset by a system reset, only by a power on reset. They are accessible to the debugger via the CPU AHB access port at base address 0xE0042000.
Note: DBGMCU is not a standard CoreSight component, consequently it does not appear in the ROM table.
36.11.1 DBGMCU identity code register (DBGMCU_IDCODER)
Address offset: 0x000
Reset value: 0xXXXX 6497
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| REV_ID[15:0] | |||||||||||||||
| r | r | r | r | r | r | r | r | r | r | r | r | r | r | r | r |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Res. | Res. | Res. | Res. | DEV_ID[11:0] | |||||||||||
| r | r | r | r | r | r | r | r | r | r | r | r | ||||
Bits 31:16 REV_ID[15:0] : revision
For values, refer to the device errata sheet.
Bits 15:12 Reserved, must be kept at reset value.
Bits 11:0 DEV_ID[11:0] : device ID
0x497: STM32WLE5x
36.11.2 DBGMCU configuration register (DBGMCU_CR)
Address offset: 0x004
Reset value: 0x0000 0000
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | DBG_STANDBY | DBG_STOP | DBG_SLEEP |
| rw | rw | rw |
Bits 31:3 Reserved, must be kept at reset value.
Bit 2 DBG_STANDBY : Allows debug in Standby mode
0: Normal operation. All clocks are disabled and the domain powered down automatically in Standby mode.
1: Automatic clock stop/power down disabled. All active clocks and oscillators continue to run during Standby mode and the domain supply is maintained, allowing full debug capability. On exit from Standby mode, a domain reset is performed.
Bit 1 DBG_STOP : Allows debug in Stop mode
0: Normal operation. All clocks are disabled automatically in Stop mode.
1: Automatic clock stop disabled. All active clocks and oscillators continue to run during Stop mode, allowing full debug capability. On exit from Stop mode, the clock settings are set to the Stop mode exit state.
Bit 0 DBG_SLEEP : Allows debug in Sleep mode
0: Normal operation. Processor clock is stopped automatically in Sleep mode.
1: Automatic clock stop disabled. Processor clock continue to run, allowing full debug capability.
36.11.3 DBGMCU_APB1 peripheral freeze register 1 (DBGMCU_APB1FZR1)
Address offset: 0x03C
Reset value: 0x0000 0000
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| DBG_LPTIM1_STOP | Res. | Res. | Res. | Res. | Res. | Res. | Res. | DBG_I2C3_STOP | DBG_I2C2_STOP | DBG_I2C1_STOP | Res. | Res. | Res. | Res. | Res. |
| rw | rw | rw | rw | ||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Res. | Res. | Res. | DBG_IWDG_STOP | DBG_WWDG_STOP | DBG_RTC_STOP | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | DBG_TIM2_STOP |
| rw | rw | rw | rw |
Bit 31 DBG_LPTIM1_STOP : LPTIM1 stop in CPU debug
0: Normal operation. LPTIM1 continues to operate while CPU is in debug mode.
1: Stop in debug. LPTIM1 is frozen while CPU is in debug mode.
Bits 30:24 Reserved, must be kept at reset value.
Bit 23 DBG_I2C3_STOP : I2C3 SMBUS timeout stop in CPU debug
0: Normal operation. I2C3 SMBUS timeout continues to operate while CPU is in debug mode.
1: Stop in debug. I2C3 SMBUS timeout is frozen while CPU is in debug mode.
Bit 22 DBG_I2C2_STOP : I2C2 SMBUS timeout stop in CPU debug
0: Normal operation. I2C2 SMBUS timeout continues to operate while CPU is in debug mode.
1: Stop in debug. I2C2 SMBUS timeout is frozen while CPU is in debug mode.
Bit 21 DBG_I2C1_STOP : I2C1 SMBUS timeout stop in CPU debug
0: Normal operation. I2C1 SMBUS timeout continues to operate while CPU is in debug mode.
1: Stop in debug. I2C1 SMBUS timeout is frozen while CPU is in debug mode.
Bits 20:13 Reserved, must be kept at reset value.
Bit 12 DBG_IWDG_STOP : IWDG stop in CPU debug
0: Normal operation. IWDG continues to operate while CPU is in debug mode.
1: Stop in debug. IWDG is frozen while CPU is in debug mode.
Bit 11 DBG_WWDG_STOP : WWDG stop in CPU debug
0: Normal operation. WWDG continues to operate while CPU is in debug mode.
1: Stop in debug. WWDG is frozen while CPU is in debug mode.
Bit 10 DBG_RTC_STOP : RTC stop in CPU debug
0: Normal operation. RTC continues to operate while CPU is in debug mode.
1: Stop in debug. RTC is frozen while CPU is in debug mode.
Bits 9:1 Reserved, must be kept at reset value.
Bit 0 DBG_TIM2_STOP : TIM2 stop in CPU debug
0: Normal operation. TIM2 continues to operate while CPU is in debug mode.
1: Stop in debug. TIM2 is frozen while CPU is in debug mode.
36.11.4 DBGMCU APB1 peripheral freeze register 2 (DBGMCU_APB1FZR2)
Address offset: 0x044
Reset value: 0x0000 0000
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | DBG_LPTIM3_STOP | DBG_LPTIM2_STOP | Res. | Res. | Res. | Res. | Res. |
| rw | rw |
Bits 31:7 Reserved, must be kept at reset value.
Bit 6 DBG_LPTIM3_STOP : LPTIM3 stop in CPU debug
0: Normal operation. LPTIM3 continues to operate while CPU is in debug mode.
1: Stop in debug. LPTIM3 is frozen while CPU is in debug mode.
Bit 5 DBG_LPTIM2_STOP : LPTIM2 stop in CPU debug
0: Normal operation. LPTIM2 continues to operate while CPU is in debug mode.
1: Stop in debug. LPTIM2 is frozen while CPU is in debug mode.
Bits 4:0 Reserved, must be kept at reset value.
36.11.5 DBGMCU APB2 peripheral freeze register (DBGMCU_APB2FZR)
Address offset: 0x04C
Reset value: 0x0000 0000
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | DBG_TIM17_STOP | DBG_TIM16_STOP | Res. |
| rw | rw | ||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Res. | Res. | Res. | Res. | DBG_TIM1_STOP | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. |
| rw |
Bits 31:19 Reserved, must be kept at reset value.
Bit 18 DBG_TIM17_STOP : TIM17 stop in CPU debug
0: Normal operation. TIM17 continues to operate while CPU is in debug mode.
1: Stop in debug. TIM17 is frozen while CPU is in debug mode.
Bit 17 DBG_TIM16_STOP : TIM16 stop in CPU debug
0: Normal operation. TIM16 continues to operate while CPU is in debug mode.
1: Stop in debug. TIM16 is frozen while CPU is in debug mode.
Bits 16:12 Reserved, must be kept at reset value.
Bit 11 DBG_TIM1_STOP : TIM1 stop in CPU debug
0: Normal operation. TIM1 continues to operate while CPU is in debug mode.
1: Stop in debug. TIM1 is frozen while CPU is in debug mode.
Bits 10:0 Reserved, must be kept at reset value.
36.11.6 DBGMCU register map
Table 269. DBGMCU register map and reset values
| Offset | Register name | 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 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0x000 | DBGMCU_IDCODER | REV_ID[15:0] | Res. | Res. | Res. | Res. | DEV_ID[11:0] | ||||||||||||||||||||||||||
| Reset value | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 1 | 1 | 1 | |||||
| 0x004 | DBGMCU_CR | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | DBG_STANDBY | DBG_STOP | DBG_SLEEP |
| Reset value | 0 | 0 | 0 | ||||||||||||||||||||||||||||||
| 0x008-0x038 | Reserved | Reserved. | |||||||||||||||||||||||||||||||
| 0x03C | DBGMCU_APB1FZR1 | DBG_LPTIM1_STOP | Res. | Res. | Res. | Res. | Res. | Res. | Res. | DBG_I2C3_STOP | DBG_I2C2_STOP | DBG_I2C1_STOP | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | DBG_IWDG_STOP | DBG_WWDG_STOP | DBG_RTC_STOP | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | DBG_TIM2_STOP | |
| Reset value | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||||||||||||||||||||||||
| 0x040 | Reserved | Reserved. | |||||||||||||||||||||||||||||||
| 0x044 | DBGMCU_APB1FZR2 | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | DBG_LPTIM3_STOP | DBG_LPTIM2_STOP | Res. | Res. | Res. | Res. | Res. | Res. |
| Reset value | 0 | 0 | |||||||||||||||||||||||||||||||
| 0x048 | Reserved | Reserved. | |||||||||||||||||||||||||||||||
| 0x04C | DBGMCU_APB2FZR | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | DBG_TIM17_STOP | DBG_TIM16_STOP | Res. | Res. | Res. | Res. | Res. | DBG_TIM1_STOP | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. |
| Reset value | 0 | 0 | 0 | ||||||||||||||||||||||||||||||
Refer to Section 36.11: Microcontroller debug unit (DBGMCU) for the register boundary addresses.
36.12 References
- 1. IHI 0031C (ID080813) - Arm ® Debug Interface Architecture Specification ADIv5.0 to ADIv5.2, Issue C, 8th Aug 2013
- 2. DDI 0480F (ID100313) - Arm ® CoreSight ™ SoC-400 r3p2 Technical Reference Manual, Issue G, 16th March 2015
- 3. DDI 0461B (ID010111) - Arm ® CoreSight ™ Trace Memory Controller r0p1 Technical Reference Manual, Issue B, 10 Dec 2010
- 4. DDI 0314H - Arm ® CoreSight ™ Components Technical Reference Manual, Issue H, 10 July, 2009
- 5. DDI 0403D (ID100710) - Arm ® v7-M Architecture Reference Manual, Issue E.b, 2 December 2014
- 6. DDI 0494-2a (ID062813) - Arm ® CoreSight ™ ETM ™ -M0+ r0p1 Technical Reference Manual, Issue D, 6 July, 2015
- 7. DDI 0440C (ID070610) - Arm ® CoreSight ™ ETM ™ -M4 r0p1 Technical Reference Manual, Issue C, 29 June 2012