register_lookup to answer what a register means. Use GDB to answer what value the target holds. Keeping those steps separate prevents a reset value from being reported as a live measurement.
Load SVD data
Embedder loads SVD-derived device data for the project’s selected platform. It checks the local.embedder/svd-cache first, then fetches project SVD data when the platform provides it.
The register tool is available only when at least one valid device is loaded. Refresh the project metadata if register_lookup reports:
Browse a peripheral
Ask for a peripheral name to list its registers:- Peripheral base address
- Register address, width, and access type
- Register and field descriptions when present
- Bit ranges when you request fields
Inspect one register
Give both the peripheral and register:read-onlywrite-onlyread-writewriteOnceread-writeOnce
Search by purpose
Use a free-text query when you do not know the peripheral name:Read the live value
1
Resolve the definition
Look up the register in the SVD and record the device, absolute address, width, access type, and field layout.
2
Preserve the target when needed
Ask for an attach-only GDB session if programming or reset would destroy the state you are investigating.
3
Read the value
Use a structured GDB expression or a raw memory read with the SVD width.
4
Decode supported fields
Apply only the masks, shifts, enum values, and access semantics present in the selected SVD or device reference.
Compare several cores or devices
When a project loads more than one SVD, the same peripheral name may exist in several address spaces. Ask for the device explicitly:Check register accesses in code
When SVD data is loaded, file-write validation can inspect changed C, Rust, and Python register accesses. It reports:- A write to a read-only register
- A read from a write-only register
- An unknown peripheral or register
- A literal address that does not map to a known register
Fix lookup problems
No SVD is loaded
No SVD is loaded
Confirm the project platform and MCU selection. Reopen or refresh the project so Embedder can load its cached or remote SVD data.
The peripheral name is not found
The peripheral name is not found
Search by function or accept the fuzzy suggestion, then verify the suggested peripheral against the selected device.
The address disagrees with the datasheet
The address disagrees with the datasheet
Check the SVD device name and silicon revision. Stop before reading or writing when the selected SVD does not match the target.
The reset value differs from hardware
The reset value differs from hardware
Reset values describe the SVD’s reset state. Clock, boot ROM, firmware, and debugger actions may have changed the live register before you read it.
A field is missing
A field is missing
Do not invent a mask. Use the device reference or another authoritative SVD for the exact target revision.
GDB debugging
Read the live register after you resolve its definition.
Combined workflows
Compare register evidence with logs and waveforms.

