Skip to content

v0.35.0

Compare
Choose a tag to compare
@flit flit released this 07 May 21:11
· 70 commits to main since this release
v0.35.0
1990a3d

pyocd v0.35.0 on PyPI

Important note

With this release, Python 3.6 is no longer supported. The minimum Python version is now 3.7.0.

Features

  • cmsis-packs: debug sequence support; see the documentation for details
  • rtt: add RTT support to gdbserver via the addition of an rtt command (thanks @samueldewan)
  • rtt: add logging function to rtt sub-command (thanks @zjli-2019)
  • coresight: cortex-m: 'primary_core' option
  • subcommands: Python tracebacks are no longer printed unless debug logging is enabled (the debug.traceback option is disabled by default)
  • object graph nodes have names now, accessible with the .node_name attribute
    • board and SoC nodes have default names of "board" and "soc"
    • CPUs will have a default (uniquified) name of the CPU type, or a custom name specified in a DFP
    • these names are visible in some of the commands such as show cores or show graph, and can be used in commands such as core (to select the core that commands apply to)
  • memory map: memory regions can have subregions; this is used for flash memory regions to explicitly support multiple sector sizes and/or flash algorithms
  • target: added generic sw_system and sw_core reset types (aliased as system and core, with Target.ResetType.SW_SYSTEM and Target.ResetType.SW_CORE enums in the API), corresponding to the existing sysresetreq and vectreset reset types
  • target: .supported_reset_types property returns a list of allowed reset type enums
  • flash: add --no-reset option to prevent resetting of device after programming (thanks @nordicjm)
  • flash: memory regions are now created when a DFP specifies an algorithm without also defining a corresponding memory region, as long as that algorithm is marked as default
  • core: cache.enable_memory and cache.enable_register session options to control the memory and register cache used by the gdb server
  • commands: add show sequences command
  • commands: add reset-type value to show and set current reset type and view available reset types
  • commands: new sleep command
  • commands: add pins and accessible-pins values
  • api: debug probe pins API

Targets

  • target: add YTMicro device support (thanks @majorlin)
  • target: builtin support for LPC55S16 (thanks @imi415)
  • target name: fix DISCO-H745I target name to stm32h745xihx (thanks @mbrossard)
  • family: add nRF91 family that works with the nrf9160_xxaa target from the NordicSemiconductor.nRF_DeviceFamilyPack DFP (not a builtin target) (thanks @maxd-nordic)
  • family: update Nordic nRF52 approtect handling (thanks @maxd-nordic)
  • family: no longer use the builtin NXP LPC55xx family class for DFP-based LPC55xx targets, since there is a conflict with the debug sequences contained within those DFPs

Changes

  • packs: expanded folder support, tilde expanding, exception and other small improvements
  • rtt: refactor RTT (thanks @samueldewan)
  • commander: use logger for session open errors
  • semihosting: use POSIX stdio fd numbers (thanks @rgrr)
  • semihosting: transparent io (thanks @rgrr)
  • semihosting: SYS_GET_CMDLINE, feature bits, tilde expansion, type fixes
  • cortex-m: only clear DEMCR and invoke stop_core_debug delegate if resuming core on disconnect
  • coresight: component ids: STM 0x962 with archid=0, CS-400 Replicator 0x909, CS-400 HTM, more
  • coresight: cortex_m: improve debug log for inability to resume core
  • memory map: memory region attributes can be changed after a region is created, making it easier to modify regions in a user script
  • flash: many improvements and fixes to how flash memory regions are created for DFP based targets
  • flash: place algo at end of RAM with stack going all the way to RAM start
  • commands: show map: print memory map subregions
  • commands: show cores: print cores in a table with the core name
  • commands: show graph: print node names
  • commands: core: print core names, allow selecting core by name
  • dependency: migrate away from deprecated pkg_resources to importlib
  • dependency: bump minimum cmsis-pack-manager version to 0.5.2
  • dependencies: bump pylink-square to minimum v1.0 (thanks @avi-jois)
  • setup.cfg: add Python 3.11 to classifiers

Fixes

  • probe: accept WCH-Link as DAPv1 (thanks @eugene-bright)
  • probe: cmsis-dap: add "CMSIS_DAP" to known device strings
  • probe: stlink: cache board IDs to improve connect time
  • semihosting: ensure directories exist before opening a file (thanks @Hoohaha)
  • RTOS: Catch TransferErrors during kernel state checks (thanks @imi415)
  • flash: catch exceptions while fetching state (thanks @maxd-nordic)
  • coresight: discovery: continue after an AP probe failure occurs
  • core: soc_target: options to control memory and register cache enablement
  • trace: minor trace logging improvements
  • commands: reinit: set exec context attrs to defaults

Other

  • udev: add rule for STM32F103C8T6_CMSIS-DAP_SWOC CMSIS-DAP probe (thanks @kholia)
  • workflows: basic_test: add python 3.11 to matrix
  • workflow: basic_test_skipped: add matching matrix to basic_test so the job names are the same
  • test: unit: test_semihosting: comment out tests using telnetlib
  • docs: enhance API examples (thanks @rgrr)
  • docs: added Open-CMSIS-Pack support documentation
  • docs: updated targets and commands reference
  • docs: remove seriously outdated how_to_build.md
  • type annotation fixes and additions

New Contributors

Full Changelog: v0.34.3...v0.35.0