Releases: pyocd/pyOCD
Releases · pyocd/pyOCD
Release list
v0.45.1
Fixes
- Flash programming:
- Support flash algorithms with an explicitly defined RAM range outside the target memory map
Full Changelog: v0.45.0...v0.45.1
v0.45.0
Important note
With this release, support for Python 3.14 is enabled and Python 3.8 is no longer supported. The minimum Python version is now 3.9.0.
New Features
- Debug sequences:
- Introduce support for
FlashEraseSetupandFlashProgramSetupsequences used by flashinfo based regions - Add support for
RunPythonScriptfunction for running Python scripts from debug sequences - Fall back to an FLM algorithm when flash programming debug sequences are not provided by a CMSIS-Pack
- Add
TraceCaptureandTraceFlushsequence hooks, along with__traceclockinand__traceclockoutdebug access variables
- Introduce support for
- RTT:
- Enable file-based input and output for RTT channels, supporting automated test output capture and scripted target input
- SWV:
- Enable saving the raw SWV trace stream directly to a file
Improvements
- CoreSight:
- Attach discovered non-core components to the target, making them available to target-specific integrations
- Add support for filtering the components based on their properties
- J-Link:
- Improve J-Link compatibility with newer J-Link DLL releases (@dottspina)
Changes
- Standard I/O:
- Replace the
telnet_*session option names withstdio_*, reflecting that standard I/O is not limited to Telnet transport - Continue to accept legacy
telnet_*option names as aliases
- Replace the
- SWV:
- Move SWV trace management to the device layer for consistent behavior across subcommands
- Limit SWV console output to ITM Channel 0
- Flash programming:
- Improve smart flash reliability by updating flash page states after erase operations
Fixes
- CMSIS-DAP:
- Fix matching CMSIS-DAP probes that report an empty serial number
- Flash programming:
- Suppress disconnect errors while closing a session after programming
- Fix flashinfo subregion bounds when it covers more than one defined memory region
- Command line:
- Fix the
n_srstreset-type mapping
- Fix the
- RTT:
- Fix target memory access for RTT up-channels
Other
- CI:
- Drop Python 3.8 and add support for Python 3.14
- Update workflow dependencies
New Contributors
- @dottspina made their first contribution in #1927
Full Changelog: v0.44.1...v0.45.0
v0.44.1
Improvements
- Flash programming:
- Improve robustness of load subcommand post reset handling
- CMSIS-Toolbox Run and Debug Management integration:
- Avoid registering unknown access port IDs as processors
- Debug sequences:
- Improve ResetSystem debug sequence robustness by adding a short delay before checking the core state after reset
- Prefix variables of internal default sequences with double underscores to reduce the chance of name collisions with user sequences
Changes
- Cortex M:
- Do not implicitly attempt to resume a core after reset
Fixes
- RTT:
- Fix control block searching and detection (@elfmimi)
Other
- CI: Allow target branch selection for manual nightly build dispatches
Full Changelog: v0.44.0...v0.44.1
v0.44.0
New Features
- Debug sequences:
- Use default debug sequences as defined in the Open-CMSIS-Pack specification
- Support debug sequences for hardware reset:
ResetHardwareAssertandResetHardwareDeassert - Support debug sequences for flash programming:
FlashInit,FlashUninit,FlashEraseChip,FlashEraseSector,FlashEraseDone,FlashProgramPage,FlashProgramDone, andDebugCodeMemRemap
runsubcommand:- Add SystemView Server mode to support SEGGER's SystemView Recorder via IP (TCP/IP connection)
Improvements
- RTT:
- Improve robustness and tolerate unexpected target halts
- More flexible configuration
- Increase transfer speed
- Improve log messages
- SystemView:
- Improve log messages
Changes
- Flash programming:
- Split flash programming into separate erase and program operations
- RTT Configuration:
- Rename channel mode
telnettoserver
- Rename channel mode
Fixes
- GDB Server:
- Fix thread information on subsequent client connection
- Debug sequences:
- Support inline control flow statements (
if,while) - Fix predefined debug access variable contents for
__protocoland__connection
- Support inline control flow statements (
- Cortex-M:
- Restrict PACBTI and PMU extension detection to Armv8.1-M targets
- CoreSight:
- Restore CSW value after pre-discovery
Targets
- Add nRF54LM20A target (@StarSphere-1024)
Full Changelog: v0.43.1...v0.44.0
v0.43.1
Fixes
- RTT: Fix control block detection via
_SEGGER_RTTsymbol on single-core devices when the control block configuration is not specified.
Full Changelog: v0.43.0...v0.43.1
v0.43.0
New Features
runsubcommand:- Add support for SEGGER's RTT and SystemView (configured via
*.cbuild-run.yml) - Support per-channel RTT configuration with the following modes:
- Standard I/O: All data received from the target on this channel will be printed to the
sdtout, and all user input from thestdinwill be sent to the target - Telnet: A Telnet server is started on the specified port, creating a bridge between the TCP connection and the corresponding RTT channel
- SystemView: Capture the trace data from the specified RTT channel and save it to a user-defined file
- Standard I/O: All data received from the target on this channel will be printed to the
- SystemView integration:
- Support for automatic start and stop command handling
- Captured trace data (
*.SVDatfile) can be directly opened using SEGGER's SystemView analysis tool
- Add support for SEGGER's RTT and SystemView (configured via
Improvements
- Flash programming:
- Re-enable double buffering mechanism for internal targets, except STM32H7xx (known to have issues)
- Migrate all internal target support to use
page_buffersinstead ofbegin_datain flash algorithms - Remove
begin_datafrom the algorithm template
- GDB Server:
- Improve log message when client gets disconnected from the server
- Standard I/O:
- Enable non-blocking read of the STDIO console
- CMSIS-DAP v2:
- Send ZLP instead of a dummy byte to terminate OUT transfer
- CoreSight:
- Always unlock ITM (do not check SLI and SLK bits in LSR register)
Cortex-M7 (AT610) and Cortex-M7 with FPU (AT611) Software Developer Errata Notice
513195: Lock Status Indication incorrectly reads as one
Fixes
- Flash programming:
- Fix LPC4088 flash algorithm
page_size
- Fix LPC4088 flash algorithm
- CMSIS-Packs:
- Fix raised exception on
filenameproperty access when using extracted packs (@timll-mchp)
- Fix raised exception on
- RTT:
- Fix retrieval of available/free bytes for up/down channels
- Fix
control-blocknot found when the first character of thecontrol-block IDwas not present in the read memory (@HaoYDai)
Other
- CI: add nightly workflow that builds PyInstaller artifacts from the
developbranch
New Contributors
- @MiloradCvjetkovic made their first contribution in #1882
- @timll-mchp made their first contribution in #1901
- @HaoYDai made their first contribution in #1730
Full Changelog: v0.42.0...v0.43.0
v0.42.0
New Features
runsubcommand:- Introduce a new
runsubcommand capable of running targets until a time limit or EOT (suited for CI/CD workflows) - Supports semihosting console output/input and SWV output
- Introduce a new
Improvements
- Standard I/O routing:
- Add new abstraction layer to unify STDIO routing for each core
- Routing support for
console,telnet,fileandoff
Note: Currently only output is supported
- CMSIS-Toolbox Run and Debug Management integration:
- Add configuration layer in session options, which sits below command line arguments
- Disable
*.cbuild-run.ymlprocessing if thetarget_overrideoption is set - Improve port assignment logic for multi-core GDBServer and telnet configurations
- Add processing for
connectmode configuration - Add processing for
pre-resetandpost-resetoptions inload-setupconfiguration - Improve error messages for missing or invalid
*.cbuild-run.ymlfile - Improve checking for required files
- Raise a warning instead of an error for missing SVD files
- Load SVD files only when available and when used by the subcommand
- Flash programming:
- Add new session options for configuring
pre-resetandpost-resettype inloadsubcommand - Relax flash algorithm requirement to require only RO section
- Add new session options for configuring
- RTOS:
- Update Zephyr thread state definitions to match modern versions (@mathieuchopstm)
- CoreSight and Cortex-M:
- Add support for Cortex-M52 and Star-MC3 based devices (@Liu-Gu)
- Skip adding cores not described in the debug topology while retaining direct AP access
Fixes
- Cortex-M:
- Fix incorrect reset type used in the fallback mechanism when the requested DebugSequence doesn't exist
- CMSIS-DAP:
- Fix HID report sizing logic across platforms
- CMSIS-Packs:
- Correct path normalization inside pack archives to support
..in file paths (@xoriath)
- Correct path normalization inside pack archives to support
Other
- Minor documentation updates related to session option usage
New Contributors
- @Liu-Gu made their first contribution in #1852
- @mathieuchopstm made their first contribution in #1823
- @xoriath made their first contribution in #1867
Full Changelog: v0.41.0...v0.42.0
v0.41.0
Improvements
- Probe:
- Enable STLINK-V3PWR probe
Fixes
- GDB Server:
- Fix RTOS support for Zephyr (thread detection)
- CMSIS-DAP:
- Improve robustness of HID read thread
Full Changelog: v0.40.0...v0.41.0
v0.40.0
Improvements
- GDB Server:
- Add support for multiple concurrent GDB client connections to the same GDB server
- Improve logging with support for multiple concurrent GDB clients
- Report correct target architecture and align registers with GDB feature names
- Cortex-M:
- Add missing secure/non-secure core registers (CONTROL, FAULTMASK, BASEPRI, and PRIMASK)
- Reset Management:
- Update ResetType API for clearer reset handling
- Remove reset fallback mechanism for CMSIS-Pack based targets to prevent unintended behavior
- Support custom reset sequence execution defined in CMSIS-Pack
- Refine debug sequence error handling and breakpoint management across resets
- Load (Flashing):
- Remove implicit resets between loading multiple application files
- Set Reset Catch on all cores when performing primary-core reset before flashing
- Perform a hardware reset (nSRST) after flashing to ensure a clean post-load state
- CMSIS-Toolbox Run and Debug Management integration:
- Add CMSIS-Pack related commands to
commanderinterface
- Add CMSIS-Pack related commands to
Fixes
- ST-Link: correct reported length on memory read/write failures
- JLink: block unsupported memory access commands
- CMSIS-DAP: fix
jtag_sequencereturning no data (@NorbertHipfl) - SWO: correct thread exit flag handling in the SWO read thread (@crypto-lars)
- Fix caching of banked SP registers to prevent stale values
- Fix memory region filtering for multi-core targets
- RTOS: handling for banked PSP registers
- RTX5:
- Fix incorrect thread priority offset
- Relax requirement for target in halted state in RTOS operations
Other
- Remove dependency on
sixpackage (@a-detiste) - CI: remove deprecated GitHub Actions command (@CubikingChill)
- Update Capstone disassembly engine to version 5 (@Hoohaha)
New Contributors
- @NorbertHipfl made their first contribution in #1820
- @crypto-lars made their first contribution in #1824
- @CubikingChill made their first contribution in #1834
Full Changelog: v0.39.0...v0.40.0
v0.39.0
Improvements
- CMSIS-Toolbox Run and Debug Management integration:
- Set debugger protocol based on information from
*.cbuild-run.ymlfile - Set output file type based on information from
*.cbuild-run.ymlfile - Raise critical error if
*.cbuild-run.ymlfile path is invalid - Show warning when packs required by
*.cbuild-run.ymlfile are missing
- Set debugger protocol based on information from
- CMSIS-DAP:
- Improve TransferError Exception messages to be more descriptive
- Increase number of transfer retries after WAIT response
- Probe: more reliable probe detection when probe is connected after pyOCD is started
- CI: Append version information to release build artifacts
Fixes
- CMSIS-DAP probe: fix support for USB HID probes which don't have a serial number
- Semihosting: fix read when no data is available
Full Changelog: v0.38.0...v0.39.0