Skip to content

v0.17.0

Compare
Choose a tag to compare
@flit flit released this 21 Feb 18:56
2113285

New features

  • pyOCD now supports user scripts, written in Python, that can extend, modify, and override default behaviour at multiple key points in the connection lifetime. This feature is documented in docs/user_scripts.md.
  • Providing the foundation for user scripts, the Python API supports attaching a delegate object to the session and other objects such as the target and cores. The same hook functions are used for delegates and user scripts.
  • SWO and SWV are now supported for both CMSIS-DAP and STLink. See the description of #543 for details.
  • CMSIS-DAPv2 support. v2 uses bulk endpoints instead of HID for improved latency. Tested with the Keil ULINKplus.
  • Sessions have the concept of a project directory. This directory defaults to the working directory where pyOCD was started. It can be changed with the -j/--dir command line argument or project_dir user option. Any files used by pyOCD, such as config files, user scripts, or .FLM flash algos, will be searched for in the project directory if they are specified as a relative path.

Boards and targets

  • Added STM32F429xI.

Changes

  • The objects in the pyOCD object graph are now linked to form a generic object graph, in addition to the explicit references that already exist. This is intended to make it easier to find objects as the graph gets much more complex with support for SWO and other CoreSight components.
  • The path to an .FLM style flash algorithm can be set on a FlashRegion via the flm property. pyOCD will then load the flash algorithm for you. Very useful for user scripts.
  • Renamed the flash_algo property of FlashRegion to just algo and made it and flash_class settable. This is all to make it easy to set or modify the flash algo in user scripts and delegates.
  • Renamed SESSION_OPTIONS.md documentation file to CONFIGURATION.md since it covers all configuration topics and not just a list of options.
  • Added ULINKplus to example udev rules.

Fixes

  • Fixed a typo in the code to build a flash algo from an .FLM file, which caused STM32 CMSIS-Pack targets to not be able to program flash.
  • Corrected a performance issue for Python 3 on Windows and Linux. The pywinusb and pyusb backends for CMSIS-DAP were not yielding to other threads while waiting for data. (Thanks Cypress!)
  • Improved detection of post-reset state for RTX5.
  • Reduced warning messages related to USB device permissions issues on Linux through improved filtering for CMSIS-DAP devices.
  • A few strings were not being properly formatted with '%'. (Thanks @mbolivar!)
  • Added catch for unknown directory when parsing ELF symbols.