Skip to content

v0.21.0

Compare
Choose a tag to compare
@flit flit released this 24 May 21:11
a17145c

New features

  • STLinkV3 support.
  • Adding and removing of breakpoints is optimized. The breakpoint manager keep track of requested breakpoints, and only modifies the FPB/BPU immediately before a resume or step. This is useful because gdb likes to remove all breakpoints, then re-add them each time it runs the target.
  • Support for configuring log output. See the new configuring logging documentation for details.
  • The pyocd list command gained some arguments to filter the output.

Boards and targets

  • Added some additional NXP board IDs.
  • Addressed some issues with Arm Musca-A1 and Musca-B1 support.

Changes

  • More helpful warning if the generic "cortex_m" target type is selected.
  • Logging of exception tracebacks can be controlled with the "debug.traceback" user option. Eventually this will default to false.
  • Removed "soft_bkpt_as_hard" user option. This was from long ago, before pyOCD even supported soft breakpoints, and is no longer useful.
  • Normalised the use of loggers, so each Python module has its own logger with the name of the module.
  • The debug probe's firmware version is logged via a debug log message if known.
  • A better error is reported if a CMSIS-Pack is not a valid zip file.
  • More helpful error message if an unknown target type is specified.

Fixes

  • Workaround for .FLM flash algorithms that have a page size larger than the sector size. In particular, this fixes the Keil flash algorithms for STM32L072 and L073.
  • Fixed user option priorities and value parsing to work as one would expect. This is documented in the configuration documentation.
  • Fixed built-in STM32L475 flash algorithm.
  • Fixed some issues in the FlashBuilder class related to filling gaps in pages with no data to program.
  • Fixed Flash.program_phrase().
  • Fixed the CortexM.available_breakpoint_count property.

Documentation

Python API

  • Added some new exception classes, tied a few outstanding exception classes into the pyOCD exception hierarchy, and made sure the appropriate exceptions are being raised for errors.
  • New OptionsManager class that handles user options for a session.
  • Sorted out some issues in the architecture of the DebugContext class.
  • A Session is now automatically opened when used as a context manager. This can be disabled by setting the auto_open parameter of the constructor to False. Conversely, ConnectHelper.session_with_chosen_probe() no longer opens the session for you (but if used in a with statement, the session will still be opened).
  • Removed deprecated parameters from ConnectHelper.session_with_chosen_probe().
  • Session is the sole notifier for target-related notifications.
  • Added support for notifications on changes to user options. In this case, the OptionsManager is the notifier. For instance, to subscribe: my_session.options.subscribe(my_cb, "auto_unlock").
  • Removed root_target attribute from Target.

Testing

  • Added a basic unit test for CMSIS-Pack loading. However, it is currently disabled because it fails when run under Travis-CI.
  • New unit test for the notification API.
  • New unit test for the OptionsManager class.