Skip to content

Commit 0d4d22a

Browse files
author
pyocd-bot
committed
Deploying to main from @ pyocd/pyocd-website-source@98a7397 🚀
1 parent 5efc77b commit 0d4d22a

File tree

9 files changed

+915
-43
lines changed

9 files changed

+915
-43
lines changed

docs/builtin-targets.html

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -675,6 +675,11 @@ <h5 class="sidebar-header">On this page</h5>
675675
<td>LPC5526</td>
676676
</tr>
677677

678+
<tr><td><code>lpc55s16</code></td>
679+
<td>NXP</td>
680+
<td>LPC55S16</td>
681+
</tr>
682+
678683
<tr><td><code>lpc55s28</code></td>
679684
<td>NXP</td>
680685
<td>LPC55S28</td>
@@ -975,6 +980,26 @@ <h5 class="sidebar-header">On this page</h5>
975980
<td>W7500</td>
976981
</tr>
977982

983+
<tr><td><code>ytm32b1ld0</code></td>
984+
<td>Yuntu Microelectronics</td>
985+
<td>YTM32B1LD0</td>
986+
</tr>
987+
988+
<tr><td><code>ytm32b1le0</code></td>
989+
<td>Yuntu Microelectronics</td>
990+
<td>YTM32B1LE0</td>
991+
</tr>
992+
993+
<tr><td><code>ytm32b1md1</code></td>
994+
<td>Yuntu Microelectronics</td>
995+
<td>YTM32B1MD1</td>
996+
</tr>
997+
998+
<tr><td><code>ytm32b1me0</code></td>
999+
<td>YTMicro</td>
1000+
<td>YTM32B1ME0</td>
1001+
</tr>
1002+
9781003

9791004
</table>
9801005

docs/command_reference.html

Lines changed: 114 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -307,6 +307,11 @@ <h5 class="sidebar-header">On this page</h5>
307307
<li class="toc-entry toc-h5"><a href="#wreg">wreg</a></li>
308308
</ul>
309309
</li>
310+
<li class="toc-entry toc-h3"><a href="#rtt">Rtt</a>
311+
<ul>
312+
<li class="toc-entry toc-h5"><a href="#rtt-1">rtt</a></li>
313+
</ul>
314+
</li>
310315
<li class="toc-entry toc-h3"><a href="#semihosting">Semihosting</a>
311316
<ul>
312317
<li class="toc-entry toc-h5"><a href="#arm">arm</a></li>
@@ -334,6 +339,11 @@ <h5 class="sidebar-header">On this page</h5>
334339
<li class="toc-entry toc-h5"><a href="#threads-1">threads</a></li>
335340
</ul>
336341
</li>
342+
<li class="toc-entry toc-h3"><a href="#utility">Utility</a>
343+
<ul>
344+
<li class="toc-entry toc-h5"><a href="#sleep">sleep</a></li>
345+
</ul>
346+
</li>
337347
<li class="toc-entry toc-h3"><a href="#values">Values</a>
338348
<ul>
339349
<li class="toc-entry toc-h5"><a href="#set">set</a></li>
@@ -344,8 +354,10 @@ <h5 class="sidebar-header">On this page</h5>
344354
</li>
345355
<li class="toc-entry toc-h2"><a href="#value-details">Value details</a>
346356
<ul>
357+
<li class="toc-entry toc-h5"><a href="#accessible-pins">accessible-pins</a></li>
347358
<li class="toc-entry toc-h5"><a href="#aps">aps</a></li>
348359
<li class="toc-entry toc-h5"><a href="#cores">cores</a></li>
360+
<li class="toc-entry toc-h5"><a href="#debug-sequences">debug-sequences</a></li>
349361
<li class="toc-entry toc-h5"><a href="#fault">fault</a></li>
350362
<li class="toc-entry toc-h5"><a href="#frequency">frequency</a></li>
351363
<li class="toc-entry toc-h5"><a href="#graph">graph</a></li>
@@ -358,8 +370,10 @@ <h5 class="sidebar-header">On this page</h5>
358370
<li class="toc-entry toc-h5"><a href="#nreset">nreset</a></li>
359371
<li class="toc-entry toc-h5"><a href="#option">option</a></li>
360372
<li class="toc-entry toc-h5"><a href="#peripherals">peripherals</a></li>
373+
<li class="toc-entry toc-h5"><a href="#pins">pins</a></li>
361374
<li class="toc-entry toc-h5"><a href="#probe-uid">probe-uid</a></li>
362375
<li class="toc-entry toc-h5"><a href="#register-groups">register-groups</a></li>
376+
<li class="toc-entry toc-h5"><a href="#reset-type">reset-type</a></li>
363377
<li class="toc-entry toc-h5"><a href="#step-into-interrupts">step-into-interrupts</a></li>
364378
<li class="toc-entry toc-h5"><a href="#target-1">target</a></li>
365379
<li class="toc-entry toc-h5"><a href="#vector-catch">vector-catch</a></li>
@@ -382,7 +396,10 @@ <h5 class="sidebar-header">On this page</h5>
382396
command names. In addition, commonly used commands often have a short alias. The alias takes
383397
precedence even when it is a prefix of multiple other commands.</p>
384398

