Skip to content

Releases: pyocd/pyOCD

v0.38.0-pre0

30 Jul 06:58
bd673c1
Compare
Choose a tag to compare
v0.38.0-pre0 Pre-release
Pre-release

Improvements

  • Add CoreSight AP specific CSW handling for AHB-AP, AXI-AP, APB-AP
  • Add more debug logging information for cbuild-run targets
  • Add support for SW breakpoints when cache is present
  • Cortex-M: configure AP for cacheable access when cache is present
  • Flash algorithms: relax memory layout rules and add RAM alignment and minimum stack size checking

Fixes

  • CMSIS-DAP probe: fix macOS HID read/write
  • cbuild-run: use cbuild-run.yml parent folder as working directory for relative paths
  • Flash region builder: remove flash algorithm page size adjustment
  • Docs: fix remove_breakpoint call in elf API example (@laurensmiers)

New Contributors

Full Changelog: v0.37.0...v0.38.0-pre0

v0.37.0

04 Jul 07:59
8925666
Compare
Choose a tag to compare

v0.37.0 on PyPI

Important note

With this release, Python 3.7 is no longer supported. The minimum Python version is now 3.8.0.

Improvements

  • CMSIS-Toolbox Run and Debug Management integration:
    • add a --cbuild-run option across subcommands
    • select target based on cbuild-run
    • debugger-clock setting from cbuild-run
    • default memory map
    • primary-core and GDB server port selection based on cbuild-run
  • GDB server:
    • add option for stetting soft breakpoints as hard
    • add option for resetting and running the target without halting
    • stricter qC command handling (@tlyu)
  • Coresight:
    • add apid handling
    • add AP CSW register SPROT bit handling
    • fix offset for APv2 in discovery step
  • Loader: generate reset when loading to RAM
  • RTOS: add hint for Zephyr’s thread info configuration
  • RTT: allow no down-channels (@laurensmiers)
  • Debug sequence: increase robustness
  • Memory map: add pname based filtering
  • Probe: filter out Cypress KitProg3 bridge

Fixes

  • Fix progress bar reprinting the same value when no progress is made
  • Typing: fix typing of chip_erase from bool to str (@NilsIrl)
  • pytest: use assert_not_called instead of not_called
  • target: disable reads of erased sectors if Verify function is provided in the algorithm
  • flash:
    • disable builder double buffering by default
    • write XPSR register on init on Cortex-M devices

Targets

  • Add MPS2 AN521 target
  • Add Ambiq Apollo3 target and NM180410 board (@joshua-nmi)
  • Add RP2350 target (@konkers)
  • Add nRF54L15 target (@maxd-nordic)
  • Add STM32H750 target (@nattgris)
  • Add HC32F115/155/334/467/472 targets (@wuze)
  • Update HC32F448/45x/460/4A0(2) targets (@wuze)
  • Fix sector size and RDP check on STM32H743 and H723 (@nattgris)

Other

  • Docs:
    • fix incorrect documentation for default GDB server port (@FredeHoey)
    • document cbuild-run support
    • enhance load subcommand guidance
  • CI:
    • drop Python 3.7 and add 3.12 and 3.13
    • update upload-artifact following deprecation
    • update CodeQL workflow
    • add workflow for generating standalone binaries using PyInstaller
  • Session: add missing return in UserScriptFunctionProxy
  • Optional use of libusb-package with fallback to pyusb (@dvzrv)

New Contributors

Full Changelog: v0.36.0...v0.37.0

v0.36.0

08 Oct 19:54
975fe95
Compare
Choose a tag to compare

v0.36.0 on PyPI

Improvements

  • Allow FlashBuilder to work when program page size is larger than sector erase size (@BrianPugh)
  • Very basic implementation to get a "connect" LED status display (@rgrr)
  • Add Trace Funnel Coresight component (@rapgenic)
  • Cortex-M CPU type detection improvements
  • Debug sequences: support pname on DebugPort* sequences

