Skip to content

v0.30.0

Compare
Choose a tag to compare
@flit flit released this 06 Mar 23:37
v0.30.0
5e1b074

v0.30.0 on PyPI


This release of pyOCD makes some big changes!

  • Python 2 support has been removed. Version 0.29 is the last version to support Python 2.
  • Removed the long since deprecated pyocd-flashtool and pyocd-tool commands. pyocd-gdbserver has been held back from the chopping block for another time, since it is still used by some debugger integrations.

Additions

  • New debug probe plugin for the Raspberry Pi picoprobe protocol. (Thanks @newbrain!)
  • RTOS thread awareness for ThreadX, aka Azure RTOS. (Thanks @newbrain!)
  • The PEMicro debug probe plugin is now a standard dependency. (Thanks @Gargy007!)
  • The capstone disassembly package is now a standard dependency.

Boards and targets

  • Add Raspberry Pi Pico, aka RP2040, target. Either of the two M0+ cores can be accessed by using the rp2040_core0 or rp2040_core1 target type. The rp2040 target type is an alias for rp2040_core0. Both cores cannot currently be debugged simultaneously.
  • Add NXP LPC845 target, lpc845. (Thanks @Hoohaha!)
  • Added a family match pattern for NXP i.MX RT family devices. This means that RT device support from CMSIS-Packs will have the same workaround for reset logic as the built-in RT family target support.
  • Added new HDSC MCU series HC32F160 targets, hc32f160xa and hc32f160xc. (Thanks @lennvn!)
  • Added HDSC part numbers: hc32f460xc and hc32f460xe to HC32F460 series, and changed hc32m423 to hc32m423xa. (Thanks @lennvn!)
  • Add some new and missing STMicro board IDs.

Changes and fixes

  • GDBDebugContextFacade: Fix misspelled warning() method.
  • J-Link: Convert "unspecified error" to transfer fault.
  • CMSIS-DAP: Set default SWD number of idle cycles after each transfer to 2, per recommendations and to match other probes.
  • Probe server: Fix client/server wire_protocol property converter handling of a None value.
  • Dropped pywinusb dependency on Windows, in favour of hidapi that is more stable.
  • A few other dependency updates and changes.
  • CMSIS-DAP: If a probe doesn't provide a serial number string, pyusb will return None. In this case, pyocd now generates a unique ID from other device info. (Thanks @mentha!)
  • J-Link: Removed all special handling of the DP_SELECT register at the J-Link probe plugin level since it is now handled in the higher DP layer.
  • DP: Add a couple checks of APv2 and register addresses.
  • CMSIS-DAP: Only use extract a board ID from the USB serial number to for DAPLink firmware when reporting the probe description as for pyocd list.
  • CMSIS-Packs: Fixed off by 1 error in memory region overlap checking.
  • CMSIS-Packs: Handle lack of FlashDevice struct in .FLM files.
  • CMSIS-DAP: read protocol version.
  • CMSISDAPProbe: trace logging.
  • Flash: trace logger for flash algo operations.
  • Fixes for undefined symbols identified by flake8.
  • CMSIS-DAP: add more checks of DAP_Info responses.
  • Add command line alias --project alias for -j / --dir.

Python API

  • SWJSequenceSender: Refactored so that parts of SWJ/JTAG transition sequences can be sent.
  • DebugProbe: Added swd_sequence() and jtag_sequence() APIs.

Test

  • Replaced Travis-CI with GitHub Actions for executing the unit tests on multiple versions of Python 3.
  • Add probeserver_test.py functional test.
  • Shorten TestTimeout.no_timeout so it doesn't fail on certain systems.
  • Add test binary for nRF5340-DK.