Skip to content

Commit 915f45f

Browse files
committed
debug probe: describe standalone sessions better
Promote the VScode extension first.
1 parent 2ba070c commit 915f45f

File tree

1 file changed

+12
-13
lines changed

1 file changed

+12
-13
lines changed

documentation/asciidoc/microcontrollers/debug-probe/swd-connection.adoc

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
1-
== Serial Wire Debug (SWD)
1+
== Starting a Debug Session
22

3-
Serial Wire Debug (SWD) is a two-pin interface (https://developer.arm.com/documentation/101761/1-0/Debug-and-trace-interface/Serial-Wire-Debug-signals[SWDIO and SWCLK]) alternative to the JTAG four- or five-pin debugging interface standard.
3+
The Debug Probe will let you load binaries via the SWD port and OpenOCD: you will not need to unplug, and then push-and-hold, the BOOTSEL button every time you push a new binary to your Pico. Using the Debug Probe to upload new binaries is an entirely hands-off affair.
44

5-
=== Uploading new programs to your Pico
5+
GDB is then used to debug the binary running on the Pico.
66

7-
The Pico Debug Probe will let you load binaries via the SWD port and OpenOCD: you will not need to unplug, and then push-and-hold, the BOOTSEL button every time you push a new binary to your Pico. Using the Debug Probe uploading new binaries is an entirely hands off affair.
7+
We recommend the use of the Raspberry Pi Pico VSCode extension, which integrates the use of OpenOCD and GDB, to upload and debug programs. See Chapter 4 of https://datasheets.raspberrypi.com/pico/getting-started-with-pico.pdf[Getting started with Raspberry Pi Pico] for more information.
8+
9+
=== Standalone program upload
810

911
Once you have built a binary:
1012

@@ -15,9 +17,9 @@ $ sudo openocd -f interface/cmsis-dap.cfg -f target/rp2040.cfg -c "adapter speed
1517

1618
NOTE: When you use the Debug Probe to upload a binary the ELF version of the file is used, not the UF2 file that you would use when you drag-and-drop.
1719

18-
=== Debugging with SWD
20+
=== Standalone debug session
1921

20-
It'll also let you use `openocd` in server mode, and connect GDB, which gives you break points and "proper" debugging.
22+
This will use `openocd` in server mode, and connect GDB, which gives you breakpoints and single-step over a console interface.
2123

2224
[IMPORTANT]
2325
======
@@ -35,10 +37,12 @@ $ make -j4
3537
----
3638
3739
In a debug build you will get more information when you run it under the debugger, as the compiler builds your program with the information to tell GDB what your program is doing.
38-
39-
See Chapter 6 of https://datasheets.raspberrypi.com/pico/getting-started-with-pico.pdf[Getting started with Raspberry Pi Pico] for more information.
4040
======
4141

42+
NOTE: For computers that are _not_ Raspberry Pis, a variant of GDB that can debug ARM processors is required. Use one of the following alternatives depending on your operating system and device:
43+
* On Linux devices, use `gdb-multiarch`.
44+
* On macOS and Windows devices, use `arm-none-eabi-gdb` from the toolchain on https://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads[Arm's website]
45+
4246
To start an OpenOCD server, run the following command:
4347

4448
[source,console]
@@ -55,8 +59,3 @@ $ gdb blink.elf
5559
> monitor reset init
5660
> continue
5761
----
58-
59-
GDB doesn't work on all platforms. Use one of the following alternatives instead of `gdb`, depending on your operating system and device:
60-
61-
* On Linux devices that are _not_ Raspberry Pis, use `gdb-multiarch`.
62-
* On macOS devices, use `arm-none-eabi-gdb`.

0 commit comments

Comments
 (0)