Targets

  • Add MAX32666FTHR board (@ozersa)
  • Add STMicro STM32 H743 and H723 targets (@unsanded)
  • nRF91 family improvements (@maxd-nordic)
  • Add HDSC HC32F448 hc32a460xe and hc32a4a0xi. (@lennvn)
  • Add airm2m air001 target (@kaidegit)
  • Add airm2m air32f103 target (@HalfSweet)
  • Add STMicro STM32H7B0 Target (@BrianPugh)
  • Add NXP S32K344 target (@PetervdPerk-NXP)
  • Add Realtek RTL8762C (@suphammer)
  • Add some missing ST and NXP board IDs
  • Fix HC32l130 32k+ flash error (@kaidegit)
  • Fix HC32L13x size and enable double buffering (@kaidegit)
  • Infineon PSoC6: remove unnecessary sleep during reset (@te-johan)
  • Remove part number match for NXP MIMXRTxxxx series family

Fixes

  • RTT: fix CB not found (@tdasika)
  • CMSIS-DAP: Windows performance regression fix
  • Debug sequences: fix assignment expressions.
  • flash: fix some type errors, sort imports
  • Removed extraneous space character in the default cortex_m target warning message (@BenjaminSoelberg)
  • Flash loader: fix missing import of RamRegion
  • coresight: adiv5 discovery: increment invalid AP count on exception
  • cortex-m: reset_halt: just warn about invalid T-bit, don't automatically fix
  • commands: reset: fall back to reset via probe if context has no selected core
  • Only create one session to access options when there's no current session, to reduce debug log message output.

Miscellaneous

  • docs: fix example (@liux-pro)
  • Update copyright section for Maxim (@ozersa)
  • probe: cmsis-dap: use test binary from builtin board data for v2.1 based board info
  • Use annotations future in several source files
  • Update built-in targets and commands documentation

❤️ Special thanks to new contributors!

Full Changelog: v0.35.1...v0.36.0

v0.35.1

17 May 20:37
v0.35.1
1a61989
Compare
Choose a tag to compare

v0.35.1 on PyPI

