Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/dispatch_webpage_update.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Repository Dispatch
uses: peter-evans/repository-dispatch@v3
uses: peter-evans/repository-dispatch@v4
with:
token: ${{ secrets.PAT }}
repository: probe-rs/webpage
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/smoketest.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ jobs:
run: rustup target add aarch64-unknown-linux-gnu

- name: Install cross
uses: taiki-e/[email protected].33
uses: taiki-e/[email protected].38
with:
tool: cross

Expand Down
135 changes: 126 additions & 9 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,25 +5,142 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

Do not edit this file by hand. If you want to add a new entry, please follow the [Contribution Guidelines](https://github.com/probe-rs/probe-rs/blob/master/CONTRIBUTING.md#changelog-entries).

## [0.29.1]
## [0.30.0]

Released 2025-07-13
Released 2025-10-31

### Added

- Added support for stm32wba65. (#3413) by @leftger
- Added support for reading embedded_test testcases directly from ELF file. (#3512) by @t-moe
- Added STM32N6 target (without flash algorithms) (#3436) by @xobs
- Added MIMXRT1052 target (without flash algorithms) (#3385) by @whitequark
- Added SF32LB58 Series target. (#3609) by @HalfSweet
- add the trace clock configuration for MCX VARIANT_A0 (register addresses taken from MCXA153 CMSIS pack's .pdsc file) (#3386) by @BKSalman
- Expand MIMXRT target memory maps to include all possible memory regions. Note that, based on your target's FlexRAM configuration, you may not be able to access all regions. (#3489) by @mciantyre
- Added `DebugRegisters::from_coredump` (#3371) by @bugadani
- Added an export of `arm::communication_interface::DapProbe` so external software can implement `ArmDebugSequence` trait functions that require that type (#3416) by @xobs
- Added STLink "Bad AP" error code (0x1D) to the error enum (#3451) by @Dirbaio
- Added support for GD32F30x series MCUs (#3390) by @romainreignier
- The debugger now handles some semihosting calls (#3373) by @bugadani
- Add probe support for ch347 (#3423) by @luckycyang
- Added Cortex-M33 TPIU part info (#3433) by @gdobato
- Added `step` debugger command to step one instruction. (#3558) by @bugadani
- Added (back) the `reset` command to the debugger. (#3558) by @bugadani
- Added `MemoryAccessConfig` to configure memory access methods based on access width and memory address.
Added `RiscvCommunicationInterface::memory_access_config`
Added `MemoryAccessMethod::WaitingProgramBuffer` and `MemoryAccessMethod::HaltedSystemBus`
`riscv::communication_interface::MemoryAccessMethod` is now public (#3549) by @bugadani
- Added `--chip-erase` option to cargo-flash (#3554) by @bugadani
- Add RISC-V FPU registers to the GDB server so targets compiled with
floating-point support correctly advertise the FP capability (`flen`). This
prevents errors like: "bfd requires flen 4, but target has flen 0".<br> (#3592) by @ArthurHeymans
- Added support for EFR32MG24. (#3443) by @wtodd1
- Added an `big_endian` flag to flash algorithms to indicate if an algorithm should get a big endian header. (#3355) by @xobs
- Added ARMv8 fast memory writes for AArch32 mode (#3525) by @fdomke
- Added DCC Fast mode for ARMv7A to improve reading and writing speeds. As part of this, add a helper for banked register writes. (#3365) by @xobs
- Added large data support for AXI3/AXI4 MEM-APs. (#3482) by @fdomke
- Added support for saml21 series. (#3446) by @imrank03
- Added Glasgow Interface Explorer support (SWD only). (#3388) by @whitequark
- add MCXN947 specific sequence taken from CMSIS pack .pdsc file (#3386) by @BKSalman
- Added support for the gdb load command (#3394) by @eulerdisk
- Added `--semihosting-file` command line option. (#3534) by @paroga
- Added a target entry for the STM32C092RC (copying STM32C092CC). (#3591) by @AdinAck
- Added an export of `riscv::dtm::JtagDtmBuilder` so external software can implement `DebugProbe::try_get_riscv_interface_builder()` (#3416) by @xobs
- Added support for STM32C092CC device (#3434) by @brett-carpenter
- Added a Sequence to reset a Raspberry Pi RP235x using the Rescue DP. (#3497) by @xobs
- Added a Sequence to reset a Raspberry Pi RP2040 using the Rescue DP. (#3429) by @xobs
- Added option `--no-timestamps` to `probe-rs run` and `probe-rs attach` commands to suppress timestamps of String and Defmt messages. (#3542) by @tpambor
- Added support for EFM32PG26. (#3537) by @Spotigus
- Shutdown graceful when receiving SIGTERM (#3509) by @tpambor
- Add the ability to notify a multisubscription that an event has ended (#3456) by @jamesmunns (#3456) by @jamesmunns
- Add a --manual flag to the autocomplete install command<br>
This flag prints the autocomplete script to stdout instead of installing it.<br>
This feature is useful for distro maintainers or other special packaging requirements
which install autocomplete scripts with their own mechanism. (#3579) by @Yatekii
- Added initial big endian support for ARMv7A (and therefore ARMv7R) (#3355) by @xobs
- Added hints on Linux that warn the user if their setup might be incorrect.<br>
The hints cover the following cases:<br>
- The user has no udev rule file containing the string `probe-rs`.
- The `plugdev` group is missing
- The `plugdev` group is not a system group (ie. the group has id >= 1000) and
uses a recent systemd version (ie >= 258).
See https://github.com/probe-rs/probe-rs/issues/3566 for more info.
- The user does not belong to the `plugdev` group.<br>
You can disable the hints if by setting the `PROBE_RS_DISABLE_SETUP_HINTS` variable. (#3577) by @nathansamson

### Changed

- De-assert reset before `enable_arm_debug` to support chips that power down cores under SRST assertion. (#3485) by @fdomke
- Changed `Probe::try_get_X_interface` to return architecture-specific errors. (#3375) by @bugadani
- Renamed configuration profile argument of `cargo-embed` from `CONFIG` to
`CONFIG_PROFILE` to more clearly state its purpose. (#3361) by @sirhcel
- probe-rs no longer warns for potentially unintended `--format` use (#3442) by @bugadani
- cmsisdap: V1 is now behind a feature gate `cmsisdap_v1`, making the `hidapi` dependency optional. (#3473) by @darkwater
- Updated Glasgow Interface Explorer protocol version to `probe-rs,v01`. (#3395) by @whitequark
- Updated `JtagSequence` members so they are now `pub` rather than `pub(crate)`, allowing this struct to be used by library users. (#3590) by @xobs
- `FlashProgress` now wraps an `FnMut`.
`FlashProgress` no longer implements `Clone`.
Flasher APIs now take `FlashProgress` by mutable reference. (#3555) by @bugadani
- Normalized NXP chip names to omit redundant "NXP" prefix (#3611) by @tchebb
- BREAKING: Rename the `ArmProbeInterface` trait to `ArmDebugInterface`. (#3425) by @Tiwalun
- Changed `flashing::{erase,blank_check}` to work with address ranges instead of sector numbers. Renamed `erase_sectors` to `erase`. (#3459) by @Dirbaio
- Allow errors reported by the firmware to affect the CLI exit code (#3568) by @nilfit
- Updated espflash to v4. The default bootloader for ESP32 devices now requires an app descriptor to be present in the firmware. For esp-hal based firmware, you'll need to use add `esp_bootloader_esp_idf` to your project. (#3447) by @bugadani
- Clean up status output from `cargo-embed`. The configuration profile is
reported as `Profile` now and status output is aligned with the one from
flashing. (#3362) by @sirhcel
- probe-rs will fail with an outdated firmware error when trying to use an old Raspberry Pi debugprobe. (#3252) by @bugadani
- Removed typestate from `ArmCommunicationInterface` (#3382) by @bugadani

### 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
- Fix unwinding on thumb targets for functions that never return (#3543) by @ExplodingWaffle
- Fixed an issue where JTAG scans showed a large number of phantom BYPASS taps at the end of a scan that don't actually exist. (#3595) by @xobs
- gdb: Deduplicate flash regions in memory map before passing them to gdb (#3513) by @tdittr
- Fixed download speed of RISC-V devices (#3507) by @bugadani
- Fixed printing stack trace on ctrl-c (#3380) by @bugadani
- 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 incorrect DTR (DBGDTRTX/DBGDTRRX) read order and a bug where cached registers marked for clobber were not flagged for writeback in the Armv8a core implementation. (#3606) by @Natsu-B
- Fixed minor issues with resetting mimxrt6xx and mcx. (#3411) by @Wassasin
- Fixed MIMXRT1010 memory map: Added DTCM region, correct OCRAM region size. (#3475) by @SpinFast
- Fixed an issue where the show_timestamps property for RTT channels was ignored when using the String format in both the DAP server and `cargo embed`. (#3542) by @tpambor
- dap: Don't terminate the debug session if another request than `launch` and `attach` is received after the `initialize` request. Instead,
ignore requests until we receive either a `launch` or `attach` request. (#3419) by @Tiwalun
- Fixed an issue where the endianness call on the core was not getting delegated to the inner core interface. (#3368) by @xobs
- Use the correct core when verifying flash content, do not always use the core with index 0. (#3491) by @Tiwalun
- Fixed the core status of ARMv7A when issuing a `reset()` so that the status is now updated to `Running` rather than staying at `Halted`. (#3387) by @xobs
- Fixed an issue when enumerating through access ports in `get_arm_components`. If an access port base address is not present is should be skipped. (#3596) by @alphamaster32
- * cargo-embed: Respect halt after reset even when flashing (#3449) by @Tiwalun
- Check for data aborts when executing instructions on ARMv7A and ARMv8A. (#3594) by @xobs
- Fixed setting the Program Counter on ARMV8 in AArch32 mode (#3418) by @fdomke
- Fixed nRF91xx memory map: set correct RAM size, added UICR memory region. (#3468) by @Dirbaio
- Detect and handle start_addr + len overflow in read_addrs by returning non-fatal EFAULT (14) when GDB issues wrapped requests (e.g., $mfffffffffffffffc,4), mirroring OpenOCD behavior and preventing the panic in aligned_to_32_split_offset while keeping valid reads unaffected. (#3605) by @Natsu-B
- Use a different flash algorithm for MIMXRT1040 targets that seems more reliable. (#3490) by @mciantyre
- Fixed panic in BlackMagicProbe introduced by 49ef7eb960e8a7148ed7a8d23a0c5b5c0cac9e26 (#3398) by @xobs
- Fixed ARMv8 instruction for debug halt from `BKPT` to `HLT`. (#3483) by @fdomke
- Fixed ARMv8 cpu core state detection after reset() (#3437) by @fdomke
- Fixed an issue where RTT channel modes weren't configured properly (#3364) by @bugadani
- Fixed the output format of `probe-rs read b16` (#3550) by @bugadani
- 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 a crash affecting RISC-V devices. (#3391) by @bugadani
- fix bitvec related problems with wlink (#3366) by @ArthurHeymans
- Added flash algo for MIMXRT1052 targets (#3412) by @Hoohaha
- Reset the EXTDCC mode (ARMv7A) or Memory Access mode (ARMv8A) when starting the debug core. (#3594) by @xobs
- Fixed path handling for local unzipped packs in `target-gen`. (#3561) by @decaday
- Fixed address mapping issue in sifli uart (#3610) by @HalfSweet
- Fixed support for mass-erase-unlock operations on nRF91x1 chips. probe-rs can now unlock a locked debug port on these devices. (#3458) by @reed-smout
- Relocate Microchip MEC-172x flashing routines and disable device interrupts after system reset (#3574) by @jeffglaum
- RISC-V: memory access via the program buffer should correctly wait for the program buffer to finish executing. (#3541) by @bugadani
- Fixed an issue where specifying the `--probe` parameter in the CLI would cause an error, Serialize DebugProbeSelector as a string. (#3617) by @HalfSweet
- Fixed flashing devices such as STM32WL with multiple cores where the algorithm wasn't correctly selected (#3417) by @xobs

### Removed

- Removed a step where all cores are halted when creating a Session for non-ARM targets. (#3510) by @xobs
- BREAKING: Removed the `get_dap_access` and `get_swd_sequence` functions from the `ArmMemoryInterface` trait. Calls to these functions can be replaced by `ArmMemoryInterface::get_arm_debug_interface` (#3425) by @Tiwalun
- Removed retries on CMSISDAP probe transfer faults, fixing IMXRT6xx and similar misbehaviour during reset. (#3466) by @Wassasin

## [0.29.0]

Expand Down Expand Up @@ -1609,8 +1726,8 @@ Initial release on crates.io
- Working basic flash downloader with nRF51.
- Introduce cargo-flash which can automatically build & flash the target elf file.

[unreleased]: https://github.com/probe-rs/probe-rs/compare/v0.29.1...master
[0.29.1]: https://github.com/probe-rs/probe-rs/compare/v0.29.0...v0.29.1
[unreleased]: https://github.com/probe-rs/probe-rs/compare/v0.30.0...master
[0.30.0]: https://github.com/probe-rs/probe-rs/compare/v0.29.0...v0.30.0
[0.29.0]: https://github.com/probe-rs/probe-rs/compare/v0.28.0...v0.29.0
[0.28.0]: https://github.com/probe-rs/probe-rs/compare/v0.27.0...v0.28.0
[0.27.0]: https://github.com/probe-rs/probe-rs/compare/v0.26.0...v0.27.0
Expand Down
Loading
Loading