385-
<!-- Maintainer note: the following is auto-generated. Edit the command INFO source material. -->
399+
<!--
400+
Maintainer note: the following is auto-generated. Edit the command class INFO dict source material,
401+
then run ./scripts/generate_command_help.py.
402+
-->
386403

387404
<h2 id="all-commands">All commands</h2>
388405

@@ -494,9 +511,9 @@ <h2 id="all-commands">All commands</h2>
494511
<tr><td>
495512
<a href="#core"><tt>core</tt></a>
496513
</td><td>
497-
[NUM]
514+
[NUMBER | NAME]
498515
</td><td>
499-
Select CPU core by number or print selected core.
516+
Select CPU core by number or name, or print selected core.
500517
</td></tr>
501518

502519
<tr><td>
@@ -561,7 +578,7 @@ <h2 id="all-commands">All commands</h2>
561578
</td><td>
562579
[halt|-halt|-h] [TYPE]
563580
</td><td>
564-
Reset the target, optionally specifying the reset type.
581+
Reset the target, optionally with halt and/or specifying the reset type.
565582
</td></tr>
566583

567584
<tr><td>
@@ -769,6 +786,16 @@ <h2 id="all-commands">All commands</h2>
769786
Set the value of a core or peripheral register.
770787
</td></tr>
771788

789+
<tr><td colspan="3"><b>Rtt</b></td></tr>
790+
791+
<tr><td>
792+
<a href="#rtt"><tt>rtt</tt></a>
793+
</td><td>
794+
rtt {setup,start,stop,channels,server}
795+
</td><td>
796+
Control SEGGER RTT compatible interface.
797+
</td></tr>
798+
772799
<tr><td colspan="3"><b>Semihosting</b></td></tr>
773800

774801
<tr><td>
@@ -835,6 +862,16 @@ <h2 id="all-commands">All commands</h2>
835862
Control thread awareness.
836863
</td></tr>
837864

865+
<tr><td colspan="3"><b>Utility</b></td></tr>
866+
867+
<tr><td>
868+
<a href="#sleep"><tt>sleep</tt></a>
869+
</td><td>
870+
MILLISECONDS
871+
</td><td>
872+
Sleep for a number of milliseconds before continuing.
873+
</td></tr>
874+
838875
<tr><td colspan="3"><b>Values</b></td></tr>
839876

840877
<tr><td>
@@ -866,6 +903,14 @@ <h2 id="all-values">All values</h2>
866903

867904
<tr><th>Value</th><th>Access</th><th>Description</th></tr>
868905

906+
<tr><td>
907+
<a href="#accessible-pins"><tt>accessible-pins</tt></a>
908+
</td><td>
909+
read-write
910+
</td><td>
911+
Display which debug probe pins can be read and written with the 'pins' value.
912+
</td></tr>
913+
869914
<tr><td>
870915
<a href="#aps"><tt>aps</tt></a>
871916
</td><td>
@@ -882,6 +927,14 @@ <h2 id="all-values">All values</h2>
882927
Information about CPU cores in the target.
883928
</td></tr>
884929

