Skip to content

Commit ad03062

Browse files
author
pyocd-bot
committed
Deploying to main from @ pyocd/pyocd-website-source@784db08 🚀
1 parent 20b23eb commit ad03062

File tree

3 files changed

+309
-12
lines changed

3 files changed

+309
-12
lines changed

index.html

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -188,42 +188,42 @@ <h2 class="">Recent posts</h2>
188188
<div class="row row-cols-1 row-cols-lg-3 g-4">
189189

190190
<div class="col">
191-
<a href="/posts/2025/10-24-pyocd-0.40.0-released.html">
191+
<a href="/posts/2025/12-16-pyocd-0.42.0-released.html">
192192
<div class="card h-100">
193193
<div class="card-body">
194-
<h5 class="card-title">pyOCD 0.40.0 released</h5>
195-
<p class="card-text">Introducing support for multiple concurrent GDB client connections to the same GDB server.</p>
194+
<h5 class="card-title">pyOCD 0.42.0 released</h5>
195+
<p class="card-text">Introducing a new `run` subcommand capable of running targets until a time limit or EOT.</p>
196196
</div>
197197
<div class="card-footer">
198-
<small class="">24 Oct 2025</small>
198+
<small class="">16 Dec 2025</small>
199199
</div>
200200
</div>
201201
</a>
202202
</div>
203203

204204
<div class="col">
205-
<a href="/posts/2025/07-04-pyocd-0.37.0-released.html">
205+
<a href="/posts/2025/10-24-pyocd-0.40.0-released.html">
206206
<div class="card h-100">
207207
<div class="card-body">
208-
<h5 class="card-title">pyOCD 0.37.0 released</h5>
209-
<p class="card-text">Introducing support for CMSIS-Toolbox Run and Debug Management.</p>
208+
<h5 class="card-title">pyOCD 0.40.0 released</h5>
209+
<p class="card-text">Introducing support for multiple concurrent GDB client connections to the same GDB server.</p>
210210
</div>
211211
<div class="card-footer">
212-
<small class="">04 Jul 2025</small>
212+
<small class="">24 Oct 2025</small>
213213
</div>
214214
</div>
215215
</a>
216216
</div>
217217