Fixes

  • debug sequences: support [uU] suffix on integer literals
  • commands: show accessible-pins: fix function call, print GPIO pins
  • commands: show locked: fix misspelled "target"
  • coresight: dap: revert API change to add DebugPort param to DPConnector constructor (in particular, this broke the NXP SPSDK tool's pyOCD support)
  • manifest: add sequences.lark
  • code quality: do not use bare exception handler (thanks @jsiverskog)

Full Changelog: v0.35.0...v0.35.1

v0.35.0

07 May 21:11
v0.35.0
1990a3d
Compare
Choose a tag to compare

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

v0.34.3

30 Nov 17:25
v0.34.3
31df059
Compare
Choose a tag to compare

v0.34.3 on PyPI

Fixes

  • STLink: Fix 1-byte transfers (for real this time… 😅) (thanks @fkjagodzinski!)

Targets

  • Maxim MAX32660: align second double buffer to size of one sector (thanks @ttt-t3r!)

Full Changelog: v0.34.2...v0.34.3

v0.34.2

23 Oct 21:43
v0.34.2
2ad5fd0
Compare
Choose a tag to compare

v0.34.2 on PyPI

Fixes

  • Cortex-M: Fix emulated reset and halt.
  • NXP LPC55xx: Correct family regex for using family class with LPC55xx CMSIS-Packs.
  • NXP LPC800, LPC824: Do not set SP and PC in reset_and_halt(). (Thanks @Hoohaha)
  • CMSIS-Pack: Use PDSC-relative path for resource files, fixes #1460 (Thanks @imi415)
  • Options: Correct name of enable_multicore_debug in option definitions. (Thanks @YixingShen)
  • Commands: fix typo in rmwatch. (Thanks @kkitayam)
  • CMSIS-DAP: Fix index error processing reply to DapJtagSequence with read_tdo=0. (Thanks @kkitayam)
  • CoreSight DAP: Fix JTAG initialization sequence for CMSIS-DAP. (Thanks @kkitayam)
  • Nordic nRF52: Ensure core discovery after mass erase on locked targets. (Thanks @brathis)

Full Changelog: v0.34.1...v0.34.2

v0.34.1

06 Jul 19:46
v0.34.1
9da9ec0
Compare
Choose a tag to compare

v0.34.1 on PyPI

Fixes

  • Options: Fix session option parsing for multi-type options (Thanks @svenuniku)
  • load subcommand: Correctly handle valid paths containing '@' characters. (Issue #1424.)
  • SWV: Fix error checking for a valid TPIU. This only affected systems where the TPIU could not be found. (One of the issues in #1368.)
  • gdbserver: Correct an exception caused by another handling another exception. (Issue #1387.)
  • gdbserver: Cleanly handle some corner cases of the qXfer commands.
  • gdbserver: Explicit check for read features annex being 'target.xml', and that the annex is empty for other objects. (Issue #1387.)
  • STLink: Fix broken non-word-aligned 8-bit transfers. (Fixes #1409.)
  • Boards: Correct the default target type for the MIMXRT1160-EVK board. (Fixes #1411.)
  • Packaging: Fix signed commit parse issue in setuptools_scm by requiring a newer version. (Fixes #1400.)
  • Packaging: Update the .gitarchival.txt template to support the built-in git archive support in setuptools_scm.
  • DFP: Address a failure to use DFP-based target types with a dash (or other non-alphanumeric characters) in their name.

Full Changelog: v0.34.0...v0.34.1

v0.34.0

30 May 22:39
v0.34.0
800abc3
Compare
Choose a tag to compare

v0.34.0 on PyPI

Additions

  • Probes: Vega VT-LinkII probe support (Thanks @Entropy98)
  • Cortex-M: Arm China Star-MC1 processor support
  • Cortex-M: Add Cortex-M85 CoreSight IDs
  • Commands: rmwatch optionally accepts type and size.
  • STLink: hnonsec and hprot support.
  • CMSIS-DAP: Support v2.1 target and board name support.
  • Flash: Add a stack canary to tell if the flash algorithm overflows its stack.

Boards and targets

  • Maxim: Add MAX32670EVKIT board and max32670 target. (Thanks @ozersa)
  • Nuvoton: Add support for NuMaker-IoT-M467 board and m467hjhae target. (Thanks @ychsu-tf)
  • HDSC: Added new targets for HC32F451 and HC32F452. Added hc32m120x6 target. (Thanks @lennvn)
  • NXP LPC55xx: Fix reset halt corner cases with forced halt.
  • HDSC target family notes in docs (Thanks @jeffreyabecker)

Changes and fixes

  • CoreSight: Fix GenericMemAPTarget issues.
  • CoreSight: ST DBGMCU component ID, log designer name.
  • list subcommand: set default log level to error
  • reset subcommand: Fix hardware reset, halt option, and session option integration.
  • rtt subcommand: improve performance for finding control block. (Thanks @te-johan)
  • Commands: Fix set option command.
  • Commands: Add -n arg for find command.
  • Zephyr RTOS: Interpret thread priority as signed 8-bit integer.
  • CMSIS-DAP: Fix search for devices without UID (Thanks @martjoly)
  • CMSIS-DAP: Consistent USB timeouts.
  • Cortex-M: Add some missing CoreSight IDs for Cortex-M55.
  • Cortex-M: Correct some connect and disconnect issues.
  • Cortex-M: Fix a regression where the core would always be resumed on connect in some cases.
  • SWV: Handle lack of ITM or TPIU.
  • Flash: Init flash algo with default reset type instead of always using software reset.
  • Flash: Clean up confusing log messages related to mass erase.
  • Flash: Increase FLM stack size, stack canary and halt checks, generator script improvements
  • Flash: Fix issues when overriding a flash region's algo with an FLM.
  • Log messages: normalise error log messages to start with "Error:".
  • CMSIS-Pack: Support "Dname" attribute for variants.
  • User scripts: Add missing MemoryLoader to Python namespace.

Packaging

  • Make pyocd-pemicro dependency optional. It can be installed simultaneous with pyocd by using the pemicro extra, e.g. pip install pyocd[pemicro]. This resolves crashes in PowerShell on exit of pyocd.
  • Remove elapsedtimer dependency.

Full Changelog: v0.33.1...v0.34.0

v0.33.1

07 Feb 19:36
v0.33.1
6a6fa28
Compare
Choose a tag to compare

v0.33.1 on PyPI

Fixes

  • Zephyr RTOS: Fix reading thread name and update debug symbol names. (Thanks @MaureenHelm)
  • STLink: Fix USB timeout errors when listing or connecting to very recent versions of STLinkV2 firmware by correcting the read size for the JTAG_GET_BOARD_IDENTIFIERS command.

Full Changelog: v0.33.0...v0.33.1