Skip to content

Commit a3e44be

Browse files
authored
posts: add pyOCD v0.43.0 release notes (#4)
1 parent 7be1195 commit a3e44be

2 files changed

Lines changed: 95 additions & 1 deletion

File tree

_includes/footer.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<div class="row row-cols-1 row-cols-sm-2 row-cols-md-4 pt-4">
33
<div class="col-3">
44
<p class="small">
5-
Copyright &copy; 2021-2025 PyOCD Authors.
5+
Copyright &copy; 2021-2026 PyOCD Authors.
66
</p>
77
<p class="small">
88
Site and docs are <a href="https://creativecommons.org/licenses/by/4.0/">CC BY 4.0</a>.<br/>
Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
---
2+
title: "pyOCD 0.43.0 released"
3+
date: 2026-02-23
4+
categories:
5+
- release
6+
tags:
7+
- news
8+
- release
9+
- release-patch
10+
- pyocd
11+
author: Teo Mahnic
12+
excerpt: "Introducing SEGGER RTT and SystemView support in the `run` subcommand, with flexible channel configuration."
13+
---
14+
15+
pyOCD v0.43.0 has been released and is available from PyPI. This version includes several improvements and bug fixes.
16+
The complete list of changes is provided below
17+
18+
To upgrade pyOCD, just run `pip`:
19+
20+
```
21+
pip install --upgrade pyocd
22+
```
23+
24+
A major enhancement in this version is the extension of the `run` subcommand to support SEGGER's [Real-Time Transfer (RTT)](https://www.segger.com/products/debug-probes/j-link/technology/about-real-time-transfer/)
25+
and [SystemView](https://www.segger.com/products/development-tools/systemview/). RTT channels can now be configured
26+
individually through `*.cbuild-run.yml`, enabling flexible routing of target communication. Channels may operate as
27+
standard I/O bridges, forwarding target output to the console while relaying user input back to the device, or as
28+
Telnet endpoints, where a dedicated TCP server bridges a remote client directly to a selected RTT channel.
29+
For trace-oriented workflows, specific channels can be configured for SystemView capture, allowing trace data to be
30+
written to a file for post-run analysis.
31+
32+
SystemView integration includes automatic handling of start and stop commands, streamlining trace capture without
33+
manual synchronization. The generated `*.SVDat` files can be opened directly in SEGGER’s SystemView tool,
34+
tool for inspection and analysis.
35+
36+
Double buffering has been re-enabled for internal targets, with `STM32H7xx` devices excluded due to known issues.
37+
Internal flash algorithms have been unified around the `page_buffers` mechanism, and legacy template elements have
38+
been removed to simplify maintenance and ensure consistent behavior across targets.
39+
40+
Improvements also include better log messages in GDB Server, when client disconnects from the server and non-blocking
41+
reading of the STDIO console.
42+
43+
Thanks again to all the contributors who helped make this release possible! ❤️
44+
45+
[v0.43.0 on GitHub](https://github.com/pyocd/pyOCD/releases/tag/v0.43.0) \
46+
[v0.43.0 on PyPI](https://pypi.org/project/pyocd/0.43.0)
47+
48+
---
49+
50+
## New Features
51+
- `run` subcommand:
52+
- Add support for SEGGER's [RTT](https://www.segger.com/products/debug-probes/j-link/technology/about-real-time-transfer/) and [SystemView](https://www.segger.com/products/development-tools/systemview/) (configured via `*.cbuild-run.yml`)
53+
- Support per-channel RTT configuration with the following modes:
54+
- Standard I/O: All data received from the target on this channel will be printed to the `sdtout`, and all user input from the `stdin` will be sent to the target
55+
- Telnet: A Telnet server is started on the specified port, creating a bridge between the TCP connection and the corresponding RTT channel
56+
- SystemView: Capture the trace data from the specified RTT channel and save it to a user-defined file
57+
- SystemView integration:
58+
- Support for automatic start and stop command handling
59+
- Captured trace data (`*.SVDat` file) can be directly opened using SEGGER's SystemView analysis tool
60+
61+
## Improvements
62+
- Flash programming:
63+
- Re-enable double buffering mechanism for internal targets, except STM32H7xx (known to have issues)
64+
- Migrate all internal target support to use `page_buffers` instead of `begin_data` in flash algorithms
65+
- Remove `begin_data` from the algorithm template
66+
- GDB Server:
67+
- Improve log message when client gets disconnected from the server
68+
- Standard I/O:
69+
- Enable non-blocking read of the STDIO console
70+
- CMSIS-DAP v2:
71+
- Send ZLP instead of a dummy byte to terminate OUT transfer
72+
- CoreSight:
73+
- Always unlock ITM (do not check SLI and SLK bits in LSR register)
74+
>[Cortex-M7 (AT610) and Cortex-M7 with FPU (AT611) Software Developer Errata Notice](https://developer.arm.com/documentation/SDEN1068427/0110/?lang=en)
75+
513195: Lock Status Indication incorrectly reads as one
76+
77+
## Fixes
78+
- Flash programming:
79+
- Fix LPC4088 flash algorithm `page_size`
80+
- CMSIS-Packs:
81+
- Fix raised exception on `filename` property access when using extracted packs (@timll-mchp)
82+
- RTT:
83+
- Fix retrieval of available/free bytes for up/down channels
84+
- Fix `control-block` not found when the first character of the `control-block ID` was not present in the read memory (@HaoYDai)
85+
86+
## Other
87+
- CI: add nightly workflow that builds PyInstaller artifacts from the `develop` branch
88+
89+
## New Contributors
90+
* @MiloradCvjetkovic made their first contribution in https://github.com/pyocd/pyOCD/pull/1882
91+
* @timll-mchp made their first contribution in https://github.com/pyocd/pyOCD/pull/1901
92+
* @HaoYDai made their first contribution in https://github.com/pyocd/pyOCD/pull/1730
93+
94+
**Full Changelog**: https://github.com/pyocd/pyOCD/compare/v0.42.0...v0.43.0

0 commit comments

Comments
 (0)