欢迎光临散文网 会员登陆 & 注册

如何在Linux上使用WchLink+Openocd调试RP2040系单片机

2023-02-18 00:15 作者:PCX-LK  | 我要投稿

0.前言

最近在制作基于rp2040芯片的音游控制器,从某控制器交流群的大佬口中得知arm系的单片机可以使用调试器,于是就自己买来了一个wchLink准备研究(如图)

我实际上还用不上调试器,因为现在在用MicroPython(((

up主的wchLinkE

又从网上得知了OpenOCD这个开源的调试软件。

我使用的系统是Linux,但是网上的Linux上使用openocd+wchlink的资料少之又少,而且多半围绕着专有软件(就是你MRS)

但是openOCD需要一些特殊配置才能运行,所以折腾了很久才搞明白(感谢群内CafuuChino大佬的帮助)

这个教程应该适用于所有的支持SWD下载调试的arm单片机

有建议和疑问欢迎在评论区提出

1.你需要什么

    一个wchlink调试器

    一台Linux系统的电脑(我这里以Debian为例)

    一个基于rp2040的开发板

    一些杜邦线

    手&脑子&眼睛以及不怕折腾的精神

2.安装openOCD&Git

打开终端模拟器输入:

    sudo apt install openocd git -y

等待apt安装完毕后进入下一步

3.克隆OpenOCD的源码仓库

为什么要克隆源码?因为我不知道apt安装的OpenOCD的cfg文件在哪(或者根本没有))

我建议你cd一个方便的路径来克隆源码

终端模拟器输入以下命令克隆

    git clone https://github.com/raspberrypi/openocd

这里克隆的是树莓派官方的opencod源码,可以调试rp2040的单个核心(因为wchlink不能多重调试)

4.获取wchLink的VID和PID

插入wchLink到电脑后终端执行

    lsusb

得到像下面的输出


lsusb的输出

其中“QinHeng Electronics WCH-Link”就是我们的wchLink设备

我们需要知道它的VID和PID(每个wchLink的都不一样所以别照抄)

红框部分是wchLink的VID和PID

所以VID就是:1a86

PID就是:8012

我们还需要在它们前面添加“0x”

所以最终得到VID:0x1a86  PID:0x8012

5.连接硬件&配置OpenOCD并启动

首先cd到第3步克隆的源码的根文件夹下

然后连接wchLink和rp2040开发板

    wchLink的SWDIO连接rp2040开发板的SWD接口

    wchLink的SWCLK连接rp2040开发板的SWCLK接口

    以及把两者的GND和3v3相互连接起来

最后wchLink插入电脑

然后终端模拟器输入

    sudo openocd -c 'adapter driver cmsis-dap' -c 'cmsis_dap_vid_pid VID PID' -f tcl/target/rp2040-core0.cfg

其中VIDPID需要替换成上一步中最后得到的

rp2040-core0.cfg是选择调试哪个核心用的配置文件,这里是调试第一个核心(还有rp2040-core1.cfg,调试第二个核心,但是rp2040.cfg不能使用,因为wchLink不支持多重调试,如果你有像jlink之类的支持多重调试的调试器就能用

如果一切顺利的话你会得到不含ERROR的终端输出,这意味着OpenOCD配置完毕并启动了(如图)

如果出现“Error: Error connecting DP: cannot read IDR”则证明wchLink与开发板的连接有问题

一个正常的输出截图 

然后你就可以使用telnet或者其他的工具连接OpenOCD进行调试了

具体方法/指令还请百度


如何在Linux上使用WchLink+Openocd调试RP2040系单片机的评论 (共 条)

分享到微博请遵守国家法律