Skip to content

v0.32.0

Compare
Choose a tag to compare
@flit flit released this 07 Sep 21:52
· 428 commits to main since this release
v0.32.0
2c4fad7

v0.32.0 on PyPI

Additions

  • Firmware images and data will be loaded to RAM regions in addition to existing flash programming, using the same programming methods as before.
  • The new load subcommand is an alias of flash, and is now the default name for that subcommand.
  • The load (and flash) subcommand will program multiple files passed on the command line. Binary files can have a @<address> suffix added to the file name to supply the base address at which they should be programmed.
  • Flash operations now have individual timeouts controllable with session options.
  • Reset: If performing a reset of any type causes the connection to the target's debug interface to be lost, pyocd will automatically reconnect.
  • Reset subcommand: --core and --halt arguments.
  • Cortex-M: when using the default cortex_m target type, the Cortex-M architectural memory map is supplied instead of having an empty memory map.
  • Config: Dashes are converted to underscores in the target type name, thus cortex-m is now equivalent to cortex_m.
  • CMSIS-DAP: support for reading the debug probe firmware version with CMSIS-DAP v2.1. The firmware version is output at the debug log level.
  • STLink-V3: add new USB product IDs.
  • CoreSight: the product name is logged when listing CoreSight components during discovery.
  • gdbserver: add 'init' monitor command, which is ignored and exists solely for OpenOCD compatibility to prevent a warning.
  • Config: The effective target type is saved back into into session options. This mostly affects on-board debug probes that know their target.
  • Packaging: transitioned to PEP517 style packaging.
  • Flash: programming progress bar widened.

Targets

  • STM32L475: fix address of DBGMCU.APB1FZR2 and DBGMCU.APB2FZR registers.
  • Musca-B1, Musca-S1: enable SYSRESETREQ from both cores.

Fixes

  • Resolve an issue where running pyocd in the background from the shell, i.e. by the & operator, would cause a hang.
  • CMSIS Packs: use RAM addresses specified in algorithm elements. This fixes a programming on a few devices, including the Nordic nRF5340.
  • Commander: fix printing of D core register values.
  • Commander: fix Python expression output formatting for int and str values.
  • CMSIS Packs: make flash region names unique when splitting by sector size.
  • load subcommand: tildes in file name paths are resolved.
  • Subcommands: fix and improve command line argument usage text.
  • Memory map: names of memory regions are made unique if necessary.
  • Cortex-M: add a few checks to hopefully prevent an exception seen once when listing IRQ names.
  • Flash: correct arguments passed to flash exceptions.
  • CoreSight: only identify unknown APs as MEM-APs if the designer is Arm. This prevents some proprietary APs as being incorrectly reported as a MEM-AP.
  • CMSIS-DAP: send only concrete SWD/JTAG port for connect, so that the "default" port type is never requested. This fixes connect for some versions of Microchip EDBG.

Documentation

  • Correct remote probe access documentation regarding remote access to the server and the --allow-remote argument.

Python API

  • MemoryMap now adheres to the Sequence ABC.
  • MemoryRegion.clone_with_changes() added.
  • DebugPort.disconnect() added.
  • FlashLoader class renamed to MemoryLoader to reflect RAM loading support. The old name is still available as an alias, but is deprecated.
  • Timeout class adds start() and clear() methods.

Thanks to all contributors, supporters, and users! ❤️