Probe Rs Versions Save

A debugging toolset and library for debugging embedded ARM and RISC-V targets on a separate host

v0.23.0

2 months ago

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 and StackFrameInfo (#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

  • Added limited C debugging capabilities (#2171) by @bugadani

  • probe-rs now supports flashing STM32WLE5CCUx MCUs (#2036) by @elpiel

  • Add support for the esp32s2 target (#2002) by @bugadani

  • 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

  • JLink: handle multiple JTAG TAPs (#2025) by @bugadani

  • UnitInfo is now public. VariableCache::new_dwarf_cache and VariableCache::create_variable now take an Option<&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 under probe_rs::probe::list (#2027) by @bugadani

  • Moved scan_chain under jtag 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 for rusb/libusb). (#1842) by @Dirbaio

  • Extract ProbeDriver from DebugProbe (#1996) by @bugadani

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 of FlashAlgorithm (#2095) by @bugadani
  • Removed DebugProbeType (#1996) by @bugadani
  • Removed the ftdi and ftdi-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

v0.22.0

4 months ago

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 https://github.com/esp-rs/espflash/issues/522 (#1901) by @t-moe

  • Add support for the esp32c2 target (#1869) (#1869) by @SergioGasquez

  • Add support for the esp32s3 target (#2003) by @bugadani

  • Auto-detect ESP32 flash size (#1952) by @bugadani

  • 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 target

    Refactor the target definition to allow specifying the default Format for a given target. By default all targets default_target is Elf, except for the esp32* targets which are now Idf. (#1886) by @MabezDev

  • Added initial xtensa support. (#1928) 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

  • Xtensa: detect flash size (#1976) by @bugadani

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 from threads request to configuration_done request. (#1903) by @Andrew-Collins

  • Renamed JTAGAccess::get_idle_cycles to idle_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 and probe-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 enabled ftdi 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 separte ReadOnlyMemoryInterface 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

  • espusbjtag: capture fewer bits (#1931) by @bugadani

  • 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

    • Improved handling of source file paths in debugger, don't assume paths in the debug information are in the same format as the paths of the host OS. (#1857) by @Tiwalun
  • Updated the STM32G4 target yaml to version 1.5.0. This fixes the stm32g4xx_256 flash algorithm. (#1896) by @dlaw

  • Set DbgSwEnable to 1 during memory access (#1841) by @pcc

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

  • Removed unused --assert from probe-rs reset (#1993) by @bugadani

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-installer.ps1 | iex

Download rtthost 0.22.0

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.22.0

Install target-gen 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/target-gen-installer.sh | sh

Install prebuilt binaries via powershell script

irm https://github.com/probe-rs/probe-rs/releases/download/v0.22.0/target-gen-installer.ps1 | iex

Download target-gen 0.22.0

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

v0.21.1

7 months ago

Release Notes

Released 2023-10-12

Added

  • rtthost: Add --version

Changed

  • cli: Simplify RttActiveChannel::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

v0.21.0

7 months ago

Released 2023-10-04

Added

  • Added Target for MSPM0L (#1789)
  • Support for EFM32 Happy Gecko MCUs (#1747)
  • Added RA4M1 series target, R7FA4M1AB. (#1706)
  • Support for NXP i.MX RT500 series chips: MIMXRT595S, MIMXRT555S, MIMXRT533S (#1642)
  • Added --no-location option to the CLI run command, which suppresses the filename and line number information from the rtt log (#1704)
  • target-gen: Add new --test-address option to the target-gen test subcommand. (#1708)
  • cli: Add --verify flag to download, flash and run (#1727)
  • cli: Add read and write commands to interact with target memory (8,32,64 bit words) (#1746)
  • Added STM32U5A and STM32U59 targets. (#1744)
  • Added AT32F4 series targets (#1759)
  • Allowed JTAG scan chain information to be encoded in targets (#1731)
  • Added support for IDF and BIN to cargo flash. Added UF2 support to cargo flash and probe-rs. (#1765)
  • Support for handling an Arm Cortex-M Semihosting 'Exit Success' or 'Exit Failure' command. (#1755)
  • Added getters to registry : get_targets_by_family_name & get_target_and_family_by_name, change get_target_by_name. (#1770)
  • Support for vector catch in Armv8-M targets (#1709)
  • Add log rotation to stop disks from filling. Currently a maximum of 20 logs is kept. (#1780)
  • Allow to customize the defmt log format with --log-format. (#1788)

Changed

  • cli: Allow to interrupt probe-rs run during RTT scan (#1705).
  • cli: Ignore errors from enable_vector_catch (#1714).
  • cli: Retry RTT attach before continuing (#1722).
  • cli: Clean clap attributes (#1730)
  • target-gen: (#1745)
    • Memory regions in target.yaml are now sorted with lowest address first.
    • Use .pdsc flash algorithm RAMstart field to calculate load_address for target yaml.
  • Target definitions can now constrain the RTT automatic scanning ranges to just a subset of all available RAM, to support targets that have large amounts of RAM that would take a long time to scan. (#1738, #1749)
  • cli: Output defmt logs as colored (#xxxx)

Fixed

  • Handle non-secure RESET peripheral in nRF5340 debug_core_unlock sequence.

Removed

  • cli: dump subcommand, replaced by read.

v0.20.0

9 months ago

Release Notes

Released 2023-07-19

Added

  • dap-server: In addition to Elf format, this adds support for binary formats Bin, Hex, and Idf (#1656).
  • Added PAC55XX series targets (#1655)
  • Added support for JTAG commands via CMSIS-DAP protocol (#1462)
  • core: Added PAC55XX series targets (#1655)
  • core: Stack unwinding can now unwind beyond (optionally nested) exception handlers (#1665).
    • ARMv6-M: Report Exception / Fault description, and Unwind the registers and next frames.
    • ARMv7-M: Also decodes details about HardFault, UsageFault, BusFault, and MemManageFault.
    • ARMv7-A, Armv8-M, Armv8-A, RISC-V: Not implemented - requires architecture specific implementations.
  • cli: Added a simple profiler to the probe-rs cli toolkit (#1628)
  • core: Added MSP432E4 target (MSP432E401Y and MSP432E411Y). (#1139)
  • core: Added vector catch for ARMv6-M and ARMv7-M (#1592)
    • Currently supported are HardFault and CoreReset.
  • cli: The run command now prints a stack trace on HardFault (#1592)
  • Added a simple profiler to the probe-rs cli toolkit (#1628)
  • Added MSP432E4 target (MSP432E401Y and MSP432E411Y). (#1139)
  • probe-rs-cli: added attach subcommand. (#1672, #1616)

Changed

  • cli: more descriptive error messages for ambigous chips (#1671).
  • cli: When using memory as the trace sink for an ITM trace, the trace is now read out through the debug registers (#1688)
  • target-gen: RTT is enabled by default now in the test command (#1690).

Fixed

  • core: Added a missing reset catch clear that prevented the CPU from properly starting after flashing RTT from attaching (#1675).
  • cli: fixed --base-address having no effect (#1664).
  • cli: fixed --skip not accepting hexadecimal values (#1664).
  • cli: all the commands now load the chip description path and provide uniform config arguments (#1691).
  • dap-server: The VSCode extension reports all STDERR errors if process initialization fails (#1699).
  • debug : Consider RegisterValue byte size when doing arithmetic on register addresses. (#1701)

Removed

  • cli: removed obsolete --skip-bytes (which had no effect), use --skip instead (#1664).

v0.19.0

10 months ago

Release Notes

Released 2023-06-27

Changed

  • Merged probe-rs-cli, probe-rs-debugger, cargo-embed, cargo-flash binaries into the probe-rs crate.
    • probe-rs-cli is now available in probe-rs.
    • probe-rs-debugger is now available as probe-rs dap-server.
    • cargo-embed and cargo-flash functionality is unchanged, but they are now small shim binaries that invoke probe-rs.
    • Running cargo install probe-rs installs the probe-rs, cargo-embed and cargo-flash binaries.
  • Merged the gdb-server crate into probe-rs. It's now available under probe_rs::gdb_server, and requires enabling the gdb-server Cargo feature.

Fixed

  • probe-rs-debugger: Show errors that happen before VSCode/DAP Client session initializion has completed (#1581).
  • probe-rs-cli-util: replace unwanted instance of println with eprintln (#1595, fixes #1593).
  • stlink: exit JTAG mode on idle to tristate debug interface (#1615).
  • probe-rs-debugger: The MS DAP Request setBreapoints clears existing breakpoints for the specified Source, and not for all Source's (#1630)
  • probe-rs/flashing: Inconsistent address formatting in the "No flash memory contains the entire requested memory range" (FlashError::NoSuitableNvm) error message (#1644)
  • probe-rs/flashing: For targets whose flash algorithms require a fixed load address, always select a RAM region containing that address. (#1646)
  • probe-rs: Add support for the esp-idf binary format (#1629)

Added

  • Added support for the Olimex ARM-USB-TINY-H JTAG device (#1586).
  • Added support for propagating CoreStatus to the probe in use (#1588).
  • Added PY32F0xx series targets (#1619).
  • Flashing process can now detect and report if the flashing algorithm locks up the core that it's running on. (#1645)

Removed

  • Removed Sentry integration in the CLI tools.

0.17.0

1 year ago

probe-rs (library)

Added

  • st-link: Support reading banked DP registers if firmware is new enough to support it.

  • target-gen: Add support for STAR-MC1 by Arm China

Fixed

  • probe-rs: Emit chip erase started and finished/failed events correctly (#1470, #1496)

    The finished/failed event would only be emitted when a sectorwise erase would be performed. Now the events are correctly emitted.

  • probe-rs: Fixed a race condition when reseting NXP chips under JTAG (#1482)

    As an example, this makes flashing the Teensy 4.1 (which has an i.MX RT1062) reliable.

  • probe-rs: jlink: fix WAIT retries on AP reads. Fixes flashing on nrf91. (#1489)

  • Add flashing and debugging support for the ESP32C6 (#1476)

  • Debug: Fixed a number of known issues, which included some code refactoring to avoid code duplication (#1484).

    • Unwind of variables that are in inlined subroutines now resolve correctly under all known conditions.
    • Unwind of nested arrays now resolve, irrespective of the levels of nesting (#1404).
    • Gracefully handle the unwind of arrays that are empty.
    • Correctly unwind pointers/references that are nested as references in several layers of structs.
    • Correctly unwind pointers/references to variants and enums.
    • Fix an error that terminated the debug when new architecture error variants were introduced by a previous PR.
    • Fix an error where unwind memory locations decoded memory values as integer addresses without accounting for endianness.
  • VSCode: Avoid sending extraneous StoppedEvent from probe-rs-debugger (#1485).

  • cmsis-dap: Avoid endless recursion when recovering from errors.

    When an error occured, the cmsis-dap code tried to read the debug port CTRL register. If that read failed, it would again try to read the same register, returning in an endless recursion.

cargo-flash (cargo extension)

Changed

  • Log messages are printed to stderr, not stdout.

Fixed

  • If the output was redirect into a file, some log messages were not printed.

cargo-embed (cargo extension)

Changed

  • Log messages are printed to stderr, not stdout.

Fixed

  • If the output was redirect into a file, some log messages were not printed.

probe-rs-cli (CLI)

v0.18.0

1 year ago

probe-rs (library)

Fixed

  • Add reset catch sequence for Silicon Labs EFM32/EFR32 Series 2 chips.

  • target-gen: Use the correct flash base address when testing flash algorithm (#1542)

  • VSCode and probe-rs-debugger is very slow if rttEnabled: true and target application has no RTT initialized (#1497).

  • prober-rs-debugger: Using the readMemory request on RISC-V (ESP32C3 board) is slow (#1275).

  • probe-rs-debugger: Improve handling of disconnect and terminate requests. With support in DAP Client/VSCode for: (#1197)

    • Disconnect - will disconnect the debug session, without affecting the run status of the target application.
    • Disconnect and Suspend - will halt the target application, before disconnecting the debug session.
    • Terminate request is not supported, and DAP configuration is such that it won't be requested by the client.
  • probe-rs-debugger: Improve handling of restart request. With support in DAP Client/VSCode for: (#1507)

    • Restart will now restart the debug session. Currently this is support for ARM targets only.
    • If a newer binary is available, and flashing enabled, then the new binary will be flashed before starting the new debug session.
  • probe-rs-debugger: Ensure VSCode will halt on all configured breakpoints`, irrespective of flashing config. (#1529)

  • probe-rs-debugger: Fix issue where "Watch" variables were not found in the debug session. (#1552)

Changed

  • Update MS DAP protocol to v1.60.0. Documentation clarifications only. (#1458)

  • probe-rs-debugger: Cleaned up the timing of caching unwind information, based on new MS DAP protocol docs. (#1458)

  • probe-rs: Allows add_target_from_yaml function to accept multiple sources

  • probe-rs-debugger: Remove restart-after-flashing option, and make it the default behaviour. (#1550)

  • probe-rs: Trigger rebuild if changes in the PROBE_RS_TARGETS_DIR detected (#1562).

  • probe-rs: Set the flash range of RP2040 to the max supported size (#1567)

  • probe-rs-debugger: Slightly relax the RISC-V restriction when handling restart request. Allows restart, but does not re-flash. (#1569)

Added

  • Added EFM32TG11B family targets (#1420)

  • Added LPC55Sxx target (#1513)

  • Added STM32H5xx targets (#1575)

  • Added custom sequence support to STM32L0, L1, L4, G0, G4, F0, F3, WB, WL, enabling debug clocks during sleep modes (#1521)

  • Add default sequence 'debug_core_stop', which disables debugging when disconneting from ARM cores by default. (#1525)

  • probe-rs-debugger: Initial support for 'gdb-like' commands to be typed into VSCode Debug Console REPL. (#1552)

    • The help command will list available commands, and arguments.
    • Command completions are supported for the individual commands, but not for the arguments.
    • Additional commands can be added in the future, as required, but will benefit from some refactoring to share code with functionality that is already implementated in dap_adapter.rs for MS DAP requests.
  • debug: Enable debug experimental support for binaries compiled from C files (GNU C99/11/17). (#1558)

  • Added support for monitor reset and monitor reset halt commands in gdb-server (#1565)

cargo-embed

Changed

  • Update description of Fedora prequisites in README.md

0.16.0

1 year ago

probe-rs (library)

probe-rs library is unchanged, version number is increased to keep in sync with other probe-rs packages.

cargo-flash (cargo extension)

cargo-flash binary is unchanged, version number is increased to keep in sync with other probe-rs packages.

cargo-embed (cargo extension)

Fixed

  • Ensure offset between local time and UTC gets determined as early as possible.

    Determining the local time fails in multi-threaded programs, so it needs to be done as early as possible. Otherwise the program will quit with an error saying that the local time could not have been determined.

  • Formatting of timestamps in TUI output. Was broken due to the move from the chrono crate to the time crate.

probe-rs-cli (CLI)

Fixed

  • Ensure offset between local time and UTC gets determined as early as possible.

    Determining the local time fails in multi-threaded programs, so it needs to be done as early as possible. Otherwise the program will quit with an error saying that the local time could not have been determined.

v0.15.0

1 year ago

probe-rs (library)

Added

  • target-gen: Add new --fixed-load-address flag to the target-gen elf subcommand. (#1419)

    This can be used when the flash algorithm needs to be loaded at a specific address. The address is determined automatically from the ELF file.

  • target-gen: Extract RTT control block address from flash algorithm. (#1427)

    Check if the flash algorithm supports RTT, and if it does, store the RTT control block address in the target YAML file.

  • probe-rs: Read RTT during flashing procedures if the algorithm supports RTT.

    This enables better debugging for flash-algorithms and should encourage development of said algorithms.

  • Add support for FT4232HL probe.

  • target-gen: Add a command which enables the easy development and debugging of a flash algorithm.

    target-gen test is a new command to automatically upload, run, print RTT messages and test a flash algorithm. Have a look at the template to create a new flash algorithm.

Changed

  • cmsisdap: Increased read timeout from 100ms to 1000ms.
  • rtt: Moved RTT to the probe-rs library instead of having it in its own library. (#1411)

Fixed

  • probe-rs: Avoid nested calls to tracing macros, otherwise filtering doesn't work properly. (#1415)

cargo-flash (cargo extension)

Changed

  • Updated probe-rs to 0.15.0.

cargo-embed (cargo extension)

Changed

  • Updated probe-rs to 0.15.0.

probe-rs-cli (CLI)

  • Add --log-file option to specify where the log file should be placed.
  • Reduce RTT polling frequency in run command to avoid USB instability issues.