v0.32.0
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
loadsubcommand is an alias offlash, and is now the default name for that subcommand. - The
load(andflash) 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:
--coreand--haltarguments. - Cortex-M: when using the default
cortex_mtarget 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-mis now equivalent tocortex_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.APB1FZR2andDBGMCU.APB2FZRregisters. - 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.
loadsubcommand: 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-remoteargument.
Python API
MemoryMapnow adheres to the Sequence ABC.MemoryRegion.clone_with_changes()added.DebugPort.disconnect()added.FlashLoaderclass renamed toMemoryLoaderto reflect RAM loading support. The old name is still available as an alias, but is deprecated.Timeoutclass addsstart()andclear()methods.
Thanks to all contributors, supporters, and users! ❤️