Releases: probe-rs/probe-rs
0.29.1
Release Notes
Released 2025-07-13
Added
Fixed
- Fixed nRF91xx memory map: set correct RAM size, added UICR memory region.
- Fixed an issue where RTT channel modes weren't configured properly (#3364) by @bugadani
- Fixed setting the Program Counter on ARMV8 in AArch32 mode (#3418) by @fdomke
- Fixed an issue where the Black Magic Probe would always disable target power on reset rather than leaving it alone. (#3431) by @xobs
- Fixed cortex-m
step()
erroring with "Timeout" if the single-step causes a lock-up. This fixes "timeout" errors trying to attach to certain chips with blank flash(no firmware). (#3452) by @Dirbaio - Fixed an issue where a MEM-AP whose BASE register did not have Present bit set (no ROM tables) would cause probe-rs to issue invalid memory accesses. This was discovered on an STM32H743. (#3404) by @whitequark
- Fixed printing stack trace on ctrl-c (#3380) by @bugadani
- Fixed panic in BlackMagicProbe introduced by 49ef7eb (#3398) by @xobs
- Fixed a crash affecting RISC-V devices. (#3391) by @bugadani
probe-rs-tools 0.29.1
Install probe-rs-tools 0.29.1
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/probe-rs/probe-rs/releases/download/v0.29.1/probe-rs-tools-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/probe-rs/probe-rs/releases/download/v0.29.1/probe-rs-tools-installer.ps1 | iex"
Install prebuilt binaries via Homebrew
brew install probe-rs/probe-rs/probe-rs
Download probe-rs-tools 0.29.1
File | Platform | Checksum |
---|---|---|
probe-rs-tools-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
probe-rs-tools-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
probe-rs-tools-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
probe-rs-tools-aarch64-unknown-linux-gnu.tar.xz | ARM64 Linux | checksum |
probe-rs-tools-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
Verifying GitHub Artifact Attestations
The artifacts in this release have attestations generated with GitHub Artifact Attestations. These can be verified by using the GitHub CLI:
gh attestation verify <file-path of downloaded artifact> --repo probe-rs/probe-rs
You can also download the attestation from GitHub and verify against that directly:
gh attestation verify <file-path of downloaded artifact> --bundle <file-path of downloaded attestation>
target-gen 0.29.1
Install target-gen 0.29.1
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/probe-rs/probe-rs/releases/download/v0.29.1/target-gen-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/probe-rs/probe-rs/releases/download/v0.29.1/target-gen-installer.ps1 | iex"
Install prebuilt binaries via Homebrew
brew install probe-rs/probe-rs/target-gen
Download target-gen 0.29.1
File | Platform | Checksum |
---|---|---|
target-gen-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
target-gen-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
target-gen-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
target-gen-aarch64-unknown-linux-gnu.tar.xz | ARM64 Linux | checksum |
target-gen-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
Verifying GitHub Artifact Attestations
The artifacts in this release have attestations generated with GitHub Artifact Attestations. These can be verified by using the GitHub CLI:
gh attestation verify <file-path of downloaded artifact> --repo probe-rs/probe-rs
You can also download the attestation from GitHub and verify against that directly:
gh attestation verify <file-path of downloaded artifact> --bundle <file-path of downloaded attestation>
rtthost 0.29.1
Install rtthost 0.29.1
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/probe-rs/probe-rs/releases/download/v0.29.1/rtthost-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/probe-rs/probe-rs/releases/download/v0.29.1/rtthost-installer.ps1 | iex"
Install prebuilt binaries via Homebrew
brew install probe-rs/probe-rs/rtthost
Download rtthost 0.29.1
File | Platform | Checksum |
---|---|---|
rtthost-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
rtthost-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
rtthost-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
rtthost-aarch64-unknown-linux-gnu.tar.xz | ARM64 Linux | checksum |
rtthost-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
Verifying GitHub Artifact Attestations
The artifacts in this release have attestations generated with GitHub Artifact Attestations. These can be verified by using the GitHub CLI:
gh attestation verify <file-path of downloaded artifact> --repo probe-rs/probe-rs
You can also download the attestation from GitHub and verify against that directly:
gh attestation verify <file-path of downloaded artifact> --bundle <file-path of downloaded attestation>
0.29.0
Release Notes
Released 2025-05-20
Added
- Added the ability to write back the CPSR on ARMv7A and ARMv7R cores. (#3354) by @xobs
- Added initial support for TI TMS570. (#3312) by @xobs
- Added outputting to binary/hex to the read command (#3322) by @Eekle
- Added an
Endian
enum and an.endianness()
call onCoreInterface
(#3343) by @xobs - probe-rs can now parse Xtensa and RISC-V coredumps from .elf format (#3293) by @bugadani
- Added
--probe
to thetest
verb fortarget-gen
(#3344) by @xobs - Added support for calling
BlankCheck
on a target to determine whether it has been erased for cases where a blank flash can't be determined by a simple memory compare, such as parts with ECC flash. (#3345) by @xobs - Added the
MemoryInterface::read()
default implementation, which was missing in the calls that are delegated to the memory object (#3349) by @xobs
Changed
- Always ensure that the ARMv7A core is halted when performing operations, since these require injecting instructions into the pipeline. (#3312) by @xobs
- Create helper functions for ARMv7A accesses. This allows Sequences to perform operations such as reading and writing main memory or halting the core. Update various
CoreInterface
calls to use these new helper functions. (#3312) by @xobs
Fixed
- Fixed CMSIS-DAP probes incorrectly trying to scan the JTAG chain while using SWD. (#3350) by @bugadani
- Fixed flasher support for ARMv7A, which would otherwise have a misaligned
$lr
value on return (#3347) by @xobs - Fixed jumping to loaded code on an ARMv7R, where
bx lr
doesn't work when the core is halted butmov pc, r0
does. (#3354) by @xobs - Fixed the implementation of
fn read()
inADIMemoryInterface
when reading byte values and other non-aligned data. (#3349) by @xobs - Fixed passing extra fields such as
stack_size
in thetemplate.yaml
file when generating flash algorithms rather than dropping them (#3346) by @xobs - Fixed polling RTT with the right core if the location is known upfront. (#3351) by @bugadani
- Fixed the command in the README for
smoke-tester
, which was missing the verbtest
. (#3349) by @xobs - Fixed some RTT issues in the debugger. (#3351) by @bugadani
probe-rs-tools 0.29.0
Install probe-rs-tools 0.29.0
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/probe-rs/probe-rs/releases/download/v0.29.0/probe-rs-tools-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/probe-rs/probe-rs/releases/download/v0.29.0/probe-rs-tools-installer.ps1 | iex"
Install prebuilt binaries via Homebrew
brew install probe-rs/probe-rs/probe-rs
Download probe-rs-tools 0.29.0
File | Platform | Checksum |
---|---|---|
probe-rs-tools-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
probe-rs-tools-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
probe-rs-tools-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
probe-rs-tools-aarch64-unknown-linux-gnu.tar.xz | ARM64 Linux | checksum |
probe-rs-tools-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
Verifying GitHub Artifact Attestations
The artifacts in this release have attestations generated with GitHub Artifact Attestations. These can be verified by using the GitHub CLI:
gh attestation verify <file-path of downloaded artifact> --repo probe-rs/probe-rs
You can also download the attestation from GitHub and verify against that directly:
gh attestation verify <file-path of downloaded artifact> --bundle <file-path of downloaded attestation>
target-gen 0.29.0
Install target-gen 0.29.0
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/probe-rs/probe-rs/releases/download/v0.29.0/target-gen-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/probe-rs/probe-rs/releases/download/v0.29.0/target-gen-installer.ps1 | iex"
Install prebuilt binaries via Homebrew
brew install probe-rs/probe-rs/target-gen
Download target-gen 0.29.0
File | Platform | Checksum |
---|---|---|
target-gen-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
target-gen-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
target-gen-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
target-gen-aarch64-unknown-linux-gnu.tar.xz | ARM64 Linux | checksum |
target-gen-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
Verifying GitHub Artifact Attestations
The artifacts in this release have attestations generated with GitHub Artifact Attestations. These can be verified by using the GitHub CLI:
gh attestation verify <file-path of downloaded artifact> --repo probe-rs/probe-rs
You can also download the attestation from GitHub and verify against that directly:
gh attestation verify <file-path of downloaded artifact> --bundle <file-path of downloaded attestation>
rtthost 0.29.0
Install rtthost 0.29.0
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/probe-rs/probe-rs/releases/download/v0.29.0/rtthost-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/probe-rs/probe-rs/releases/download/v0.29.0/rtthost-installer.ps1 | iex"
Install prebuilt binaries via Homebrew
brew install probe-rs/probe-rs/rtthost
Download rtthost 0.29.0
File | Platform | Checksum |
---|---|---|
rtthost-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
rtthost-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
rtthost-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
rtthost-aarch64-unknown-linux-gnu.tar.xz | ARM64 Linux | checksum |
rtthost-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
Verifying GitHub Artifact Attestations
The artifacts in this release have attestations generated with GitHub Artifact Attestations. These can be verified by using the GitHub CLI:
gh attestation verify <file-path of downloaded artifact> --repo probe-rs...
0.28.0
Release Notes
Released 2025-05-16
Added
- Added a remote server/client implementation (#3003) by @bugadani
- Added idf-target-app-partition for ESP IDF (#2837) by @dragonnn
- Added config presets. Define a set of values in the probe-rs config file, and activate them all by using
--preset name_of_preset
. (#3081) by @bugadani - Added support for Texas Instruments MSPM0G151x/G351x/L122x/L222x series (#3106) by @i509VCB
- Added reset support for DPv0, where error conditions must be cleared by writing to Ctrl and not to Abort. (#3176) by @xobs
- Added support for dpv3 for Black Magic Probes (#3102) by @xobs
- Added the ability to set speed and protocol in
smoke-tester
andtarget-gen
. (#3111) by @seanmlyons22 - Added
verifyBeforeFlashing
andverifyAfterFlashing
options to debugger configuration. (#3154) by @bugadani - Debugger now handles DW_AT_type DebugInfoRef (#3278) by @bugadani
- CMSIS-DAP probes can now be used to connect to RISC-V and Xtensa MCUs. (#3230) by @bugadani
- Added OTP memory to STM32 targets (#3263) by @bugadani
- Added support for more NXP's MCXA MCUs. (#3093) by @Logiase
- Added
Core::set_hw_breakpoint_unit
to update a selected breakpoint unit. (#3306) by @bugadani - Added support for SiFli uart debug probe. (#3150) by @HalfSweet
- Added probe-rs configuration file. (#3003) by @bugadani
- Added
Probe::attach_with_registry
andattach_under_reset_with_registry
to allow working with a custom registry. (#3149) by @bugadani - Added support for Microchip's MEC172x series. (#3247) by @jeffglaum
- Added catch-hardfault and catch-reset options to debugger configurations. (#3232) by @bugadani
- CMSIS-DAP: Added the nTRST pin for JTAG, and ensure it's deasserted at init (#3290) by @xobs
- Added a
probe-rs profile
option to measure the program counter via the ARM DWT program counter sample register (PCSR). (#3196) by @mciantyre - Added support for NXP's LPC865. (#3129) by @Hoohaha
- Added API calls to automatically attach a Session with a provided Registry (#3289) by @xobs
- Added
--skip-section
option to flashing commands (#3275) by @jnkr-ifx - Probe-rs now handles (and ignores) the ERRNO semihosting command. (#3115) by @bugadani
- Added support for TI's CC2340R5.
- Blank device programming of the CC2340R5 is not yet supported. A valid CCFG must be programmed using TI's uniflash. (#3111) by @seanmlyons22
- Added support for NXP's MIMXRT1160. (#3082) by @mciantyre
- Added support for Infineon PSOC 62 family. (#3110) by @jnkr-ifx
- Partially implemented
ExceptionInterface
for RISC-V. (#3283) by @bugadani - Added support for all PSOC 6 and PSOC Control C3 devices. (#3208) by @jnkr-ifx
- Added multi-drop support for Black Magic Probes (#3102) by @xobs
- Added support for GD32F1x0 series MCUs (#2805) by @Serhii-the-Dev
- Flasher now reports progress for flash content verification (#3079) by @bugadani
- Added support for spawning gdb directly from
probe-rs gdb
using--gdb gdb-multiarch
. (#3203) by @bjorn3
Changed
DownloadOptions
andFlashProgress
now have a lifetime'p
to allow using short-livedFlashProgress
objects. (#3148) by @bugadani- The
probe-rs debug
command now uses the DAP server internally. The commands have been replaced by those available in the DAP server. (#3186) by @bugadani - JTAG-specific operations have been removed from Probe and DebugProbe. Use
Probe::try_as_jtag_probe
to obtain a reference to a JTAG-capable probe. (#3287) by @bugadani - The GDB server has been moved from the library into the binary (#3124) by @bugadani
JTAGAccess
has been renamed toJtagAccess
.
AddedJtagAccess::raw_sequence
.
Addedprobe_rs::probe::JtagSequence
. (#3284) by @bugadani- Changed
auto_attach
to optionally set speed, protocol, and permissions via SessionConfig. (#3111) by @seanmlyons22 - The debugger now shows the name of the nearest symbol as the function name when debug info is not available. (#3303) by @bugadani
- ESP32 flash algorithms now use maximum CPU clock frequency. (#3096) by @bugadani
- The default defmt output format is now single line. The previous default can be activated by using the "twoline" log format. (#3049) by @bugadani
- The FlashLayout visualizer has been moved from the library into the CLI codebase. (#3003) by @bugadani
-
- Changed the default reset and hardfault catch behavior from no-catch to catch for
probe-rs run
andprobe-rs attach
.
The --catch-reset and --catch-hardfault flags still exist but now have no effect. - Added new --no-catch-reset and --no-catch-hardfault flags to turn off
catch-reset
andcatch-hardfault
, respectively (#3224) by @9names
- Changed the default reset and hardfault catch behavior from no-catch to catch for
- Changed SWD protocol probe interface with a type to allow passing single stream of enums instead of two streams of bits. (#3261) by @Cooler1989
- Use ubuntu-22.04 instead of ubuntu-20.04 in GitHub CI. This may affect the shared library versions required by generated binaries. (#3234) by @jannic
- The
select_target
function has been moved from RawJtagIo to JTAGAccess. (#3238) by @bugadani - probe-rs-tools now prints RTT channel names if there are multiple. (#3140) by @bugadani
-
Registry
is now a public structure instead of internally global configuration.- The
add_target_family, add_target_from_yaml, families, get_family_by_name, get_target_and_family_by_name, get_target_by_name, get_targets_by_family_name search_chips
functions have been removed in favour ofRegistry
methods. (#3149) by @bugadani
- Replaced
Probe::try_into_jlink
with generictry_into
.
RemovedDebugProbe::try_into_jlink
.
DebugProbe
now implementsAny
. (#3286) by @bugadani - The
ProgressEvent
type has been reworked, different phases have now been unified. (#3079) by @bugadani - The debugger now turns the data pointer in slices into arrays so that their data can be inspected. (#3276) by @bugadani
- Adding nRF9120 target which covers the nRF9161, nRF9151 and nRF9120. (#3258) by @jaredwolff
Fixed
- ESP-IDF panics no longer print an infinite list of warnings. (#3172) by @bugadani
- Fixed a few STM32 part numbers which had repeated letters at the end (#3263) by @bugadani
- Fixed cargo-embed panicking when a core is disabled. (#3107) by @bugadani
- The debugger can now reflash non-ARM chips when restarting the session. (#3170) by @bugadani
- probe-rs now correctly disables the RTC WDT of ESP32-S3 (#3132) by @bugadani
- Fixed an ESP32-specific issue where sometimes
probe-rs run
reported Xtensa specific errors regarding register 44 or 45. (#3083) by @bugadani - Removed stm32f7x_1024dual as default flash algorithm to eliminate multiple default flash algorithms error for many STM32F7xx chips. (#3273) by @mark-broadmeadow
- Fixed an issue where longer command sequences with j-link probes may be transmitted incorrectly. (#3155) by @bugadani
- Improved error handling within ARM acquire/reset sequences to better support chips with unusual reset behaviors (#3127) by @jnkr-ifx
- Fixed that the serial port dtr and rts of sifli debug devices may not be in the expected state when they are open (#3211) by @HalfSweet
- Fixed a crash during step operations while debugging Xtensa CPUs. (#3304) by @bugadani
- Fixed an issue where
probe-rs info
and NXP sequences were looking at the wrong enable bit for memory APs. (#3089) by @ryan-summers - RTT channel modes should no longer be reset during a test run (#3134) by @bugadani
- Xtensa cores are now halted before modifying breakpoints and registers. (#3191) by @bugadani
- Fixed an issue where RTT channels show up as unnamed in the debugger. (#3169) by @bugadani
- Fix flashing mass-erased EFM32xG2 devices by using a custom reset sequence (#3076) by @sirhcel
- Fixed implemented custom deserialization for DebugProbeSelector to support direct conversion from a string (e.g., "0483:374b"). (#3202) by @HalfSweet
- Fixed an issue that caused stack unwinding to stop early. (#3209) by @bugadani
- Fixed an issue where halting an ESP-IDF based firmware caused WDT resets. (#3171) by @bugadani
- Fixed defmt not being able to read messages larger than the RTT buffer. (#3049) by @bugadani
- Fixed working with RTT when a channel has no name. (#3105) by @bugadani
- Fixed various breakpoint-related issues (#3304) by @bugadani
- Xtensa exceptions should no longer cause the debugger to crash. (#3221) by @bugadani
Removed
probe-rs-tools 0.28.0
Install probe-rs-tools 0.28.0
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/probe-rs/probe-rs/releases/download/v0.28.0/probe-rs-tools-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/probe-rs/probe-rs/releases/download/v0.28.0/probe-rs-tools-installer.ps1 | iex"
Install prebuilt binaries via Homebrew
brew install probe-rs/probe-rs/probe-rs
Download probe-rs-tools 0.28.0
File | Platform | Checksum |
---|---|---|
[probe-rs-tools-aarch64-apple-darwin.tar.xz](https://github.com/probe-rs/probe-rs/releases/download/... |
0.27.0
Release Notes
Released 2025-02-10
Added
- Added support for the Arm Debug Interface v6 (ADIv6). Support added for flashing RP235x targets.
Development sponsored by osdyne. (osdyne.com) (#3005) by @ryan-summers - Add a function to reinitialize the connection to the Black Magic Probe. This goes through the entire initialization process with the same sequence as it was originally started with. (#3032) by @xobs
- Added support for the MCXA series MCUs. (#3087) by @Logiase
Changed
- Changed all functions in the
ArmMemoryInterface
trait that return something involving theArmCommunicationInterface
type and replace them with calls that return generic traits. Adapted all functions that relied on the old calls to use the new calls instead. (#3030) by @xobs
Fixed
- Properly align addresses when reading registers and fields, and avoid reading out of the bounds of the registers (#3041) by @maximeborges
- Updates STM32H7 memory maps (#3036) by @bugadani
- Work around a possible infinite loop in stack unwinding (#3042) by @bugadani
- Fixed
probe-rs erase
for the ESP32-S2 (#3060) by @bugadani - The Black Magic Probe stopped working when #2972 was merged, because it added a call to
try_as_parts()
that only worked forArmCommunicationInterface
probes and not for probes where the communications interface is handled by the probe itself. Replace this call with one to the new functiongeneric_status()
. This also fixes the issue reported in #2977. (#3030) by @xobs - Inherit access configuration for registers and fields from device if any (#3040) by @maximeborges
- Fixed read_8 and read_16 in the recently added ADIv6 implementation, fixing semihosting. (#3070) by @jannic
- C-Language now properly supports 64bits variables (int, uint and double) (#3048) by @igiona
- Fixed an error in RTT pointer validation, which caused corrupted control block error messages. (#3056) by @bugadani
probe-rs-tools 0.27.0
Install probe-rs-tools 0.27.0
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/probe-rs/probe-rs/releases/download/v0.27.0/probe-rs-tools-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/probe-rs/probe-rs/releases/download/v0.27.0/probe-rs-tools-installer.ps1 | iex"
Install prebuilt binaries via Homebrew
brew install probe-rs/probe-rs/probe-rs
Download probe-rs-tools 0.27.0
File | Platform | Checksum |
---|---|---|
probe-rs-tools-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
probe-rs-tools-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
probe-rs-tools-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
probe-rs-tools-aarch64-unknown-linux-gnu.tar.xz | ARM64 Linux | checksum |
probe-rs-tools-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
Verifying GitHub Artifact Attestations
The artifacts in this release have attestations generated with GitHub Artifact Attestations. These can be verified by using the GitHub CLI:
gh attestation verify <file-path of downloaded artifact> --repo probe-rs/probe-rs
You can also download the attestation from GitHub and verify against that directly:
gh attestation verify <file-path of downloaded artifact> --bundle <file-path of downloaded attestation>
rtthost 0.27.0
Install rtthost 0.27.0
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/probe-rs/probe-rs/releases/download/v0.27.0/rtthost-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/probe-rs/probe-rs/releases/download/v0.27.0/rtthost-installer.ps1 | iex"
Install prebuilt binaries via Homebrew
brew install probe-rs/probe-rs/rtthost
Download rtthost 0.27.0
File | Platform | Checksum |
---|---|---|
rtthost-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
rtthost-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
rtthost-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
rtthost-aarch64-unknown-linux-gnu.tar.xz | ARM64 Linux | checksum |
rtthost-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
Verifying GitHub Artifact Attestations
The artifacts in this release have attestations generated with GitHub Artifact Attestations. These can be verified by using the GitHub CLI:
gh attestation verify <file-path of downloaded artifact> --repo probe-rs/probe-rs
You can also download the attestation from GitHub and verify against that directly:
gh attestation verify <file-path of downloaded artifact> --bundle <file-path of downloaded attestation>
target-gen 0.27.0
Install target-gen 0.27.0
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/probe-rs/probe-rs/releases/download/v0.27.0/target-gen-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/probe-rs/probe-rs/releases/download/v0.27.0/target-gen-installer.ps1 | iex"
Install prebuilt binaries via Homebrew
brew install probe-rs/probe-rs/target-gen
Download target-gen 0.27.0
File | Platform | Checksum |
---|---|---|
target-gen-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
target-gen-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
target-gen-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
target-gen-aarch64-unknown-linux-gnu.tar.xz | ARM64 Linux | checksum |
target-gen-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
Verifying GitHub Artifact Attestations
The artifacts in this release have attestations generated with GitHub Artifact Attestations. These can be verified by using the GitHub CLI:
gh attestation verify <file-path of downloaded artifact> --repo probe-rs/probe-rs
You can also download the attestation from GitHub and verify against that directly:
gh attestation verify <file-path of downloaded artifact> --bundle <file-path of downloaded attestation>
0.26.0
Release Notes
Released 2025-01-17
Added
- Add
run
/flash
/reset
support for NXPs programmable UWB controller, NXP Trimension OL23D0. Including RAM running. (#2984) by @korken89 - Added S32K14 series targets (#3026) by @liamkinne
- Added support for
--ignored
and--include-ignored
libtest options (#2967) by @kaspar030 - Added extra checks for RTT control block integrity so partially trashed blocks are now more likely to be rejected as corrupted (#2978) by @diondokter
- Added a sequence for unlocking nRF54L15 devices. (#2987) by @Tiwalun
- Added support for NXP's MIMXRT1040. (#3016) by @mciantyre
- Add CMSIS-PACK sequences for LPC80x (#2999) by @9names
Changed
- probe-rs now allows selecting debug probes that have no serial number by using
VID:PID:
(#3010) by @bugadani - Move the low-level debugger code into a separate crate, probe-rs-debug.
This code was behind thedebug
feature previously. (#3004) by @Tiwalun - Rename
psel
totargetsel
in the target definition for chips using the ARM debug interface,
and make it optional. This makes it clearer what the use of this field is. (#2992) by @Tiwalun
Fixed
- ARM Debug interface: Clear sticky error bits after failed block transfers, so that future transfers can succeed. (#2982) by @Tiwalun
- probe-rs: Disassembly now takes the endianness of source files into account rather than relying on host endianness.(#2991) by @fg-cfh
- probe-rs-tools: Fixed disassembly of ARM Thumb v2 code in the DAP server (proper instruction decoding and offset in the disassembly view). (#2991) by @fg-cfh
- Fixed a problem with flaky flashing on MIMXRT when the firmware has
changed the FlexRAM configuration from the POR fuse settings. (#3020) by @mciantyre and @SebKuzminsky - Fixed a regression that prevented retries of the packet size query when connecting to CMSIS-DAP probes. (#3002) by @elfmimi
- Fixed a problem on ARMv7 where debugger couldn't be attached again after
detaching it if the firmware spent most of the time in sleep mode. (#2852) by @inazarenko - The progressbars are now properly reset at the right time to improve the accuracy of the speed and ETA. (#2970) by @diondokter
- probe-rs info: Check if memory access port is accessible before trying to use it. (#2972) by @Tiwalun
probe-rs-tools 0.26.0
Install probe-rs-tools 0.26.0
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/probe-rs/probe-rs/releases/download/v0.26.0/probe-rs-tools-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy ByPass -c "irm https://github.com/probe-rs/probe-rs/releases/download/v0.26.0/probe-rs-tools-installer.ps1 | iex"
Install prebuilt binaries via Homebrew
brew install probe-rs/probe-rs/probe-rs
Download probe-rs-tools 0.26.0
File | Platform | Checksum |
---|---|---|
probe-rs-tools-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
probe-rs-tools-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
probe-rs-tools-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
probe-rs-tools-aarch64-unknown-linux-gnu.tar.xz | ARM64 Linux | checksum |
probe-rs-tools-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
Verifying GitHub Artifact Attestations
The artifacts in this release have attestations generated with GitHub Artifact Attestations. These can be verified by using the GitHub CLI:
gh attestation verify <file-path of downloaded artifact> --repo probe-rs/probe-rs
You can also download the attestation from GitHub and verify against that directly:
gh attestation verify <file-path of downloaded artifact> --bundle <file-path of downloaded attestation>
rtthost 0.26.0
Install rtthost 0.26.0
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/probe-rs/probe-rs/releases/download/v0.26.0/rtthost-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy ByPass -c "irm https://github.com/probe-rs/probe-rs/releases/download/v0.26.0/rtthost-installer.ps1 | iex"
Install prebuilt binaries via Homebrew
brew install probe-rs/probe-rs/rtthost
Download rtthost 0.26.0
File | Platform | Checksum |
---|---|---|
rtthost-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
rtthost-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
rtthost-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
rtthost-aarch64-unknown-linux-gnu.tar.xz | ARM64 Linux | checksum |
rtthost-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
Verifying GitHub Artifact Attestations
The artifacts in this release have attestations generated with GitHub Artifact Attestations. These can be verified by using the GitHub CLI:
gh attestation verify <file-path of downloaded artifact> --repo probe-rs/probe-rs
You can also download the attestation from GitHub and verify against that directly:
gh attestation verify <file-path of downloaded artifact> --bundle <file-path of downloaded attestation>
target-gen 0.26.0
Install target-gen 0.26.0
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/probe-rs/probe-rs/releases/download/v0.26.0/target-gen-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy ByPass -c "irm https://github.com/probe-rs/probe-rs/releases/download/v0.26.0/target-gen-installer.ps1 | iex"
Install prebuilt binaries via Homebrew
brew install probe-rs/probe-rs/target-gen
Download target-gen 0.26.0
File | Platform | Checksum |
---|---|---|
target-gen-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
target-gen-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
target-gen-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
target-gen-aarch64-unknown-linux-gnu.tar.xz | ARM64 Linux | checksum |
target-gen-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
Verifying GitHub Artifact Attestations
The artifacts in this release have attestations generated with GitHub Artifact Attestations. These can be verified by using the [GitHub CLI](https://cli.github.com/manual/gh_attestation_ver...
0.25.0
Release Notes
Released 2024-12-16
Added
- Added
--preverify
to skip flashing regions that are up to date.
Addedprobe-rs verify
that only verifies flash contents. (#2722) by @bugadani - Add support for the Fujitsu/Cypress/Infineon FM3 high performance series. (#2566) by @jeffglaum
- Added an optional
ReadFlash
flash algorithm function. (#2727) by @bugadani - Added support for new nRF54 chips: nRF54L15. (#2911) by @Dirbaio
- Added support for Texas Instruments MSPM0C series (#2811) by @i509VCB
- Added support for MIMXRT118x memory access (
probe-rs read/write
) (#2916) by @glaeqen probe-rs
can now automatically detect XMC4xxx devices without--chip
(#2608) by @bugadani- Added
--name
option totarget-gen test
(#2597) by @bugadani - arm: Add RAM boot feature which could also be extended to other architectures. This feature works
by detecting in whether the entry point of an application is located inside the RAM region. If it
is, it will execute a special ARM sequence to run the application directly. (#2680) by @robamu - arm: Added jtag_tap option to ARM core access options. (#2924) by @robamu
- Added
Rtt::up_channel
andRtt::down_channel
(#2580) by @bugadani - Added support for the Vorago VA108xx family of MCUs by adding a chip description file for the
VA108xx family (#2673) by @robamu - The core is now halted when flashing the RAM (#2672) by @robamu
- Added support for the MIMXRT118x (Cortex-M33 core only) (#2916) by @glaeqen
- Added debug sequences for STM32H7S/STM32H7R (#2884) by @a6f
- Add support for HPMicro's HPM5300 series of MCUs (#2575) by @andelf
- Added support for Digilent HS1, HS2, and HS3 FTDI probes. (#2793) by @craigjb
- Assign cores to NvmRegions created from flash algorithms (#2887) by @a6f
- Added support for GigaDevice GD32C1x3 series (#2737) by @guineawheek
- Added the option to register new debug sequences. To do this, users must implement
probe_rs::vendor::Vendor
and register it usingprobe_rs::vendor::register_vendor()
. (#2471) by @bugadani - MIMXRT: reset the FlexRAM configuration to the boot fuses when resetting the MCU. (#2510) by @mciantyre
- Add support for the MIMXRT685S series of chips. (#2560) by @felipebalbi
- Added progress bars to
probe-rs erase
. (#2724) by @bugadani - Added the
Privileged
bit to APB4 and APB5 of the AMBA CSW register. (#2798) by @xobs - Added support for tunneled JTAG access to RISC-V targets configured with a
RiscvJtagTunnel
inChip::jtag
. (#2794) by @craigjb - target-gen: Added
reformat
command to reformat a YAML file or a directory of YAML files. (#2548) by @bugadani - Added support for new STM32H5 chips: STM32H523CCTx, STM32H523CCUx, STM32H523CETx, STM32H523CEUx, STM32H523HEYxT, STM32H523RCTx, STM32H523RETx, STM32H523VCIx, STM32H523VCTx, STM32H523VEIx, STM32H523VETx, STM32H523ZCJx, STM32H523ZCTx, STM32H523ZEJx, STM32H523ZETx, STM32H533CETx, STM32H533CEUx, STM32H533HEYxT, STM32H533RETx, STM32H533VEIx, STM32H533VETx, STM32H533ZEJx, STM32H533ZETx, STM32H562AGIx, STM32H562IGKx, STM32H562IGTx, STM32H562RGTx, STM32H562RGVx, STM32H562VGTx, STM32H562ZGTx, STM32H563AGIx, STM32H563AIIxQ, STM32H563IGKx, STM32H563IGTx, STM32H563IIKxQ, STM32H563IITxQ, STM32H563RGTx, STM32H563RGVx, STM32H563VGTx, STM32H563VITxQ, STM32H563ZGTx, STM32H563ZITxQ, STM32H573AIIxQ, STM32H573IIKxQ, STM32H573IITxQ, STM32H573VITxQ, STM32H573ZITxQ (#2641) by @bugadani
- Added
AccessPort
a sum-type of all access port classes (#2683) by @ithinuel - Added STM32F205RGEx target information (#2570) by @bugadani
- Added support to probe-rs-tools to print messages using
semihosting
. (#2740) by @bugadani - Added a warning when refusing to read an RTT channel name because of the target description. (#2867) by @nilfit
- Added new
Error::CoreDisabled
variant. (#2713) by @bugadani - Added support for GD32F10x (#2611) by @AlksB
- Added
MemoryAccess
attributes toRamRegion
,NvmRegion
andGenericRegion
(#2581) by @bugadani - arm: Fall back on SWDv2 wake from dormant on SWDv1 failure (#2914) by @seanmlyons22
- Add support for the Tiva-C series of chips. (#2792) by @BauerBank
- cargo-embed: use
ctrl+tab
andctrl+shift+tab
to move to next/previous tab. Usectrl+number
to switch to thenumber
th tab.
cargo-embed:PageUp
andPageDown
now scroll a half screen's worth of lines.
cargo-embed: handleUp
andDown
arrows to scroll the list one line at a time. (#2618) by @bugadani - Added API to disable PC sample in ARM (#2813) by @gdobato
- Added ADuCM302x target information from pack file (#2721) by @IoTPanic
- Added support for the Vorago VA416xx family of MCUs by adding a chip description file for the
VA416xx family and a VA416XX specific ARM debug sequence (#2601) by @robamu probe-rs
now has basic support to represent Access Port V2 address format. (#2600) by @ithinuelprobe-rs
can now automatically detect nRF, ESP32 and certain ATSAM devices without--chip
(#2475) by @bugadani- Added support for new STM32U5 chips: STM32U5F7VITx, STM32U5F7VITxQ, STM32U5F7VJTx, STM32U5F7VJTxQ, STM32U5F9BJYxQ, STM32U5F9NJHxQ, STM32U5F9VITxQ, STM32U5F9VJTxQ, STM32U5F9ZIJxQ, STM32U5F9ZITxQ, STM32U5F9ZJJxQ, STM32U5F9ZJTxQ, STM32U5G7VJTx, STM32U5G7VJTxQ, STM32U5G9BJYxQ, STM32U5G9NJHxQ, STM32U5G9VJTxQ, STM32U5G9ZJJxQ, STM32U5G9ZJTxQ (#2646) by @bugadani
- Added support for cli interactive probe selection when multiple probes are found (#2490) by @teburd
- Added support for new STM32F4 chips: STM32F401CCFx, STM32F412REYxP, STM32F412RGYxP, STM32F429ZGYx, STM32F439ZGYx, STM32F446ZCJx (#2629) by @bugadani
- Added ARM debug sequence for stm32-armv8 (#2697) by @gdobato
- Added
--path
option to cargo embed. (#2594) by @bugadani - TI: Added support for the cc13x4_cc26x4 family of devices (#2532) by @seanmlyons22
- Added support for new STM32F7 chips: STM32F723VCTx, STM32F723VCYx, STM32F723VETx, STM32F733ZEIx, STM32F765VGHx, STM32F765VIHx, STM32F767VGHx, STM32F767VIHx, STM32F777VIHx (#2630) by @bugadani
cargo embed
now takes an optional --config-file parameter (#2846) by @chrysn- Added initial support for the Black Magic Probe in bit-bang mode. (#2791) by @xobs
- Added the Cortex-M VTOR vector table offset core register definition (#2664) by @robamu
- Extended the ITM api to support configurable packet transmission settings.
(#2931) by @irina-nita - Added
--chip
totarget-gen test
(#2592) by @bugadani - Added support for STLink-V3PWR (#2719) by @trlim
- Add types for each type of
MemoryAp
. (#2683) by @ithinuel - Add support for the LPC54102 family (only the primary Cortex-M4F is supported, not the secondary Cortex-M0+). (#2525) by @jfrimmel
Changed
- The
Core::dump
function has been replaced byCoreDump::dump_core
, to make the interaction with thedebug
feature clearer. (#2634) by @Tiwalun - Updated STM32L0 family information. (#2642) by @bugadani
- Rename ArmProbe to ArmMemoryInterface (#2704) by @ithinuel
- Reorganized exception handling code, introduce
debug
feature to allow
disabling debug functionality. (#2634) by @Tiwalun - Updated STM32L1 family information. Note that this changes the target names by adding a package-specific suffix (e.g. STM32L100RB became STM32L100RBTx) (#2644) by @bugadani
- Rename the trait
AccessPort
toAccessPortType
(#2683) by @ithinuel - Updated STM32WL family information. (#2647) by @bugadani
- Debug sequences are now available at
probe_rs::vendor::<VENDOR>::sequences
(#2471) by @bugadani - Changed the type returned by
ArmCommunicationInterface
to a collection of addresses (#2683) by @ithinuel - Register names are now lower-case when gdb-debugging through gdbstub. This makes probe-rs compatible with lldb. (#2879) by @danlehmann
- The
semihosting
module is now public, and the reexports have been removed fromprobe_rs
. (#2740) by @bugadani - Updated memory maps for most of STM32 chips. (#2556) by @bugadani
- Derive
PartialOrd
/Ord
&Hash
on addresses (#2683) by @ithinuel Rtt::{up, down}_channels
now return an immutable slice of chanels. (#2580) by @bugadani- Removed the
memory_map
argument fromRtt::attach
andRtt::attach_region
. (#2595) by @bugadani - Upgrade
defmt-decoder
tov0.4.0
(#2809) by @Urhengulas - Increased the potential throughput of J-Link and FTDI probes when communicating with ARM chips using JTAG. (#2681) by @bugadani
JtagCommandQueue::schedule
now takes a type that implsInto<JtagCommand>
. (#2689) by @bugadani- Updated STM32L4 family information. (#2649) by @bugadani
- arm: Use FullyQualifiedApAddress instead of MemoryAp and GenericAp in method (#2706) by @ithinuel
- probe-rs no longer reserves all remaining memory for the flash algorithm's stack. (#2577) by @bugadani
- Updated STM32H7 families. (#2643) by @bugadani
- Updated STM32C0 family information. (#2894) by @a6f
- Factorize the variants of
MemoryInterface
where only the return type changes intoMemoryInterface
with a generic type defaulting toprobe_rs::Error
. (#2705) by @ithinuel - Renamed the
esp32-3.3v
target toesp32
(#2755) by @bugadani - Moved
RamRegion::is_boot_memory
toMemoryAccess::boot
(#2581) by @bugadani - Updated STM32L5 family information. (#2645) by @bugadani
- Added the option to refer to STM32 targets without their package suffix (#2754) by @bugadani
Fixed
- Fixed RAM size of STM32F303VC chips (#2552) by @bugadani
- Fixed error while trying to write to RTT on a RISC-V chip (#2622) by @bugadani
- Fix broken timeout in
cortex_m_reset_system
(#2917) by @glaeqen - probe-rs now correctly disables all watchdogs of ESP32-S2 and ESP32-S3 (#2902) by @bugadani
- Fixed file paths used for Rust's standard libraries by mapping the path to Rust's sysroot (#2635) by @staticintlucas
- Fixed error of creating RTTControlBlockHeader from memory slice (#2610) by @AlksB
- Fixed some cases where probe-rs would print "RTT control block corrupted". (#2547) by @b...
0.24.0
Release Notes
Released 2024-05-22
Changes to the installation of probe-rs
The binaries probe-rs
, cargo embed
and cargo flash
have been moved to a separate probe-rs-tools
crate. This means that the installation method has changed as well.
The recommended way to install the binaries is to use the provided installer scripts:
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/probe-rs/probe-rs/releases/download/v0.24.0/probe-rs-tools-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -c "irm https://github.com/probe-rs/probe-rs/releases/download/v0.24.0/probe-rs-tools-installer.ps1 | iex"
Install prebuilt binaries via Homebrew
brew install probe-rs/homebrew-probe-rs/probe-rs
See the probe-rs homepage at https://probe.rs or the README for more details.
Added
- Added support to run embedded-test testcases (#2292) by @t-moe
- Added support for STM32U0 devices (#2366) by @Dirbaio
- Add support ELF64 to load programs for AArch64. (#2270) by @tnishinaga
- Added SAM3X target (ATSAM3X4C, ATSAM3X4E, ATSAM3X8C, ATSAM3X8E and ATSAM3X8H). (#2293) by @BadyJoke
- added enable/disable kickstart power for J-Link (#2163) by @zakimoo
- Added
verify
anddisable_double_buffering
options to Embed.toml (#2419) by @bugadani - Added
SYS_EXIT_EXTENDED
andSYS_GET_CMDLINE
semihosting operation decoding. (#2241) by @t-moe - Update the
STM32WB_Series.yaml
targets withtarget-gen arm --filter STM32WBxx_DFP
(#2248) by @kquinsland cargo embed
andcargo flash
now try to verify image compatibility (#2329) by @bugadani- Add support for the HK32F030M series of chips. (#2281) by @prosper00
- probe-rs now has a machine interface (MI).
The machine interface can be accessed viaprobe-rs mi
and is intended to have a set of
machine operable & readable commands & responses.
This will allow for example a CI to use probe-rs in predictable fashion or allows auto-updaters to install the most current version.
A separate crate with interface types calledprobe-rs-mi
was added to let users easily parse the output of the MI. (#2459) by @Yatekii - Add the
list_break
command toprobe-rs debug
to list the set breakpoints. (#2385) by @mciantyre - Add support RTT for 64bit processor (#2296) by @tnishinaga
- Expose all probe options as environment variables (#2232) by @korken89
- Added autocompletion support for probe-rs
For zsh and bash, connected debug probes and loaded chips are autocompleted too for the respective arguments. (#1299) by @Yatekii - Users can now specify IP address for dap-server to bind. (#2373) by @KOBA789
- Added semihosting support for Xtensa Architecture (#2292) by @t-moe
- Added
DebugProbeInfo::is_probe_type
to simplify filtering probe types (#2238) by @bugadani - Added support for Renesas RA0, RA2, RA4, RA6, RA8 series chips (#2473) by @pdh11
- Users can now specify RTT channel operating mode for the debugger. (#2326) by @bugadani
- Armv8a: add fast memory access functions for AArch64 (#2271) by @tnishinaga
- Debug: When a "Reset Handler" is identifiable in the call stack, the stack unwind will include a handler frame, similar to those for other exception handlers. (#1935) by @noppej
- Added support for SWM341 (#2424) by @hysonglet
- Commands in the probe-rs util now have a
--report
flag which allows users to generate a ZIP with info about their error if the command leads to an error.
The ZIP is NOT uploaded. It is saved to disk and can be inspected and manually uploaded to e.g. Github. (#2472) by @Yatekii - Report an error when the probe does not support the requested protocol (#2264) by @ithinuel
- Error out when a DPv3 is detected (#2264) by @ithinuel
- The MI now has a
meta
command that returns a bunch of meta info about the binary build, such as the version or the commit hash off which the binary was built. (#2459) by @Yatekii - Autodetect the core to attach the RTT server by looking at which core can access the RAM where the RTT control block is (#2297) by @guissalustiano
- Added
into_iter()
tortt::Channels
(#2247) by @bugadani - Added support for the EFM32PG22 series of chips (#2408) by @sirhcel
- Added the option to select which JTAG TAP a given RISC-V or Xtensa core belongs to. (#2386) by @bugadani
- Added support for the STM32H7Rx/STM32H7Sx (STM32H7 "bootflash line") series of chips (#2469) by @Dirbaio
- Support for Texas Instruments cc13x2_cc26x2 device family (#1729)
- Made JTAG scanning optional during configuration (#2215) (#1771) by @seanmlyons22
Changed
Rtt::up_channels
andRtt::down_channels
are now public (#2247) by @bugadani-
- The
probe-rs dap-server
command now handles the--log-to-folder
and--log-file
CLI arguments. - When neither option is supplied, the default behaviour is that logs are written to the DAP client's "Debug Console" window.
- The
- Reworked the
rtt
section inEmbed.toml
. (#2249) by @bugadani - If no
RUST_LOG
environment variable is set, the probe-rs DAP server will now use a default logging configuration ofprobe_rs=warn
. (#2457) by @noppej - The
Run
cmd has been refactored to allow multiple different run modes in the future. (#2295) by @t-moe - By default,
defmt
RTT channels are configured toBlockIfFull
. (#2326) by @bugadani - Only enumerate alternate multi-drop addresses if the Default address failed (#2352) by @ithinuel
- Renamed
--probe-selector
to--probe
incargo embed
(#2262) by @bugadani DebugProbeInfo::probe_type
is no longer public. You can useDebugProbeInfo::is_probe_type
to filter.
You no longer need to supply alister
toDebugProbeInfo::open
(#2238) by @bugadani- Renamed the
--format
argument to--binary-format
for upcoming embedded-test integration. (#2240) by @t-moe - The binaries
probe-rs
,cargo embed
andcargo flash
have been moved to a separate
probe-rs-tools
crate. This means that the installation method has changed as well.
See the probe-rs homepage at https://probe.rs or the README for the updated installation instructions. (#2364) by @Tiwalun - RTT: defmt location information is no longer displayed by default.
RTT: timestamps are now displayed by default, if available.
RTT:show_timestamps
andshow_location
can now only be set in the up channel configuration.
RTT: channel names are no longer configurable. (#2377) by @bugadani - Changed how architecture-specific core interfaces are accessed:
probe::Probe::try_get_xtensa_interface
now takes anXtensaDebugInterfaceState
object that should be saved and reused between interface accesses.probe::Probe::try_get_riscv_interface
has been renamed totry_get_riscv_interface_factory
and returns a builder object to create state objects, and to attach the probe using such a state object.- The corresponding
DebugProbe
APIs have been changed. (#2386) by @bugadani
Fixed
- Debug: During a stack unwind, incorrect processing of function identifiers, sometimes displayed incorrect function names and associated variable definitions in the stack. (#2302) by @noppej
- Prevent duplicate inputs being registered in cargo-embed on Windows. (#2260) by @calebfletcher
- Provide a helpful error message when invalid
connectUnderReset
is used. (#2219) by @noppej - Fix detection of the defmt timestamp functionality as reported by ELF symbols (#2267) by @Javier-varez
- Do not 'silence' errors that need to be reported to the user. Specifically errors during the
attach
andlaunch
requests, where flashing can fail, and the user needs to know about it. (#2439) by @noppej - Fix wlink detection fail. (#2273) by @andelf
- RISC-V: fixed an issue that accidentally disabled the debug module during certain operations (#2224) by @bugadani
- Fixed the most frequent
RTT: Control block corrupted
errors (#2340) by @bugadani - Improved error reporting for CMSIS-DAP probes. (#2479) by @gtsiam
- The process of finding function DIE's assigned the
low_pc
andhigh_pc
values based on only the last processedgimli::Range
for the funciton DIE. (#2258) by @noppej - The debugger can now handle nested arrays in C code (#2268) by @bugadani
- Fixed cargo-embed not processing defmt data correctly (#2323) by @bugadani
- Fixed selecting one of multiple ESP USB JTAG probes (#2382) by @bugadani
- Fixed flashing certain STM32F750 variants (#2312) by @bugadani
- ARMv8A: Fix a problem that RTT Attach fails because the core is not halted during memory access. (#2269) by @tnishinaga
- The debug unwind sometimes reported "unknown" for function names, when the DWARF encodes the name behind a
DW_AT_specification
reference. The fix will resolve any of the attributes, not just the name, which are in the DIE referenced by theDW_AT_specification
tag. (#2291) by @noppej - Probe-rs should now succeed more at flashing RISC-V ESP32 devices (#2365) by @bugadani
- fix
probe-rs attach
"Timeout occurred during operation." error. (#2259) by @eZioPan - Fixed so that secure flash area on LPC55S69 can be loaded. (#2353) by @te-johan
- It is now possible to
probe-rs erase
ESP32 chips (#2279) by @bugadani - ATSAMD devices should no longer fail to reset after a chip erase. (#2325) by @bugadani
- Revise the MIMXRT1170 reset sequen...
0.23.0
Release Notes
Released 2024-02-24
Added
-
Added option to specify load address for flash algorithm data pages (#2099) by @bugadani
-
Added multidrop support for J-Link probes (#2079) by @bugadani
-
Added support for 16bit reads and writes. (#2018) by @Dirbaio
-
probe-rs info now supports Xtensa devices (#2022) by @bugadani
-
Added
chipDescriptionPath
to debug server configuration
rtthost: Small refactor to reuse code (#2050) by @bugadani -
It is now possible to configure the speed of FTDI probes (#2075) by @bugadani
-
Allow specifying a chip via environment variable (#1958) by @jessebraham
-
Add support for the esp32 targets (3.3V VDD_SDIO) (#2102) by @bugadani
-
Add support for AirMCU series. (#1974) by @HalfSweet
-
Added ARM interface support (JTAG only) to FTDI probes. (#2090) by @bugadani
-
Add support for using a hart other than hart 0 (#2080) by @bjoernQ
-
debug: Added
StackFrame::canonical_frame_address
andStackFrameInfo
(#2134) by @bugadani -
Exposed the internal probe implementations (#2027) by @bugadani
-
Support specifying a TARGETSEL value to the
probe-rs info
subcommand. This can be used to see information about a SWD multi-drop target. (#2092) by @Tiwalun -
Added support to
cargo embed
for publishing raw RTT data for specific channels on a tcp socket. (#2126) by @ijager -
probe-rs now supports flashing STM32WLE5CCUx MCUs (#2036) by @elpiel
-
probe-rs now supports flashing CH32V307 MCUs (#2136) by @Marcuss2
Changed
-
Ensure then when executing setup commands and sequences that the core is halted. (#2151) by @MabezDev
-
UnitInfo
is now public.
VariableCache::new_dwarf_cache
andVariableCache::create_variable
now take anOption<&UnitInfo>
. (#2150) by @bugadani -
The FTDI probe driver is now enabled unconditionally (#2077) by @bugadani
-
The following are now available under
probe_rs::probe
:AttachMethod
,DebugProbe
,DebugProbeError
,DebugProbeInfo
,DebugProbeSelector
,Probe
,ProbeCreationError
,ProbeFactory
,WireProtocol
Lister
is now available underprobe_rs::probe::list
(#2027) by @bugadani -
Moved
scan_chain
underjtag
in target descriptions (#2082) by @bugadani -
The scan chain information in target descriptions is now always used to validate the measured JTAG chain. (#2082) by @bugadani
-
Use the
nusb
crate for USB I/O. (pure-Rust replacement forrusb
/libusb
). (#1842) by @Dirbaio
Fixed
- Fixed
--speed
being ignored by J-Links (#2109) by @bugadani - Temporarily pin defmt-decoder version to deal with breaking change in 0.3.10 (#2156) by @tommy-gilligan
- cmsis-dap: Increase USB timeout to 1s. (#2205) by @Tiwalun
- jlink: Consider free memory size reported by J-Link when performing SWD transfers. (#2144) by @Tiwalun
- Don't stop DAP debugger server when an error unwinding an exception occurs. (#2198) by @Tiwalun
- Fix reading back an empty buffer from the espusbjtag probe on a cold boot. (#2173) by @MabezDev
- Fixed logging causing multiple progress bars to appear in console output. (#2104) by @bugadani
- Fixed flashing MIMXRT1060 devices (#2089) by @bugadani
- Fixed STM32G431xB flashing, which was broken by adopting the version 1.5.0 STM32G4 target pack from upstream. (#2061) by @dlaw
- espusbjtag, ftdi: fix IR length measurement (#2024) by @bugadani
- Fixed
probe-rs info
not recognising Xtensa chips if probe supports SWD (#2069) by @bugadani - Fixed cargo-embed not respecting the target's preferred image format. (#2104) by @bugadani
- Do not print RTT error if there is nowhere to look for the control block (#2073) by @bugadani
- Fixed a regression that made it impossible to select a chip target that was a substring of another chip (eg cortex-m3 is a substring of cortex-m33) (#2121) by @9names
- Debug: Do not fail when encountering new
DW_AT_accessibility
attribute in debug info. (#2149) by @noppej
Removed
- Removed the redundant
begin_data
field ofFlashAlgorithm
(#2095) by @bugadani - Removed
DebugProbeType
(#1996) by @bugadani - Removed the
ftdi
andftdi-vendored
features (#2077) by @bugadani - Removed (hidden) private Xtensa APIs (#2051) by @bugadani
probe-rs 0.23.0
Install probe-rs 0.23.0
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/probe-rs/probe-rs/releases/download/v0.23.0/probe-rs-installer.sh | sh
Install prebuilt binaries via powershell script
irm https://github.com/probe-rs/probe-rs/releases/download/v0.23.0/probe-rs-installer.ps1 | iex
Install prebuilt binaries via Homebrew
brew install probe-rs/homebrew-probe-rs/probe-rs
Download probe-rs 0.23.0
File | Platform | Checksum |
---|---|---|
probe-rs-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
probe-rs-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
probe-rs-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
probe-rs-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
rtthost 0.23.0
Install rtthost 0.23.0
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/probe-rs/probe-rs/releases/download/v0.23.0/rtthost-installer.sh | sh
Install prebuilt binaries via powershell script
irm https://github.com/probe-rs/probe-rs/releases/download/v0.23.0/rtthost-installer.ps1 | iex
Install prebuilt binaries via Homebrew
brew install probe-rs/homebrew-probe-rs/rtthost
Download rtthost 0.23.0
File | Platform | Checksum |
---|---|---|
rtthost-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
rtthost-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
rtthost-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
rtthost-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
target-gen 0.23.0
Install target-gen 0.23.0
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/probe-rs/probe-rs/releases/download/v0.23.0/target-gen-installer.sh | sh
Install prebuilt binaries via powershell script
irm https://github.com/probe-rs/probe-rs/releases/download/v0.23.0/target-gen-installer.ps1 | iex
Install prebuilt binaries via Homebrew
brew install probe-rs/homebrew-probe-rs/target-gen
Download target-gen 0.23.0
File | Platform | Checksum |
---|---|---|
target-gen-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
target-gen-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
target-gen-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
target-gen-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
0.22.0
Release Notes
Released 2024-01-03
Added
-
Add support for CH32V003 RV32EC RISC-V MCU (#1876) by @andelf
-
Add support for
SAMV71
series targets (#1861). (#1861) by @matteocarnelos -
target-gen: Add support for Cortex-M55 and Cortex-M85 (#1959) by @Tiwalun
-
Add OpenTitan target file with description of the Earl Grey chip. (#1980) by @jwnrt
-
Added support for riscv semihosting SYS_EXIT syscall.
Please note that probe-rs with espflash < 3.0 will probably fail to flash a binary containing semihosting calls due to esp-rs/espflash#522 (#1901) by @t-moe
-
Add support for the esp32c2 target (#1869) (#1869) by @SergioGasquez
-
Added support for EFM32PG1B series microcontrollers. (#1845) by @BogdanOlar
-
Xtensa: Add flashing support for the esp32s3 (#1956) by @bugadani
-
The debugger REPL commands now have an implementation for
backtrace
. The stacktrace is serialized using the yaml format. (#1918) by @noppej -
Allow specifying the default
Format
for a targetRefactor the target definition to allow specifying the default Format
for a given target. By default all targetsdefault_target
isElf
,
except for the esp32* targets which are nowIdf
. (#1886) by @MabezDev -
Added support for LM3S series targets. (#1990) by @evanmcclure
-
Added the concept of transfer encoding that is applied during firmware download. Added the Miniz encoding. (#1947) by @bugadani
-
Added a new
dump
command for the CLI and vscode REPL to dump a full core state (#1783). (#1783) by @Yatekii -
Handle the
DW_AT_specification
attribute when unwinding. (#1853) by @Tiwalun -
Add
--catch-reset
&--catch-hardfault
cli flags (#1899) by @MabezDev -
Custom debug sequences for ATSAMD1x, D2x, DAx micros. Enables DSU-based chip erase. (#1855) by @ianrrees
-
Add support for the esp32h2 target (#1862) (#1862) by @MabezDev
-
Add scan chain support for the esp32* targets and the espusbjtag driver. (#1878) by @MabezDev
-
The rtthost gets the ability to reset the targert after the RTT session is established. (#1900) by @Sh3Rm4n
-
Added support for PAC52XX series microcontroller. (#1868) by @liamkinne
-
Added experimental support for WCH-Link probe in RV mode. (#1437) by @andelf
Changed
-
Continue running the core if an unsupported semihosting call occured.
Previously,
probe-rs run
would exit with "the CPU halted unexpectedly", whenever an unknown semihosting operation occurred.
With this change,probe-rs run
will print a warning and then automatically continue the core. (#1901) by @t-moe -
dap-server
: Move initial check of core state fromthreads
request toconfiguration_done
request. (#1903) by @Andrew-Collins -
Renamed
JTAGAccess::get_idle_cycles
toidle_cycles
and removed redundant inherent fns (#1924) by @bugadani -
Reduced logging level for custom debug sequences (#1882) by @ianrrees
-
The
dump
command that is used by the VSCode REPL can now be used without specifying memory regions.The resulting coredump will include all the memory regions required to unwind the in-scope functions and variables. (#1930) by @noppej
-
For CLI builds, statically link to libusb to make installation of precompiled binaries easier. (#1830) by @Tiwalun
-
By default,
probe-rs run
andprobe-rs attach
will only scan the memory for the RTT control block if the--rtt-scan-memory
flag is provided. It will still always look for a_SEGGER_RTT
symbol in the ELF file and use that first in all circumstances. (#1919) by @ia0 -
Refactor unwinding code to improve testability, add tests for unwinding. (#1853) by @Tiwalun
-
The
ftdi-vendored
feature now enabledftdi
automatically (#1999) by @bugadani -
Hide vector catch errors when it hasn't been implemented for the target. (#1885) by @MabezDev
-
Logging to file is now off by default. Use
--log-to-folder
or--log-file
to enable. (#1946) by @bugadani -
Improved RISC-V IO utilisation by batching more operations (#1932) by @bugadani
-
The read operations from the
MemoryInterface
trait are moved into a separteReadOnlyMemoryInterface
trait, so that it is clear which code actually changes memory. (#1853) by @Tiwalun -
Updated ESP32 targets to tune flashing speed (#1936) by @bugadani
-
Move the stack refresh functionality to poll_cores, and trigger a refresh when the state changes from 'running' to 'halted'. (#1902) by @Andrew-Collins
-
Rewrote benchmark cli tool, removing report submission and adding multiple speed/size/stride options (#1837) by @9names
-
RP2040 memory map changed from three blocks (256K + 4K + 4K) to one block (264K). Allows ELF files to contain sections that go over the boundaries. (#1943) by @thejpster
-
espusbjtag: don't reset the chip on attach (#1915) by @MabezDev
-
Refactor esp-usbjtag to clean it up some (#1920) by @bugadani
Fixed
-
Disable the second core on LPC55S69 to fix #1802. (#1823) by @Tiwalun
-
Fix LPC55S69 reset sequence
Fix LPC55S69 attach without disturbing target (#1907) by @9names -
Updated the STM32G4 target yaml to version 1.5.0. This fixes the stm32g4xx_256 flash algorithm. (#1896) by @dlaw
-
Flasher: single buffer transfers are now done with u32 writes (#1944) by @bugadani
-
cli: Rename struct to avoid debug assert in
profile
subcommand. Fix #1808. (#1825) by @Tiwalun -
Added missing reset and halt timeout handling for RV32 targets. (#1874) by @andelf
-
Also use serial number to distinguish CMSIS-DAP probes. Fix #1835. (#1835) by @pcc
-
Added missing SRAM entries for STM32L4 microcontrollers. (#1856) by @VilNeo
-
cli/run: Fix a bug where the last messages printed by the code before crashing (like a panic message) did not get printed. (#1890) by @Dirbaio
-
Fixed cases where probe attachment were inconsistent. (#1929) by @MabezDev
-
Fix minor bugs of WCH-Link implementation, add new probe varient. (#1875) by @andelf
-
Flash loader will now properly flash all bytes (#1951) by @bugadani
-
Update debug sequence for LPC55S69 with newest from pack, fixes an issue where the chip would not reset properly. (#1832) by @Tiwalun
-
Change from openSSL to rustls.
The prebuilt binaries depended on the system openSSL installation on Linux.
This meant that they required openSSL1, which is not supported e.g. on Ubuntu 22.04.
Changing to rustls removes this dependency. (#1828) by @Tiwalun -
Issue DAPABORT at startup and after receiving WAIT response from CMSIS-DAP (#1840) by @pcc
-
- Mark all ARM memory accesses as cacheable, to indicate they must not bypass
the cache and instead should see the same data as the CPU. Fixes #1715. (#1883) by @adamgreig
- Mark all ARM memory accesses as cacheable, to indicate they must not bypass
-
Fix the RAM address mapping for the esp32c3. (#1898) by @MabezDev
-
Fix core names and regions in LPC55S69 target description. (#1832) by @Tiwalun
-
dap-server: Return correct type for error response. (#1895) by @Tiwalun
-
target-gen
: Fix incorrect URL formatting (#1860). (#1860) by @matteocarnelos -
espusbjtag: Fixed a potential edge case that could lock up the interface. (#1933) by @bugadani
-
Unlock the OS Lock when starting an ARMv8 core (#1839) by @pcc
-
Correct esp-usbjtag reset assert/deassert levels. (#1922) by @bugadani
-
Prevent Debug Adapter Protocol workarounds for VSCode quirks from breaking other DAP clients. (#1872) by @linuxtim
Removed
probe-rs 0.22.0
Install probe-rs 0.22.0
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/probe-rs/probe-rs/releases/download/v0.22.0/probe-rs-installer.sh | sh
Install prebuilt binaries via powershell script
irm https://github.com/probe-rs/probe-rs/releases/download/v0.22.0/probe-rs-installer.ps1 | iex
Download probe-rs 0.22.0
File | Platform | Checksum |
---|---|---|
probe-rs-aarch64-apple-darwin.tar.xz | macOS Apple Silicon | checksum |
probe-rs-x86_64-apple-darwin.tar.xz | macOS Intel | checksum |
probe-rs-x86_64-pc-windows-msvc.zip | Windows x64 | checksum |
probe-rs-x86_64-unknown-linux-gnu.tar.xz | Linux x64 | checksum |
rtthost 0.22.0
Install rtthost 0.22.0
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/probe-rs/probe-rs/releases/download/v0.22.0/rtthost-installer.sh | sh
Install prebuilt binaries via powershell script
irm https://github.com/probe-rs/probe-rs/releases/download/v0.22.0/rtthost-insta...
0.21.1
Release Notes
Released 2023-10-12
Added
- rtthost: Add --version
Changed
cli
: SimplifyRttActiveChannel::get_rtt_data
(#1806)
Fixed
- debug: Do not crash and, and improve error message when unwinding memory location for optimized binaries. (#1810)
probe-rs 0.21.1
Install probe-rs 0.21.1
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/probe-rs/probe-rs/releases/download/v0.21.1/probe-rs-installer.sh | sh
Install prebuilt binaries via powershell script
irm https://github.com/probe-rs/probe-rs/releases/download/v0.21.1/probe-rs-installer.ps1 | iex
Download probe-rs 0.21.1
File | Platform | Checksum |
---|---|---|
probe-rs-aarch64-apple-darwin.tar.xz | macOS Apple Silicon | checksum |
probe-rs-x86_64-apple-darwin.tar.xz | macOS Intel | checksum |
probe-rs-x86_64-pc-windows-msvc.zip | Windows x64 | checksum |
probe-rs-x86_64-unknown-linux-gnu.tar.xz | Linux x64 | checksum |
rtthost 0.21.1
Install rtthost 0.21.1
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/probe-rs/probe-rs/releases/download/v0.21.1/rtthost-installer.sh | sh
Install prebuilt binaries via powershell script
irm https://github.com/probe-rs/probe-rs/releases/download/v0.21.1/rtthost-installer.ps1 | iex
Download rtthost 0.21.1
File | Platform | Checksum |
---|---|---|
rtthost-aarch64-apple-darwin.tar.xz | macOS Apple Silicon | checksum |
rtthost-x86_64-apple-darwin.tar.xz | macOS Intel | checksum |
rtthost-x86_64-pc-windows-msvc.zip | Windows x64 | checksum |
rtthost-x86_64-unknown-linux-gnu.tar.xz | Linux x64 | checksum |
target-gen 0.21.1
Install target-gen 0.21.1
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/probe-rs/probe-rs/releases/download/v0.21.1/target-gen-installer.sh | sh
Install prebuilt binaries via powershell script
irm https://github.com/probe-rs/probe-rs/releases/download/v0.21.1/target-gen-installer.ps1 | iex
Download target-gen 0.21.1
File | Platform | Checksum |
---|---|---|
target-gen-aarch64-apple-darwin.tar.xz | macOS Apple Silicon | checksum |
target-gen-x86_64-apple-darwin.tar.xz | macOS Intel | checksum |
target-gen-x86_64-pc-windows-msvc.zip | Windows x64 | checksum |
target-gen-x86_64-unknown-linux-gnu.tar.xz | Linux x64 | checksum |