probe-rs
Freea modern, embedded debugging toolkit, written in Rust
About probe-rs
A modern, embedded debugging toolkit written in Rust, providing a library and tools for interacting with embedded MCUs and debug probes. It offers a direct interface to debug probes, enabling other software to use its debug functionality. The project includes tools for flashing and debugging: cargo extensions, a VS Code extension (MS-DAP), a GDB server, and a standalone CLI. Supports ARM, RISC-V, and Xtensa cores via SWD or JTAG, connects to DAPLink, STLink, JLink, FTDI probes, ESP32 USB JTAG, WLink, and Blackmagic probe. Can read/write memory, halt/run/step cores, operate breakpoints, enable trace, and download ELF, BIN, and IHEX binaries using CMSIS-Pack flash algorithms. The recommended tool for most projects is 'probe-rs run', which flashes firmware, resets the target, and streams RTT/defmt output.
Key Features
Pros & Cons
- Open source and free to use
- Supports a wide range of debug probes and target architectures
- Multiple tool interfaces (CLI, VS Code, GDB) for flexibility
- Seamless integration with Cargo for Rust projects
- Active community and regular releases
- Limited to embedded MCU targets (ARM, RISC-V, Xtensa)
- Requires a compatible debug probe and basic understanding of embedded debugging
- Some probes may have limited support or require specific firmware
- Not a general-purpose debugger for desktop or server applications