930+
<tr><td>
931+
<a href="#debug-sequences"><tt>debug-sequences</tt></a>
932+
</td><td>
933+
read-only
934+
</td><td>
935+
Show the available debug sequences from the target's DFP.
936+
</td></tr>
937+
885938
<tr><td>
886939
<a href="#fault"><tt>fault</tt></a>
887940
</td><td>
@@ -979,6 +1032,14 @@ <h2 id="all-values">All values</h2>
9791032
List of target peripheral instances.
9801033
</td></tr>
9811034

1035+
<tr><td>
1036+
<a href="#pins"><tt>pins</tt></a>
1037+
</td><td>
1038+
read-write
1039+
</td><td>
1040+
Current debug probe protocol I/O pin states.
1041+
</td></tr>
1042+
9821043
<tr><td>
9831044
<a href="#probe-uid"><tt>probe-uid</tt></a>,
9841045
<a href="#probe-uid"><tt>uid</tt></a>
@@ -996,6 +1057,14 @@ <h2 id="all-values">All values</h2>
9961057
Display available register groups for the selected core.
9971058
</td></tr>
9981059

1060+
<tr><td>
1061+
<a href="#reset-type"><tt>reset-type</tt></a>
1062+
</td><td>
1063+
read-write
1064+
</td><td>
1065+
Show reset configuration and all available reset types for each core. Set current reset type.
1066+
</td></tr>
1067+
9991068
<tr><td>
10001069
<a href="#step-into-interrupts"><tt>step-into-interrupts</tt></a>,
10011070
<a href="#step-into-interrupts"><tt>si</tt></a>
@@ -1100,8 +1169,8 @@ <h5 id="continue"><code class="highlighter-rouge">continue</code></h5>
11001169

11011170
<h5 id="core-1"><code class="highlighter-rouge">core</code></h5>
11021171

1103-
<p><strong>Usage</strong>: core [NUM] <br />
1104-
Select CPU core by number or print selected core.</p>
1172+
<p><strong>Usage</strong>: core [NUMBER | NAME] <br />
1173+
Select CPU core by number or name, or print selected core.</p>
11051174

11061175
<h5 id="halt"><code class="highlighter-rouge">halt</code></h5>
11071176

@@ -1146,7 +1215,7 @@ <h3 id="device">Device</h3>
11461215
<h5 id="reset"><code class="highlighter-rouge">reset</code></h5>
11471216

11481217
<p><strong>Usage</strong>: reset [halt|-halt|-h] [TYPE] <br />
1149-
Reset the target, optionally specifying the reset type. The reset type must be one of ‘default’, ‘hw’, ‘sw’, ‘hardware’, ‘software’, ‘sw_sysresetreq’, ‘sw_vectreset’, ‘sw_emulated’, ‘sysresetreq’, ‘vectreset’, or ‘emulated’.</p>
1218+
Reset the target, optionally with halt and/or specifying the reset type. The reset type must be one of ‘default’, ‘hw’, ‘sw’, ‘hardware’, ‘software’, ‘system’, ‘core’, ‘emulated’, ‘sw_system’, ‘sw_core’, ‘sw_sysresetreq’, ‘sw_vectreset’, ‘sw_emulated’, ‘sysresetreq’, or ‘vectreset’.</p>
11501219

11511220
<h5 id="unlock"><code class="highlighter-rouge">unlock</code></h5>
11521221

@@ -1288,6 +1357,13 @@ <h5 id="wreg"><code class="highlighter-rouge">wreg</code></h5>
12881357
<strong>Usage</strong>: wreg [-r] [-p] [-f] REG VALUE <br />
12891358
Set the value of a core or peripheral register. The REG parameter must be a core register name or a peripheral.register. When a peripheral register is written, if the -r option is passed then it is read back and the updated value printed. The -p option forces evaluating the register name as a peripheral register name. If the -f option is passed, then individual fields of peripheral registers will be printed in addition to the full value.</p>
12901359

1360+
<h3 id="rtt">Rtt</h3>
1361+
1362+
<h5 id="rtt-1"><code class="highlighter-rouge">rtt</code></h5>
1363+
1364+
<p><strong>Usage</strong>: rtt rtt {setup,start,stop,channels,server} <br />
1365+
Control SEGGER RTT compatible interface.</p>
1366+
12911367
<h3 id="semihosting">Semihosting</h3>
12921368

