使用两个 W5500-EVB-PICO 板作为 RP2040 的调试探针
转发: Using Two W5500-EVB-PICO Boards as Debugprobes for the RP2040
项目介绍
在这篇文章中,我将介绍如何使用两块 W5500-EVB-PICO 板在 VS Code 中运行 Raspberry Pi Pico 的 DebugProbe。
写这篇文章的原因是,虽然有很多与 DebugProbe 相关的文章,但我不得不参考大量文章才能在 Windows 环境中运行它,但仍然无法正常工作。尽管它很简单,但我遇到了太多的反复试验问题。我发布这篇文章是为了帮助其他用户避免这样的困难。
使用此 DebugProbe 有几个原因。值得注意的是,J-Link 和 ST-Link 调试器的成本可能相当高。
使用 W5500-EVB-PICO 作为 DebugProbe 可以大大降低成本问题。Pico 本身很容易以低成本获得,并且它与开源工具的高度兼容性允许在各种开发环境中灵活使用。
这篇文章的测试场景很简单。通过连接两个 PICO 板,我们将通过 SWD 刷新固件,然后调试刷新的固件。在此设置中,一个 PICO 将充当调试器,而另一个将充当调试目标板。
让我们深入了解使用 VS Code 配置此 DebugProbe 的详细步骤。
步骤如下:
- 安装 OpenOCD SW
- 安装最新版本的 ToolChain
- 设置要调试的项目中路径
- 运行
通过仔细遵循以下步骤,您将能够在 Windows 环境中将 W5500-EVB-PICO 用作 VS Code 的 DebugProbe。
1. 安装 OpenOCD
首先,从下面的链接下载 OpenOCD 并将其解压到适当的位置。
OpenOCD 下载链接: https://sourceforge.net/projects/openocd/
完成提取后,请参考下图复制可执行文件的路径,以便将其添加到环境变量中。
在Windows搜索栏中搜索“系统环境变量”并运行,然后添加复制的路径,如下所示。
2. 安装最新版本的 ToolChain
接下来,您需要为 GDB 可执行文件安装最新版本的 ToolChain。如果您拥有的 ToolChain 版本已经是最新版本,则无需再次安装。
从以下链接下载 ToolChain:
https://developer.arm.com/downloads/-/gnu-rm
就像 OpenOCD 一样,复制 ToolChain 路径并将其添加到系统环境变量中的“路径”。虽然在安装结束时有一个选项可以将路径添加到环境变量,但您可能会错过它,所以最好再检查一下。
设置 OpenOCD 和 ToolChain 的路径后,您需要重新启动电脑以应用更改。
3. 在项目中设置要调试的路径
您需要在要调试的项目中设置路径。由于WIZnet为W5500-EVB-PICO提供了项目和库,因此我打开了“RP2040-HAT-C”项目以使用环回示例测试调试。
如下所示将.vscode目录添加到项目中,并添加launch.json文件和settings.json文件。
如果是settings.json 文件,则无需添加它。
在项目中,添加一个 .vscode 目录,然后添加 launch.json 和 settings.json 文件,如下所示。
如果 settings.json 文件已经存在,则无需再次添加。
{
"version": "0.2.0",
"configurations": [
{
"name": "Cortex Debug",
"cwd": "${workspaceRoot}",
"executable": "D:/Pico/RP2040-HAT-C/build/examples/loopback/w5x00_loopback.elf",
"request": "launch",
"type": "cortex-debug",
"servertype": "openocd",
"gdbPath": "arm-none-eabi-gdb",
"openOCDLaunchCommands": ["adapter speed 5000"],
"device": "RP2040",
"configFiles": [
"C:/OpenOCD-0.12.0/share/openocd/scripts/interface/cmsis-dap.cfg",
"C:/OpenOCD-0.12.0/share/openocd/scripts/target/rp2040.cfg"
],
"searchDir": ["C:/OpenOCD-0.12.0/share/openocd/scripts"],
"svdFile": "D:/Pico/pico-sdk/src/rp2040/hardware_regs/rp2040.svd",
"runToEntryPoint": "main",
// Give restart the same functionality as runToEntryPoint - main
"postRestartCommands": [
"break main",
"continue"
]
}
]
}
将以下代码复制并粘贴到 settings.json 文件中,无需任何修改:
{
"cmake.statusbar.advanced": {
"debug": {
"visibility": "hidden"
},
"launch": {
"visibility": "hidden"
},
//"build": {
// "visibility": "hidden"
//},
//"buildTarget": {
// "visibility": "hidden"
//}
},
"cmake.buildBeforeRun": true,
"C_Cpp.default.configurationProvider": "ms-vscode.cmake-tools"
}
对于最后的配置步骤,转到路径 C:\Users\(username)\AppData\Roaming\Code\User 并修改那里的 settings.json 文件以设置 VS Code 的默认设置。注意不要将此文件与项目特定的 settings.json 文件混淆。
在上述代码中添加缺少的参数,并设置 cortex-debug.openocdPath 的路径以匹配您自己的路径。
{
"cmake.generator": "NMake Makefiles",
"cmake.configureEnvironment": {
"PICO_SDK_PATH": "D:\\RP2040\\pico-sdk",
"PICO_TOOLCHAIN_PATH": "C:\\Program Files (x86)\\GNU Arm Embedded Toolchain\\10 2021.10\\bin"
},
"cmake.configureOnOpen": true,
"security.workspace.trust.untrustedFiles": "open",
"cortex-debug.gdbPath": "arm-none-eabi-gdb",
"cortex-debug.openocdPath": "C:/OpenOCD-0.12.0/bin/openocd.exe",
}
4. 运行
为了执行,请按照如下所示物理连接电路板。
从下面的链接下载调试探针的 UF2 文件,并将其上传到通过 USB 连接的 PICO。
调试探测文件 URL: https://github.com/raspberrypi/debugprobe/releases
在扩展选项卡中搜索 Cortex-Debug 并安装它。
通过 USB 将 Debugprobe 连接到目标板后,打开两个 Powershell 提示符。
在 OpenOCD 的一个提示符中,输入:
openocd.exe -f interface/cmsis-dap.cfg -c "adapter speed 5000" -f target/rp2040.cfg -s tcl
在 gdb 服务器的另一个提示符下输入:
arm-none-eabi-gdb (target file name).elf
将(目标文件名)替换为可执行文件的名称。
以下是成功执行屏幕的示例:
在 GDB 提示符下,您需要输入以下四个命令来将 ELF 文件刷入目标板。请参阅下面的图片和命令:
target remote localhost:3333
load
monitor reset init
continue
一旦固件上传到目标板完成后,关闭左侧的OpenOCD提示符以断开与GDB的连接。
点击 VS Code 左侧的“调试器”选项卡。然后点击播放按钮启动调试器。
您可以使用顶部的调试器控件开始调试,如下所示。