BKPT LabsDOCS/BKPT DEBUG/PERIPHERAL REGISTERS BKPT DEBUG · VS CODE
BKPT DEBUG · USER GUIDE

Peripheral registers

The Peripheral Registers tile is the SVD-backed view of memory-mapped device registers. It is separate from Registers, which shows the Cortex-M core register bank. Open the MCU's CMSIS-SVD once; BKPT saves its path and all row actions in the workspace, then reloads them when that project opens.

The G474 clock-control register watched at a halt, with its value, named fields, and observation badge.
THE G474 CLOCK-CONTROL REGISTER WATCHED AT A HALT, WITH ITS VALUE, NAMED FIELDS, AND OBSERVATION BADGE

Use the filter with a peripheral, register, field, or full path such as RCC.CR. Expand a register to see its named fields, bit ranges, decoded values, enumerations, and descriptions from the SVD.

Register names come from the SVD. For example, the G474 vendor file calls the clock register RCC.RCC_CR, while another device's SVD may call it RCC.CR. Search a shorter name such as RCC if copying a path from a different device finds no rows.

Open an SVD

Choose Open SVD in the tile title bar and select the file for the exact device. The title shows the parsed device name, and the browser reports the number of peripherals and registers it loaded. Change SVD replaces the selection; the refresh button reparses the same file from disk.

The path is saved as bkptDebug.svd. A file inside the project is stored as a workspace-relative path; an installed vendor file can remain absolute. The poll rate and row actions are saved in bkptDebug.peripheralRegisters, while halt-on-access actions use the project's bkptDebug.dataWatchpoints list.

One action per register

Every row has one action selector. Picking a new action replaces the old one, so polling, streaming, and halting cannot silently compete for the same register.

The built-in action guide compares halt snapshots, probe polling, streamed DWT trace and DWT break actions.
THE BUILT-IN ACTION GUIDE COMPARES HALT SNAPSHOTS, PROBE POLLING, STREAMED DWT TRACE AND DWT BREAK ACTIONS
ACTION RESULT HARDWARE AND BEHAVIOR
Snapshot on haltValue and decoded fields in this tile; changes since the previous genuine stop are highlightedOne probe read at each breakpoint or pause. No DWT or SWO. Available only for registers the SVD marks safe to read.
Poll → TracesA sampled register track and bit view in TracesRepeated probe reads at the title-bar rate. No DWT or SWO; sees persistent changes made by the CPU, DMA, or the peripheral itself, but can miss short events.
Trace writes / reads / all accessEvent-driven values in Traces without stopping the coreOne DWT comparator and the on-chip SWO path. It observes CPU accesses only, not DMA. All access produces the most traffic.
Break on write / read / accessThe core halts and Data Watchpoints names the SVD register and access that hitOne DWT comparator. SWO and On-chip trace are not required.
OffNo reads, trace, or halt watch for this rowReleases the row's acquisition intent and any live comparator it owned.

The small POLL and DWT labels identify the mechanism. The neutral Halt snapshot, Probe sampled, and Hardware event badges explain the producer; hover them for timing, intervals, and reported loss. The ? button keeps the action comparison beside the controls. See data sources for the complete badge legend.

Snapshot and field changes

Snapshot mode reads only at a real stop. Repainting the panel or expanding a row does not create a new baseline. On the first stop BKPT shows the value without a false change; on the next breakpoint or pause it highlights both the register and the named fields whose values changed.

BKPT does not poll read-to-clear, write-only, or otherwise unsafe registers. The SVD access metadata explains why an Observe action is unavailable. DWT trace and break actions monitor the CPU bus access without performing a probe read, so they remain available where the target supports that access type.

An unavailable action has a specific explanation beside the control or in its hover. This includes inherited register/cluster access properties and read actions that clear, set, or otherwise modify bits. A register marked write-only or write-once is not an ordinary safe polling source. SVD files can be incomplete: consult the device reference manual for undocumented side effects rather than interpreting a missing warning as a guarantee.

This view does not yet provide general peripheral register/field writes. Expanding a field decodes it; it is not a bit-edit operation.

Poll into Traces

RCC.CR polled at 20 Hz while the target runs, with a register trace and its 32-bit value view.
RCC.CR POLLED AT 20 HZ WHILE THE TARGET RUNS, WITH A REGISTER TRACE AND ITS 32-BIT VALUE VIEW

Choose Poll → Traces, then set the shared rate in the tile title bar. Each polled peripheral row becomes a register track; it does not overwrite the last halt snapshot in this tile. BKPT uses the same live-memory connection and scheduler as ELF symbol watches, rather than starting one process or timer per register.

Polling is the right choice when there is no SWO connection, when DMA changes the register, or when you care about the value over time rather than every CPU access. Reduce the rate if the probe link is busy or the register changes slowly.

The dropdown is a requested rate shared by the selected peripheral poll rows. It is not a guaranteed per-register frequency. Hover a graph's source badge to compare the requested and actual intervals when available. A halt snapshot and a running poll graph remain separate observations.

DWT trace without halting

RCC.CR set to Trace all access, showing the DWT mechanism and assigned comparator beside the row.
RCC.CR SET TO TRACE ALL ACCESS, SHOWING THE DWT MECHANISM AND ASSIGNED COMPARATOR BESIDE THE ROW

Run Target Scan, enable On-chip trace in Hardware Trace, and choose the CPU access to stream. The row shows its real one-based DWT slot, or no free DWT when it could not be armed. A selection is not considered applied until the target reports the matching data-w, data-r, or data-rw function.

DWT comparator capacity is discovered from DWT_CTRL.NUMCOMP; BKPT does not assume the count of the board used for these screenshots. Halt watchpoints can use that full target-reported pool. Streamed DWT data packets are a separate case: their packet header identifies comparator slots 0 through 3, so at most four slots can be routed unambiguously into trace tracks even when a core has more comparators. Extra comparators remain available for halt watchpoints.

Every selected Trace action also appears in Breakpoints → Data watchpoints, including before a session starts or if setup fails. Saved means intent only; Armed means hardware accepted it. ! Error keeps the request visible with the reason in a hover. Use the row's edit to return to the peripheral control. Data watchpoints explains the complete status lifecycle.

DWT break on access

A Break on access action caught a CPU read of RCC.CR; the row shows the verified DWT halt watchpoint.
A BREAK ON ACCESS ACTION CAUGHT A CPU READ OF RCC.CR; THE ROW SHOWS THE VERIFIED DWT HALT WATCHPOINT

Break actions are hardware watchpoints. They work with profiling and on-chip trace off, and they appear in Data Watchpoints under the human-readable SVD name rather than only a raw address. Read and access matches depend on the access types implemented by that core's DWT; a rejected request stays visible with the target's reason.

Streamed trace and halt watchpoints share the physical DWT pool. BKPT plans them together, keeps halt watches in the target's higher available slots when possible, and never clears a slot owned by the other path while reconfiguring.

Session lifetime

Selections are project intent, but live acquisition belongs to the debug session. Continue starts or resumes the one shared polling pump and the on-chip decoder as needed; pause freezes polling and takes halt snapshots; Stop closes the live socket, cancels its timers, stops the decoder, and disarms session-owned DWT state. The saved SVD path and actions remain ready for the next session.