跳到主要内容

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

· 阅读需 5 分钟
Skyone
科技爱好者

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

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

准备材料:

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

下载需要的资源

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

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

https://tc.skyone.host/share/picoprobe-debug.zip

包含以下文件:

├── 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驱动

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

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

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

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

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
GNDGND
GP2SWCLK
GP3SWDIO
GP4/UART1 TXGP1/UART0 RX
GP5/UART1 RXGP0/UART0 TX
VSYSVSYS

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

接线图

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

开始调试

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

命令行调试

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

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

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

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

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

填写配置

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

调试

【完】