使用picoprobe调试树莓派PICO(附调试包)

使用picoprobe调试树莓派PICO(附调试包)

六月 05, 2022

本站所有内容除特殊注明均遵守:署名-非商业性使用-相同方式共享(CC BY-NC-SA)协议

本文章纯原创,转载请注明出处!

看了下网上的树莓派调试的资料,要么使用 stlink,要么使用树莓派4B,要么按官方的来,使用一个树莓派PICO调试另一个,但连编译后的openocd都不给一个嘛。。。。。

今天来写一篇:在 Windows 下使用一个树莓派PICO调试另一个,基于官方的 picoprobe

准备材料:

  • 树莓派 PICO 两片
  • USB 线一根
  • 杜邦线若干

下载需要的资源

按官方的教程,你需要编译专门的 openocd 、编译 picoprobe 固件、下载 USB 驱动

然而,这些我已经帮你们做好了,下载吧:树莓派PICO调试包 ,密码: 50w56o

防失效,补个档(两个内容一样,建议使用第一个)

1
2
3
https://pan.skyone.host/s/PKH0       //密码:50w56o

https://tc.skyone.host/blog/post/%E4%BD%BF%E7%94%A8picoprobe%E8%B0%83%E8%AF%95%E6%A0%91%E8%8E%93%E6%B4%BEPICO/%E6%A0%91%E8%8E%93%E6%B4%BEPICO%E8%B0%83%E8%AF%95%E5%8C%85.zip

包含以下文件:

1
2
3
4
5
6
├── interface
│   └── picoprobe.cfg ---- openocd 配置文件
├── openocd.exe ---- 特别编译的 openocd
├── target
│   └── rp2040.cfg ---- openocd 配置文件
└── zadig-2.7.exe ---- 安装 USB 驱动的程序

烧录调试固件

这一步需要烧录 picoprobe固件(是烧录到用来调试的PICO,不是要调试的PICO哦)

在我分享的 树莓派PICO调试包 中找到 picoprobe.uf2

按住树莓派PICO的 BOOTSEL 按钮,USB 连电脑,把 picoprobe.uf2 拖入磁盘中

完成!

安装USB驱动

打开调试包的 zadig-2.7.exe,连接烧录过 picoprobe 驱动的 PICO,按如图选择:

安装USB驱动

等待驱动安装完成······

在调试包文件夹下运行以下命令:

1
./openocd -f interface/picoprobe.cfg -f target/rp2040.cfg -s tcl

如果显示以下内容,表示成功

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Open On-Chip Debugger 0.11.0-g4f2ae61 (2022-05-30-21:15)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.org/doc/doxygen/bugs.html
Info : only one transport option; autoselect 'swd'
adapter speed: 5000 kHz

Info : Hardware thread awareness created
Info : Hardware thread awareness created
Info : RP2040 Flash Bank Command
Info : Listening on port 6666 for tcl connections
Info : Listening on port 4444 for telnet connections
Info : clock speed 5000 kHz
Info : SWD DPIDR 0x0bc12477
Info : SWD DLPIDR 0x00000001
Info : SWD DPIDR 0x0bc12477
Info : SWD DLPIDR 0x10000001
Info : rp2040.core0: hardware has 4 breakpoints, 2 watchpoints
Info : rp2040.core1: hardware has 4 breakpoints, 2 watchpoints
Info : starting gdb server for rp2040.core0 on 3333
Info : Listening on port 3333 for gdb connections

接线

USB拔掉,接线千万不要接错!!!

接线方式如下表

调试用的PICO 要调试的PICO
GND GND
GP2 SWCLK
GP3 SWDIO
GP4/UART1 TX GP1/UART0 RX
GP5/UART1 RX GP0/UART0 TX
VSYS VSYS

这里也贴一张官方给的图(在官方的getting-started-with-pico Appendix A: Picoprobe Wiring)

接线图

确认一遍没连错,进入下一步

开始调试

这一步分两部分:命令行调试、IDE 调试

命令行调试

将用来调试的PICO用USB连上电脑,在调试包目录运行:

1
./openocd -f interface/picoprobe.cfg -f target/rp2040.cfg -s tcl

然后在你 编译好的准备调试的固件的目录 打开一个新的命令行,运行:

1
2
3
4
arm-none-eabi-gdb <你编译的固件的名称>
------------------------------------------
(GDB) target remote localhost:3333
(GDB) load

烧录完成,开始调试把!

注:如果没有树莓派PICO的开发环境, 欢迎看我的另一篇很早前写的文章

IDE 调试

打开 Clion,加载你的项目,这里我以打印“1”的程序为例:

打开项目

右下角,选择 Debug 模式,并选择 编辑配置

编辑配置

添加一个 嵌入式GDB服务器 的配置

添加配置

按如图所示的填,其中:

目标和可执行文件按你们的项目填

GDB :选择 arm-none-eabi-gdb

GDB 服务器:选择调试包里的 openocd(这里我改了名字)

GDB 服务器参数:填 -f interface/picoprobe.cfg -f target/rp2040.cfg -s tcl

执行目录:填调试包的目录

填写配置

接下来这么做就不用我说了把

调试

【完】