218218
<div class="col">
219-
<a href="/posts/2022/01-24-pyocd-0.33.0-released.html">
219+
<a href="/posts/2025/07-04-pyocd-0.37.0-released.html">
220220
<div class="card h-100">
221221
<div class="card-body">
222-
<h5 class="card-title">pyOCD 0.33.0 released</h5>
223-
<p class="card-text">RTT, user-defined commands, color logging, and plenty of bug fixes.</p>
222+
<h5 class="card-title">pyOCD 0.37.0 released</h5>
223+
<p class="card-text">Introducing support for CMSIS-Toolbox Run and Debug Management.</p>
224224
</div>
225225
<div class="card-footer">
226-
<small class="">24 Jan 2022</small>
226+
<small class="">04 Jul 2025</small>
227227
</div>
228228
</div>
229229
</a>
Lines changed: 292 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,292 @@
1+
<!DOCTYPE html>
2+
<html lang="en" dir="ltr">
3+
<head>
4+
<meta charset="utf-8">
5+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
6+
7+
<!--
8+
<link rel="icon" type="image/png" href="/assets/images/favicon.png" />
9+
-->
10+
11+
<link rel="preconnect" href="https://fonts.googleapis.com">
12+
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
13+
14+
<link href="https://fonts.googleapis.com/css2?family=Sarabun:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800&display=swap" rel="stylesheet">
15+
<link href="https://fonts.googleapis.com/css2?family=Roboto+Mono:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;1,100;1,200;1,300;1,400;1,500;1,600;1,700&display=swap" rel="stylesheet">
16+
<link href="https://fonts.googleapis.com/css2?family=Nunito+Sans:ital,wght@0,200;0,300;0,400;0,600;0,700;0,800;0,900;1,200;1,300;1,400;1,600;1,700;1,800;1,900&display=swap" rel="stylesheet">
17+
18+
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.5.0/font/bootstrap-icons.css">
19+
20+
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.1/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-F3w7mX95PdgyTmZZMECAngseQB83DfGTowi0iMjiWaeVhAn4FJkqJByhZMI3AhiU" crossorigin="anonymous">
21+
22+
<link rel="stylesheet" href="/assets/styles/main.css">
23+
24+
<title>pyOCD 0.42.0 released &mdash; pyOCD</title>
25+
26+
<!-- Global site tag (gtag.js) - Google Analytics -->
27+
<script async src="https://www.googletagmanager.com/gtag/js?id=G-2RKCB4KZ7S"></script>
28+
<script>
29+
window.dataLayer = window.dataLayer || [];
30+
function gtag(){dataLayer.push(arguments);}
31+
gtag('js', new Date());
32+
33+
gtag('config', 'G-2RKCB4KZ7S');
34+
</script>
35+
</head>
36+
37+
<body id="top">
38+
<div class="full-view-height d-flex flex-column">
39+
<div class="flex-shrink-0">
40+
<nav class="navbar navbar-expand-md navbar-dark py-1">
41+
<div class="container-fluid">
42+
<a class="navbar-brand" href="/">
43+
<img src="/assets/pyocd_logo_white.svg" height="42" width="auto" alt=""></img>
44+
</a>
45+
<a class="navbar-brand color-secondary" href="/">
46+
<span class="display-lg project-name">pyOCD</span>
47+
</a>
48+
49+
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarCollapse" aria-controls="navbarCollapse" aria-expanded="false" aria-label="Toggle navigation">
50+
<span class="navbar-toggler-icon"></span>
51+
</button>
52+
53+
<div class="collapse navbar-collapse justify-content-end" id="navbarCollapse">
54+
<ul class="navbar-nav">
55+
56+
57+
<li class="nav-item mr-auto mx-1">
58+
<a class="nav-link" href="/docs/">Documentation</a>
59+
</li>
60+
61+
<li class="nav-item mr-auto mx-1">
62+
<a class="nav-link" href="/posts/">Posts</a>
63+
</li>
64+
65+
<li class="nav-item mr-auto mx-1">
66+
<a class="nav-link" href="https://github.com/pyocd/pyOCD"><i class="bi bi-github"></i></a>
67+
</li>
68+
69+
</ul>
70+
</div>
71+
</div>
72+
</nav>
73+
74+
</div>
75+
<div class="container flex-grow-1">
76+
<div class="row">
77+
<main role="main" class="content-scroll p-3 p-md-4">
78+
<p>&larr; <a href="/posts/">View all posts</a></p>
79+
80+
<h1><a href="/posts/2025/12-16-pyocd-0.42.0-released.html">pyOCD 0.42.0 released</a></h1>
81+
82+
<div class="post-header">
83+
<p class="text-muted border-bottom">
84+
<strong>Dec 16, 2025</strong>
85+
<br/>Teo Mahnic
86+
87+
</p>
88+
</div>
89+
90+
<p>Version 0.42.0 of pyOCD has been released and is available from PyPI. This release introduces a new subcommand,
91+
a number of improvements and bug fixes. The complete list is shown below.</p>
92+
93+
<p>To upgrade pyOCD, just run <code class="highlighter-rouge">pip</code>:</p>
94+
95+
<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>pip install --upgrade pyocd
96+
</code></pre></div></div>
97+
98+
<p>The latest pyOCD release focuses on strengthening automation workflows, led by the introduction of the new
99+
<code class="highlighter-rouge">run</code> subcommand. This command enables time-limited or EOT-terminated execution, making it well suited for
100+
CI/CD environments that require deterministic behavior. It provides unified access to semihosting and SWV
101+
streams, offering consistent console output and optional input handling during automated runs.</p>
102+
103+
<p>A new standard I/O routing layer refines how output is managed across cores. The framework consolidates
104+
routing logic and supports console, telnet, file, and disabled modes, creating a uniform mechanism that
105+
simplifies multi-core scenarios.</p>
106+
107+
<p>Integration with <a href="https://open-cmsis-pack.github.io/cmsis-toolbox/YML-CBuild-Format/#run-and-debug-management">CMSIS-Toolbox Run and Debug Management</a>
108+
has also been strengthened. Configuration from <code class="highlighter-rouge">*.cbuild-run.yml</code> files now occupies a lower priority tier,
109+
sitting beneath command-line arguments and general session options to preserve explicit user intent.</p>
110+
111+
<p>Additional improvements include new flash programming options, relaxed flash algorithm requirements,
112+
updated Zephyr RTOS thread state definitions, and expanded architecture support - most notably
113+
Cortex-M52 and Star-MC3 devices.</p>
114+
115+
<p>Thanks again to all the contributors who helped make this release possible! ❤️</p>
116+
117+
<p><a href="https://github.com/pyocd/pyOCD/releases/tag/v0.42.0">v0.42.0 on GitHub</a> <br />
118+
<a href="https://pypi.org/project/pyocd/0.42.0">v0.42.0 on PyPI</a></p>
119+
120+
<hr />
121+
122+
<h2 id="new-features">New Features</h2>
123+
<ul>
124+
<li><code class="highlighter-rouge">run</code> subcommand:
125+
<ul>
126+
<li>Introduce a new <code class="highlighter-rouge">run</code> subcommand capable of running targets until a time limit or EOT (suited for CI/CD workflows)</li>
127+
<li>Supports semihosting console output/input and SWV output</li>
128+
</ul>
129+
</li>
130+
</ul>
131+
132+
<h2 id="improvements">Improvements</h2>
133+
<ul>
134+
<li>Standard I/O routing:
135+
<ul>
136+
<li>Add new abstraction layer to unify STDIO routing for each core</li>
137+
<li>Routing support for <code class="highlighter-rouge">console</code>, <code class="highlighter-rouge">telnet</code>, <code class="highlighter-rouge">file</code> and <code class="highlighter-rouge">off</code>
138+
<blockquote>
139+
<p>Note: Currently only output is supported</p>
140+
</blockquote>
141+
</li>
142+
</ul>
143+
</li>
144+
<li><a href="https://open-cmsis-pack.github.io/cmsis-toolbox/YML-CBuild-Format/#run-and-debug-management">CMSIS-Toolbox Run and Debug Management</a> integration:
145+
<ul>
146+
<li>Add configuration layer in session options, which sits below command line arguments</li>
147+
<li>Disable <code class="highlighter-rouge">*.cbuild-run.yml</code> processing if the <code class="highlighter-rouge">target_override</code> option is set</li>
148+
<li>Improve port assignment logic for multi-core GDBServer and telnet configurations</li>
149+
<li>Add processing for <code class="highlighter-rouge">connect</code> mode configuration</li>
150+
<li>Add processing for <code class="highlighter-rouge">pre-reset</code> and <code class="highlighter-rouge">post-reset</code> options in <code class="highlighter-rouge">load-setup</code> configuration</li>
151+
<li>Improve error messages for missing or invalid <code class="highlighter-rouge">*.cbuild-run.yml</code> file</li>
152+
<li>Improve checking for required files
153+
<ul>
154+
<li>Raise a warning instead of an error for missing SVD files</li>
155+
<li>Load SVD files only when available and when used by the subcommand</li>
156+
</ul>
157+
</li>
158+
</ul>
159+
</li>
160+
<li>Flash programming:
161+
<ul>
162+
<li>Add new session options for configuring <code class="highlighter-rouge">pre-reset</code> and <code class="highlighter-rouge">post-reset</code> type in <code class="highlighter-rouge">load</code> subcommand</li>
163+
<li>Relax flash algorithm requirement to require only RO section</li>
164+
</ul>
165+
</li>
166+
<li>RTOS:
167+
<ul>
168+
<li>Update Zephyr thread state definitions to match modern versions (@mathieuchopstm)</li>
169+
</ul>
170+
</li>
171+
<li>CoreSight and Cortex-M:
172+
<ul>
173+
<li>Add support for Cortex-M52 and Star-MC3 based devices (@Liu-Gu)</li>
174+
<li>Skip adding cores not described in the debug topology while retaining direct AP access</li>
175+
</ul>
176+
</li>
177+
</ul>
178+
179+
<h2 id="fixes">Fixes</h2>
180+
<ul>
181+
<li>Cortex-M:
182+
<ul>
183+
<li>Fix incorrect reset type used in the fallback mechanism when the requested DebugSequence doesn’t exist</li>
184+
</ul>
185+
</li>
186+
<li>CMSIS-DAP:
187+
<ul>
188+
<li>Fix HID report sizing logic across platforms</li>
189+
</ul>
190+
</li>
191+
<li>CMSIS-Packs:
192+
<ul>
193+
<li>Correct path normalization inside pack archives to support <code class="highlighter-rouge">..</code> in file paths (@xoriath)</li>
194+
</ul>
195+
</li>
196+
</ul>
197+
198+
<h2 id="other">Other</h2>
199+
<ul>
200+
<li>Minor documentation updates related to session option usage</li>
201+
</ul>
202+
203+
<h2 id="new-contributors">New Contributors</h2>
204+
<ul>
205+
<li>@Liu-Gu made their first contribution in https://github.com/pyocd/pyOCD/pull/1852</li>
206+
<li>@mathieuchopstm made their first contribution in https://github.com/pyocd/pyOCD/pull/1823</li>
207+
<li>@xoriath made their first contribution in https://github.com/pyocd/pyOCD/pull/1867</li>
208+
</ul>
209+
210+
<p><strong>Full Changelog</strong>: https://github.com/pyocd/pyOCD/compare/v0.41.0…v0.42.0</p>
211+
212+
213+
</main>
214+
</div>
215+
</div>
216+
217+
<div class="flex-shrink-0">
218+
<footer class="pyocd-footer p-0 mt-3">
219+
<div class="row row-cols-1 row-cols-sm-2 row-cols-md-4 pt-4">
220+
<div class="col-3">
221+
<p class="small">
222+
Copyright &copy; 2021-2025 PyOCD Authors.
223+
</p>
224+
<p class="small">
225+
Site and docs are <a href="https://creativecommons.org/licenses/by/4.0/">CC BY 4.0</a>.<br/>
226+
Project code is <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
227+
</p>
228+
</div>
229+
<div class="col-3"> <!-- mt-3 mb-3 mx-4 -->
230+
<h5>Links</h5>
231+
<ul class="list-unstyled">
232+
<li>
233+
<a href="/docs/">Documentation</a>
234+
</li>
235+
<li>
236+
<a href="/posts/">Posts</a>
237+
</li>
238+
<li>
239+
<a href="https://github.com/pyocd/pyOCD/blob/main/CONTRIBUTING.md">Contributing</a>
240+
</li>
241+
<li>
242+
<a href="https://github.com/pyocd/.github/blob/main/CODE_OF_CONDUCT.md">Code of Conduct</a>
243+
</li>
244+
<li>
245+
<a href="https://github.com/pyocd/">GitHub</a>
246+
</li>
247+
</ul>
248+
</div>
249+
<div class="col-3">
250+
<h5>Projects</h5>
251+
<ul class="list-unstyled">
252+
<li>
253+
<a href="https://github.com/pyocd/pyOCD">pyOCD</a>
254+
</li>
255+
<li>
256+
<a href="https://github.com/pyocd/cmsis-pack-manager">cmsis-pack-manager</a>
257+
</li>
258+
<li>
259+
<a href="https://github.com/pyocd/FlashAlgo">FlashAlgo</a>
260+
</li>
261+
</ul>
262+
</div>
263+
<div class="col-3">
264+
<h5>Community</h5>
265+
<ul class="list-unstyled">
266+
<li>
267+
<a href="https://github.com/pyocd/pyOCD/issues">Issues</a>
268+
</li>
269+
<li>
270+
<a href="https://github.com/pyocd/pyOCD/discussions">Discussions</a>
271+
</li>
272+
<li>
273+
<a href="https://join.slack.com/t/pyocd/shared_invite/zt-zqjv6zr5-ZfGAXl_mFCGGmFlB_8riHA">Slack</a>
274+
</li>
275+
<li>
276+
<a href="https://groups.google.com/g/pyocd">Mailing list</a>
277+
</li>
278+
</ul>
279+
</div>
280+
</div>
281+
</footer>
282+
283+
</div>
284+
</div>
285+
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.1/dist/js/bootstrap.bundle.min.js" integrity="sha384-/bQdsTh/da6pkI1MST/rWKFNjaCP5gBSY4sEBT38Q/9RBh9AH40zEOg7Hlq2THRZ" crossorigin="anonymous"></script>
286+
<script src="/assets/javascript/jquery-3.6.0.slim.min.js"></script>
287+
<!--
288+
<script type="text/javascript" src="/assets/javascript/index.js"></script>
289+
-->
290+
291+
</body>
292+
</html>

posts/index.html

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,11 @@ <h3>News and blog posts</h3>
8080
</div>
8181
<ul>
8282

83+
<li>
84+
<a href="/posts/2025/12-16-pyocd-0.42.0-released.html"><strong>16 Dec 2025</strong> pyOCD 0.42.0 released</a>
85+
<div><p>Introducing a new `run` subcommand capable of running targets until a time limit or EOT.</p></div>
86+
</li>
87+
8388
<li>
8489
<a href="/posts/2025/10-24-pyocd-0.40.0-released.html"><strong>24 Oct 2025</strong> pyOCD 0.40.0 released</a>
8590
<div><p>Introducing support for multiple concurrent GDB client connections to the same GDB server.</p></div>

0 commit comments

Comments
 (0)