Skip to content

0.31.0

Latest

Choose a tag to compare

@github-actions github-actions released this 17 Jan 20:34
3de1cae

Release Notes

Released 2026-01-17

Added

  • Ability to check chip/firmware compatibility for ESP chips. (#3660) by @bugadani
  • Added rtt_poll_interval to 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-algorithm CLI 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_operations and 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 test command 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_registers method. (#3732) by @bugadani
  • Check presence of app descriptor required by ESP-IDF bootloader (#3664) by @bugadani
  • cargo-flash can now be compiled with the remote feature to support remote flashing. This feature enables the --host and --token flags to specify the remote server and authentication token. (#3706) by @bugadani
  • Added --read-flasher-rtt CLI switch to enable reading RTT output from the flash loader.
    Added FlashLoader::read_rtt_output to enable reading RTT output during flasher operation.
    Added read_flasher_rtt parameter to probe_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 --preset flag. (#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-freq and --idf-flash-mode options. (#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 pub rather than pub(crate), bringing them in-line with the Xtensa architecture (#3651) by @xobs
  • Changed ESP32-specific Xtensa and RISC-V detect_flash_size debug sequence function to take a Core reference instead of a Session reference. (#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
  • preverify is 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 | sh

Install 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-rs

Download 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-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.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 | sh

Install 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/rtthost

Download 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-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.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 | sh

Install 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-gen

Download 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-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>