12931369
<h5 id="arm"><code class="highlighter-rouge">arm</code></h5>
@@ -1335,6 +1411,13 @@ <h5 id="threads-1"><code class="highlighter-rouge">threads</code></h5>
13351411
<p><strong>Usage</strong>: threads {flush,enable,disable,status} <br />
13361412
Control thread awareness.</p>
13371413

1414+
<h3 id="utility">Utility</h3>
1415+
1416+
<h5 id="sleep"><code class="highlighter-rouge">sleep</code></h5>
1417+
1418+
<p><strong>Usage</strong>: sleep MILLISECONDS <br />
1419+
Sleep for a number of milliseconds before continuing.</p>
1420+
13381421
<h3 id="values">Values</h3>
13391422

13401423
<h5 id="set"><code class="highlighter-rouge">set</code></h5>
@@ -1349,6 +1432,12 @@ <h5 id="show"><code class="highlighter-rouge">show</code></h5>
13491432

13501433
<h2 id="value-details">Value details</h2>
13511434

1435+
<h5 id="accessible-pins"><code class="highlighter-rouge">accessible-pins</code></h5>
1436+
1437+
<p><strong>Access</strong>: read-write <br />
1438+
<strong>Usage</strong>: show accessible-pins, set accessible-pins VALUE <br />
1439+
Display which debug probe pins can be read and written with the ‘pins’ value.</p>
1440+
13521441
<h5 id="aps"><code class="highlighter-rouge">aps</code></h5>
13531442

13541443
<p><strong>Access</strong>: read-only <br />
@@ -1361,6 +1450,12 @@ <h5 id="cores"><code class="highlighter-rouge">cores</code></h5>
13611450
<strong>Usage</strong>: show cores <br />
13621451
Information about CPU cores in the target.</p>
13631452

1453+
<h5 id="debug-sequences"><code class="highlighter-rouge">debug-sequences</code></h5>
1454+
1455+
<p><strong>Access</strong>: read-only <br />
1456+
<strong>Usage</strong>: show debug-sequences <br />
1457+
Show the available debug sequences from the target’s DFP. Only available for CMSIS-Pack based targets.</p>
1458+
13641459
<h5 id="fault"><code class="highlighter-rouge">fault</code></h5>
13651460

13661461
<p><strong>Access</strong>: read-only <br />
@@ -1438,6 +1533,12 @@ <h5 id="peripherals"><code class="highlighter-rouge">peripherals</code></h5>
14381533
<strong>Usage</strong>: show peripherals <br />
14391534
List of target peripheral instances.</p>
14401535

1536+
<h5 id="pins"><code class="highlighter-rouge">pins</code></h5>
1537+
1538+
<p><strong>Access</strong>: read-write <br />
1539+
<strong>Usage</strong>: show pins, set pins VALUE <br />
1540+
Current debug probe protocol I/O pin states. The pins value is a mask containing the state of all accessible protocol pins. See the <code class="highlighter-rouge">accessible-pins</code> value for protocol pins that can be read and written by the connected debug probe.</p>
1541+
14411542
<h5 id="probe-uid"><code class="highlighter-rouge">probe-uid</code></h5>
14421543

14431544
<p><strong>Aliases</strong>: <code class="highlighter-rouge">uid</code> <br />
@@ -1451,6 +1552,12 @@ <h5 id="register-groups"><code class="highlighter-rouge">register-groups</code><
14511552
<strong>Usage</strong>: show register-groups <br />
14521553
Display available register groups for the selected core.</p>
14531554

1555+
<h5 id="reset-type"><code class="highlighter-rouge">reset-type</code></h5>
1556+
1557+
<p><strong>Access</strong>: read-write <br />
1558+
<strong>Usage</strong>: show reset-type, set reset-type VALUE <br />
1559+
Show reset configuration and all available reset types for each core. Set current reset type.</p>
1560+
14541561
<h5 id="step-into-interrupts"><code class="highlighter-rouge">step-into-interrupts</code></h5>
14551562

14561563
<p><strong>Aliases</strong>: <code class="highlighter-rouge">si</code> <br />

