Release Notes
Released 2026-01-17
Added
- Ability to check chip/firmware compatibility for ESP chips. (#3660) by @bugadani
- Added
rtt_poll_intervalto flash algorithms. Defaults to 20ms. (#3713) by @bugadani - Basic Zynq-7000 SoC support. QSPI flashing and RTT attaching supported. (#3720) by @adamgreig
- Added the
--prefer-flash-algorithmCLI option which allows overriding the flash algorithms to use
for different memory regions. (#3741) by @robamu - Add support for ch32f1 (#3722) by @emeric-martineau
- Added support for the PIC32CXSG series of chips (#3644) by @rnd-ash
- Add support for ESP32-C5 (#3635) by @bugadani
- Added
MemoryInterface::execute_memory_operationsand associated types to support executing multiple memory operations in a single batch, which is useful for architectures that don't support background memory access. (#3728) by @bugadani - Added the
testcommand to the debug console, when running embedded-test firmware. (#3735) by @bugadani - Add support for ESP32-P4 (#3649) by @xobs
- Add support for ESP32-C61 (#3646) by @bugadani
- Added
CoreInterface::spill_registersmethod. (#3732) by @bugadani - Check presence of app descriptor required by ESP-IDF bootloader (#3664) by @bugadani
cargo-flashcan now be compiled with theremotefeature to support remote flashing. This feature enables the--hostand--tokenflags to specify the remote server and authentication token. (#3706) by @bugadani- Added
--read-flasher-rttCLI switch to enable reading RTT output from the flash loader.
AddedFlashLoader::read_rtt_outputto enable reading RTT output during flasher operation.
Addedread_flasher_rttparameter toprobe_rs::flashing::{erase, erase_all, run_blank_check}. (#3713) by @bugadani - Add ROM regions to the ESP32 memory maps. (#3630) by @lucasvr
cargo-flash/cargo-embed: Added support for CLI presets via the probe-rs config file and the--presetflag. (#3706) by @bugadani- Added support for the STM32WB0 series. (#3657) by @physgun
- Added support the STM32U3 family of processors. (#3689) by @graynode
- Add target support for MSPM0G511x and MSPM0518x (#3685) by @i509VCB
- Changed preset logic to fallback to "default" preset if present (#3597) by @rdnetto
- Added support for probes with multiple interfaces (#3690) by @JomerDev
- Added
--idf-flash-freqand--idf-flash-modeoptions. (#3749) by @bugadani - Add support for cw32l0 (#3682) by @WaitFme
- Add support for CH32V003 RV32EC RISC-V MCU (#3616) by @Oveln
- add Holtek vendor support for HT32F523x2 series (#3634) by @hitsmaxft
- Add support for the nRF54LM20A
(#3656) by @michal4132
Changed
- Updated target for STM32C0 family with the new flashing algorithms in version 2.4.0 of STM32C0xx_DFP. This fixes the SwdDpWait warning during the erase phase (#3505).
Also added support for the STM32C051 and STM32C091. (#3733) by @william-spinelli-one - ESP32-specific flash size detection has been reimplemented as a custom flash algorithm function. (#3697) by @bugadani
- Function names now include the type name. (#3751) by @bugadani
- Changed the warning macro that is emitted when a CIDR value doesn't match to an info block since there's nothing probe-rs or the user can do about it. (#3642) by @xobs
- Change reset sequence for ESP32 Xtensa devices to improve reliability. (#3681) by @bugadani
- The flashing code now uses a A32-encoded BKPT instruction for ARMv7A targets. (#3720) by @adamgreig
- Updated nusb dependency to version 0.2.0 (#3562) by @thenewwazoo
- Update LPC55S16 Target (#3666) by @wt
- Change several RiscvCommunicationsInterface functions so that they are now
pubrather thanpub(crate), bringing them in-line with the Xtensa architecture (#3651) by @xobs - Changed ESP32-specific Xtensa and RISC-V
detect_flash_sizedebug sequence function to take aCorereference instead of aSessionreference. (#3678) by @bugadani
Fixed
- Fixed an underflow in Xtensa register unwinding. (#3712) by @bugadani
- Fixed attaching to RISC-V cores when one or more hart is not enabled. (#3648) by @xobs
- Fixed some Xtensa performance issues. (#3729) by @bugadani
- Fixed support for onboard Digilent HS1 probes (#3692) by @craigjb
- Bug fixes for ARMv7A debug:
- Only read MVFR0 when CP10/11 are enabled
- Consider UND_L an abort alongside data/prefetch aborts
- Disable ITR before sending RRQ as required by the architecture
- Use reset vector catch for reset-halt instead of requesting halt then
resetting - Warn if core isn't halted after reset-halt (#3720) by @adamgreig
- Fixed CH347 opening logic to account for both CH347T and CH347F (#3640) by @tylerwx51
- Fixed RISC-V tunneled JTAG transport for some probes (including Digilent HS1) (#3691) by @craigjb
- Fixed the RP235x reset sequence by giving it a timeout rather than a loop limit (#3699) by @xobs
- Add banked stack pointer registers for v8m targets, including TrustZone and non-TrustZone (#3546) by @ExplodingWaffle
preverifyis no longer ignored in cargo-embed. (#3709) by @bugadani- Change CMSIS-DAP probe maximum packet size detection to speed up connecting to EDBG probes (#3744) by @adamgreig
- Fixed polling long-running Xtensa instructions. (#3641) by @bugadani
- CMSIS-DAP now passes the JTAG TAP index from the JTAG chain to DAP_Transfer and DAP_TransferBlock requests sent to the probe. (#3720) by @adamgreig
- Fixed RTT on 64-bit targets so all flag and offset fields are 32-bits (#3631) by @xobs
- Fixed flashing of ConfigROM and DataFlash regions for Renesas RA series targets by correcting memory map addresses and region types. (#3723) by @leocafonso
- Don't panic if the USB configurations for a ST-Link are not accessible, but return an error instead. (#3726) by @Tiwalun
- When enabling data tracing in a DWT unit, access matches on word size, not byte size. (#3643) by @mciantyre
- Revise the MIMXRT10xx reset approach to better support RAM loading. (#3653) by @mciantyre
- ESP32-S3: fixed flashing empty devices, added code to support octal flash. (#3636) by @bugadani
- Fixed incorrect group checks for the current user in linux help error message during setup. (#3698) by @ValouBambou
- Clear DP cache when disconnecting from an ARM communication interface (#3679) by @jnkr-ifx
- Fixed ATSAMV71 flash corruption by offsetting the flash algorithm instructions,
see target file for details. (#3745) by @adamgreig - Fixed memory inspectors crashing when reading memory with a negative offset. (#3717) by @bugadani
- Fixed nRF53 debug unlock failing after mass erase due to checking the wrong AP register. (#3701) by @avolmensky
- Fix DAP watch evaluations for static variables by loading only requested globals lazily while preserving fast value updates between steps. (#3632) by @HalfSweet
- Fixed a bug which caused some RISC-V processors to be halted unnecessarily. (#3728) by @bugadani
Removed
- Removed
CoreInterface::on_session_stop(#3721) by @bugadani - Removed
{Core, CoreInterface}::debug_on_sw_breakpoint. Architecture implementations should enable software breakpoints on connection. (#3721) by @bugadani
probe-rs-tools 0.31.0
Install probe-rs-tools 0.31.0
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/probe-rs/probe-rs/releases/download/v0.31.0/probe-rs-tools-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/probe-rs/probe-rs/releases/download/v0.31.0/probe-rs-tools-installer.ps1 | iex"Install prebuilt binaries via Homebrew
brew install probe-rs/probe-rs/probe-rsDownload probe-rs-tools 0.31.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-rsYou 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.31.0
Install rtthost 0.31.0
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/probe-rs/probe-rs/releases/download/v0.31.0/rtthost-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/probe-rs/probe-rs/releases/download/v0.31.0/rtthost-installer.ps1 | iex"Install prebuilt binaries via Homebrew
brew install probe-rs/probe-rs/rtthostDownload rtthost 0.31.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-rsYou 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.31.0
Install target-gen 0.31.0
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/probe-rs/probe-rs/releases/download/v0.31.0/target-gen-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/probe-rs/probe-rs/releases/download/v0.31.0/target-gen-installer.ps1 | iex"Install prebuilt binaries via Homebrew
brew install probe-rs/probe-rs/target-genDownload target-gen 0.31.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-rsYou 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>