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](https://pyocd.io/docs/open_cmsis_pack_support.html) 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
* avi-jois made their first contribution in https://github.com/pyocd/pyOCD/pull/1503
* eugene-bright made their first contribution in https://github.com/pyocd/pyOCD/pull/1399
* imi415 made their first contribution in https://github.com/pyocd/pyOCD/pull/1435
* majorlin made their first contribution in https://github.com/pyocd/pyOCD/pull/1255
* maxd-nordic made their first contribution in https://github.com/pyocd/pyOCD/pull/1505
* nordicjm made their first contribution in https://github.com/pyocd/pyOCD/pull/1492
* samueldewan made their first contribution in https://github.com/pyocd/pyOCD/pull/1443
* fkjagodzinski made their first contribution in https://github.com/pyocd/pyOCD/pull/1476
* rgrr made their first contribution in https://github.com/pyocd/pyOCD/pull/1517
* kholia made their first contribution in https://github.com/pyocd/pyOCD/pull/1509
* zjli-2019 made their first contribution in https://github.com/pyocd/pyOCD/pull/1527
**Full Changelog**: https://github.com/pyocd/pyOCD/compare/v0.34.3...v0.35.0