在本教程中,我们将学习如何上传程序覆盆子πPico使用门限和也与门限调试。直到现在,我们一直在使用拖放上传程序“微小”的方法。但如果你想使用门限接口的Pico程序和调试,那么本教程是为你。学习编程的步骤覆盆子πPico门限和调试代码与社署,OpenOCD和GDB。
对门限短暂的注意
你曾经在开发嵌入式系统的应用程序?如果答案是肯定的,那么你可能会熟悉这个词“调试”。在嵌入式系统中,主要是设计一个任务(或一个很小的数量和特定的任务),调试和测试的过程是非常重要的我们经常工作至CPU寄存器。
有几个调试嵌入式系统的硬件和软件解决方案。这样一个提供被称为串行线调试或社署简而言之。社署是一个调试和跟踪港口嵌入到硅大多数现代ARM微控制器和微处理器为基础。
使用门限探针(小的硬件通常连接到门限USB端口的单片机和地图)你可以计划单片机的Flash,调试的固件,添加断点,步进通过代码等只有两个电线。
门限的结合,GDB (GNU调试器)和OpenOCD(一个片上调试器支持调试,在系统编程和边界扫描嵌入式系统)是一个非常强大的调试安装,特别是手臂皮层系列的处理器。
覆盆子πPico门限编程和调试
像所有手臂皮层处理器,覆盆子πPico也有专门的硬件调试通过门限界面。社署调试所需的两个电线被称为SWDIO(双向门限数据)和SWCLK门限时钟)。
覆盆子πPico,社署别针是分开的别针和放置底部的董事会。
此2线社署接口RP2040覆盆子πPico董事会允许您执行以下操作:
- 把程序上传到外部Flash或内部存储器。
- 控制处理器的执行状态即。、运行、停止、步骤,设置断点,等等。
- 处理器访问内存和IO外设(内存映射)通过系统总线。
安装工具覆盆子π
如前所述,GDB调试所需和OpenOCD任何手臂皮层处理器。所以,现在我们将安装这两个在我们的主机系统,这对于我来说是一个覆盆子π运行最新覆盆子π操作系统。
OpenOCD
了解社署协议和控制臂皮质处理器(两个在RP2040),你需要一个叫做OpenOCD的特殊翻译。现在让我们看看如何安装OpenOCD覆盆子π。
注意:下面的步骤将安装在/home/pi/pico/openocd. OpenOCD
这将由OpenOCD安装需要的所有工具。接下来,我们将克隆OpenOCD进入我们的主机和安装OpenOCD。输入以下命令一个接一个。
我需要一些时间来构建和安装OpenOCD。坐下来,放松一下。
广东发展银行
下一步是安装GDB。GDB连拱的安装,使用以下命令:
我们将看到如何使用OpenOCD和GDB调试在下一节。
布线覆盆子πPico和树莓π
之前看到如何计划覆盆子πPico使用门限时,你必须首先正确线覆盆子π皮科。
重要提示:我不知道确切的原因,但是在连接之前,我不得不关闭覆盆子π成功项目覆盆子πPico使用门限。我读在覆盆子π论坛的覆盆子π和目标即。,覆盆子π皮科in this case must be powered down before connecting SWD pins.
自从覆盆子πPico通过USB连接到覆盆子π(权力),我所要做的就是关闭覆盆子π,使门限连接然后权力覆盆子π。
下面的表显示了所有必要的覆盆子π和树莓πPico之间的联系需要。
覆盆子π皮科 |
覆盆子π |
SWDIO | GPIO 24(销18) |
社署接地 |
接地(销20) |
SWCLK | GPIO 25(销22) |
编程覆盆子πPico门限
让我们用“眨眼”项目为例,了解覆盆子πPico门限编程工作。如果你还记得在编程覆盆子πPico C的教程中,我们已经建立了眨眼程序,导致几个目标文件。
拖放编程通过USB接口,我们使用.uf2文件。但OpenOCD使用.elf文件上传程序。
使用以下命令程序覆盆子πPico门限。
上面的命令将调用OpenOCD程序眨眼。精灵文件树莓πPico,重置董事会和退出OpenOCD。如果一切顺利,应该显示终端这样和LED覆盆子πPico应该开始闪烁。
调试覆盆子πPico门限
现在让我们看看如何调试代码起诉门限,OpenOCD和GDB。我们已经安装了GDB在前面的步骤。现在,包括调试构建文件中的相关设置,你有使用CMake指令的-DCMAKE_BUILD_TYPE =调试”。
但在此之前,您需要删除的“构建”目录“pico-examples”目录,并创建一个新的“构建”目录。使用下面的命令来构建示例的调试信息。
让我们使用hello_world例子和构建的连续变异。你不能使用基于串行连接为门限调试USB设备将停止处理器内核调试时断开连接。
同时,覆盆子πPico和树莓π之间的连接查看覆盆子πPico的输出UART串行输出树莓π如下:
覆盆子π皮科 |
覆盆子π |
GPIO 0 (UART0_TX) | GPIO 15 (UART_RX0)销10 |
GPIO 1 (UART0_RX) |
GPIO 14 (UART_TX0)销8 |
接地 | 接地(销14) |
连接后,打开hello_world UART目录和构建它。
使用OpenOCD打开GDB服务器。
保持这个终端,打开另外一个终端窗口,浏览到UART串行目录建立目录。
GDB和连接到OpenOCD服务器开放。
将程序加载到覆盆子πPico的闪存,使用load命令。
开始运行代码。
如果您熟悉GDB命令,您可以探索它们。
结论
一个完整的教程编程和调试覆盆子πPico门限。学习覆盆子πPico门限接口工作,必要的覆盆子πPico之间的连接和覆盆子π为门限,程序覆盆子πPico门限,使用GDB调试覆盆子πPico使用门限。
6的反应
感谢。
只是让你知道有表中出现一个错字,说如何连接Pico门限。
GPIO 24(销18)以及GPIO 25(销18)
我更新了针。谢谢你!
有可能使用一个门限ST-LINK吗?我不有一个覆盆子π周围。
从技术上讲,应该是可能的但不直接与圣链接固件。你需要flash不同的固件(耐火的J链接或黑魔法探测)。我没有试过。
这是一个很好的过程,我麻烦的一件事是,社署连接在一段时间对我来说只有一次。我解决了这个问题通过π之间最短的电线和笔。可能也许我原来的电线是一个问题,但它似乎合理使用短的电线,因为高带宽。我看过其他设置,使用带连接器,也许双绞线也将更好地工作。电线我现在大约3英寸,连接没有问题。
嗨
你能做一个视频使用桌面pc RPIOS运行。