v0.35.0
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
orshow graph
, and can be used in commands such ascore
(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
andsw_core
reset types (aliased assystem
andcore
, withTarget.ResetType.SW_SYSTEM
andTarget.ResetType.SW_CORE
enums in the API), corresponding to the existingsysresetreq
andvectreset
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
andcache.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
andaccessible-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 #1503
- @eugene-bright made their first contribution in #1399
- @imi415 made their first contribution in #1435
- @majorlin made their first contribution in #1255
- @maxd-nordic made their first contribution in #1505
- @nordicjm made their first contribution in #1492
- @samueldewan made their first contribution in #1443
- @fkjagodzinski made their first contribution in #1476
- @rgrr made their first contribution in #1517
- @kholia made their first contribution in #1509
- @zjli-2019 made their first contribution in #1527
Full Changelog: v0.34.3...v0.35.0