docs/configuring_logging.html

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -365,6 +365,14 @@ <h3 id="trace-loggers">Trace loggers</h3>
365365
<td><code class="highlighter-rouge">pyocd.debug.semihost.trace</code></td>
366366
<td>Semihost file operations</td>
367367
</tr>
368+
<tr>
369+
<td><code class="highlighter-rouge">pyocd.debug.sequences.scope.trace</code></td>
370+
<td>Open-CMSIS-Pack debug sequence variable read/write</td>
371+
</tr>
372+
<tr>
373+
<td><code class="highlighter-rouge">pyocd.debug.sequences.sequences.trace</code></td>
374+
<td>Open-CMSIS-Pack debug sequence statements</td>
375+
</tr>
368376
<tr>
369377
<td><code class="highlighter-rouge">pyocd.flash.flash.trace</code></td>
370378
<td>Flash algorithm operations</td>

docs/multicore_debug.html

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -217,30 +217,28 @@ <h5 class="sidebar-header">On this page</h5>
217217
</div>
218218

219219
<p>pyOCD supports debugging multicore devices. It does this by serving one gdb server per core, to which
220-
you connect independant gdb instances. This is the most reliable method of debugging multicore
221-
embedded devices using gdb.</p>
220+
independent gdb instances are connected. This is the most reliable method of debugging asymmetric multicore
221+
devices using gdb.</p>
222222

223-
<p><code class="highlighter-rouge">pyocd gdbserver</code> automatically creates one <code class="highlighter-rouge">GDBServer</code> instance per core. The first core is given the
224-
user-specified port number. Additional cores have port numbers incremented from there.</p>
223+
<p><code class="highlighter-rouge">pyocd gdbserver</code> automatically creates one gdb server instance per core by default. The primary core is given the user-specified port number. Additional cores have port numbers incremented from there. If a gdb server for only one or a subset of cores is desired, the <code class="highlighter-rouge">--core</code> command line argument can be used with a list of core numbers.</p>
225224

226-
<p>To prevent reset requests from multiple connected gdb instances causing havoc, secondary cores have
227-
their default reset type set to core-only reset (VECTRESET), which will fall back to an emulated
228-
reset for non-v7-M architectures. This feature can be disabled by setting the
229-
<code class="highlighter-rouge">enable_multicore_debug</code> session option to false.</p>
225+
<p>By default, the primary core is core number 0. For Arm CoreSight based devices, this will be the core with the lowest associated access port address. Use the <code class="highlighter-rouge">primary_core</code> session option to change the primary core.</p>
226+
227+
<p>When performing multicore debug where multiple gdb instances are connected simultaneously, it is important to set the <code class="highlighter-rouge">enable_multicore_debug</code> session option to true. This changes secondary cores to have their default reset type set to core-only reset (<code class="highlighter-rouge">sw_core</code>). This prevents competing reset requests from the multiple gdb instances causing havoc. On v7-M architecture cores, VECTRESET is used. However, VECTRESET is not supported on other core architecture, so non-v7-M architectures will fall back to an emulated core reset.</p>
230228

231229
<p>To debug a multicore device, run <code class="highlighter-rouge">pyocd gdbserver</code> as usual. This will connect to the device, detect
232230
the cores, and create the gdb server instances on separate ports. Next, start up two gdb instances
233231
and connect to the two gdb server ports. For instance, on a dual core device if you pass 3333 for
234-
the port, connect to port 3333 for the first core and port 3334 for the second core.</p>
232+
the port (or leave it set to default), connect to port 3333 for the first core and port 3334 for the second core.</p>
235233

236234
<p>On many devices, secondary cores are by default held in reset until released by the primary core.
237235
Because gdb does not have a concept of a core held in reset, pyOCD will report a core held in reset
238236
by telling gdb that there is a single thread with the name “Reset”. This is visible if you run the
239-
show threads gdb command, and will appear in the Eclipe Debug view’s list of threads. All register
237+
show threads gdb command, and will appear in the VSCode or Eclipse Debug view’s list of threads. All register
240238
values will be reported as 0 until the core is released from reset.</p>
241239

242-
<p>Usually you want to have the primary core load code for the secondary core, so configure the second
243-
core’s gdb to not load any code to the target. This is highly device-specific, though, and may
240+
<p>Usually you want to have the primary core load code and/or configure the reset vector for secondary cores prior to releasing those cores from reset. For this situation, configure the second
241+
core’s gdb to not load any code to the target. This usage is highly device-specific, though, and may
244242
depend on whether the secondary core’s code is running out of flash or RAM.</p>
245243

246244

0 commit comments

Comments
 (0)