Use J-Link to debug a target supported by your installed SEGGER software. A board appearing in Embedder’s catalog does not establish J-Link compatibility; verify the exact MCU and probe combination.
Prepare the host and board
- Install the SEGGER J-Link software for your host, including J-Link GDB Server. Embedder looks on
PATH and in common SEGGER installation directories.
- Connect the probe to the board’s debug connector, with the correct signal wiring, ground, and target voltage reference. Power the board and confirm the probe can identify the target.
- Build an ELF with debug symbols. Use the ELF from the installed firmware when attaching to an existing run.
- Record the exact SEGGER device name and the board’s SWD or JTAG interface. Close other applications holding the probe.
In the connection settings in EMBEDDER.md, use:
The device name must come from the installed SEGGER device list; a board name or a nearby MCU name is not a substitute. Ask Embedder to check J-Link readiness and list the detected probes before connecting.
Start a debug run
Switch to Debug mode with /debug. Give Embedder the artifact, device name, and interface:
Replace build/app.elf and the interface with your project’s values. A successful programming connection loads the ELF and attempts to stop at main. Check the reported stop location; a missing symbol or timeout does not establish that the intended code ran.
You can then request breakpoints, stepping, stack frames, variables, registers, or memory. See Common debugger workflow.
Attach to existing firmware
The normal connection programs the ELF. Request attach-only to load symbols without programming or running to main. Request no halt separately if the target should keep running.
Disabling run-to-main alone still permits programming. On a programming connection, requesting no halt causes Embedder to reset and halt after loading the ELF. Follow the attachment precautions; probe startup can still affect execution.
RTT and probe sharing
Use RTT for firmware output through J-Link. The standard debug connection enables RTT support, but the firmware must provide RTT channels. Starting a debugger can take over a probe used by an existing RTT session; check the active connection after switching workflows.
When finished, tell Embedder whether to leave the firmware running or halted, then disconnect the debugger. Stop competing sessions before starting another probe operation.
Troubleshoot
- J-Link GDB Server not found: install the complete SEGGER package or put its executable directory on the environment’s
PATH, then reopen Embedder.
- Unknown device: check the exact SEGGER name and whether your installed package supports it.
- Cannot connect: check target power, voltage reference, wiring, SWD/JTAG selection, and competing probe users.
- Wrong source or missing variables: use matching symbols and check optimization settings.
- Run-to-main fails: verify the entry path and
main symbol, then inspect the actual stop reason before continuing.
Last modified on September 12, 2026