在WSL2中编写与调试CH32V103(WCH-Link)

本篇文章用于配置WSL(ubuntu)中的环境与开发


本文章使用到了如下工具及环境

  • WSL2,Ubuntu20.04,VSCode编辑器,WSL插件

  • EIDE插件

    • 一款适用于 8051/STM8/Cortex-M/RISC-V 的单片机开发环境 项目地址
  • Cortex-Debug插件

    • 一款用于调试Cortex-M内核的插件 但是我们使用它来调试RISC-V的单片机 项目地址
  • MRS_Toolchain Linux开发工具包

    • 内含了开发所需要的工具 包括 GCC编译器,OpenOCD调试器,WCH-Link驱动文件 下载地址
  • usbip usb映射工具

    • 一款用于在网络层传输USB协议的工具 官方指导

环境要求

需要电脑已经拥有WSL2及Ubuntu20.04(仅在该版本测试)

目录


WCH-Link篇

本篇将指导你把WCH-Link绑定到Ubuntu


Windows安装usbip

打开usbip_win最新的发行版链接

image

下载最新发行版并安装

在命令行执行以下命令查看是否安装成功

usbipd wsl list

成功如图,这是插入WCH-Link的效果

image

注意WCH-Link的BUSID,后面需要用到


Ubuntu安装usbip

在ubuntu终端中执行以下代码

sudo apt install linux-tools-5.4.0-77-generic hwdata
sudo update-alternatives --install /usr/local/bin/usbip usbip /usr/lib/linux-tools/5.4.0-77-generic/usbip 20

注意:apt仅测试官方源可用,国内源大多不可用,该语句仅在 Ubuntu20.04 运行成功

当安装失败时参考连接


将WCH-Link映射到Ubuntu

打开power Shell(需要管理员),执行以下语句

usbipd wsl attach --busid 4-1

该语句将WCH-Link绑定到默认的ubuntu发行版,4-1填你的WCH-Link BUSID

参考微软官方教程


MRS_Toolchain篇

本篇指导你下载并安装MRS_Toolchain工具


下载MRS_Toolchain

使用wget命令把MRS_Toolchain拉起下来 建议从官网获得最新连接

wget http://file.mounriver.com/tools/MRS_Toolchain_Linux_x64_V1.50.tar.xz

image


安装MRS_Toolchain

将文件解压到目标文件夹(我这里是"~/MRS")

mkdir MRS
tar -xf MRS_Toolchain_Linux_x64_V1.50.tar.xz -C MRS
cd  MRS
ls

解压后如图

image

因为编译不允许空格路径,所以将"RISC-V Embedded GCC" 重命名为 "RISC-V_Embedded_GCC"

mv "RISC-V Embedded GCC" "RISC-V_Embedded_GCC"

安装WCH-Link驱动

进入beforeinstall目录下执行start.sh

image

可能会遇到此问题,参考这边文章的解决方法

解决问题后再次执行,成功如图

image

最后的错误可以忽略,是因为没有图形化界面的问题

至此,WCH-Link的驱动就安装成功了


VSCode及插件配置篇


首先安装WSL扩展并连接到Ubuntu

image
WSL扩展


image

连接到Ubuntu-20.04


EIDE安装及配置

本篇指导安装EIDE插件及相关环境


安装.NET 6.0 runtime(EIDE环境)

在终端中执行以下命令

#添加源
wget https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
rm packages-microsoft-prod.deb

#安装net 6.0 runtime
sudo apt-get update && \
  sudo apt-get install -y aspnetcore-runtime-6.0

安装EIDE插件

image
注意:安装后可能报错安装失败,这时需要从官方下载包重新安装

设置RISC-V工具链

点击"设置工具链"

image

在选项中选择

image

输入重命名后RISC-V-GCC编译器的路径(图片路径仅供参考)

image


新建CH32V103工程

安装完成后选择侧边栏的EIDE图标

image

选择新建项目

从远程仓库获取 --> MCU --> WCH --> RISC-V --> ch32v103 --> 输入项目名称 --> 选择项目地址

完成后右下角会弹出如图弹框,点击Yes后打开项目

image


此时就可以进行编译了,单击编译按钮或者使用F7开始编译.如图即为成功

image

ps:Linux环境编译真的超快的(对比Windows)


设置EIDE快捷下载

EIDE自带一个下载功能,使用此功能可以快速的将程序下载入单片机

打开根目录下的 README.md 里面有Linux脚本的说明

我们在烧录配置中更改脚本

image

将命令改为

./download.linux.sh ${programFile}

这时编辑 download.linux.sh 脚本文件,在 openocd 前面加上它所在的路径

//更改前
openocd -f ./tools/wch-riscv.cfg -c init -c halt -c "flash erase_sector wch_riscv 0 last " -c "program $1" -c "verify_image $1" -c wlink_reset_resume -c exit
//更改前后
~/MRS/OpenOCD/bin/openocd -f ./tools/wch-riscv.cfg -c init -c halt -c "flash erase_sector wch_riscv 0 last " -c "program $1" -c "verify_image $1" -c wlink_reset_resume -c exit

使用组合键 Chrl + Alt + D 启动下载程序

image

成功如图


安装Cortex-Debug插件

image

在Ubuntu上安装Cortex-Debug插件

设置 GDB && OpenOCD 路径


进入 文件->首选项->设置 并在搜索框中输入 gdb,并切换到远程面板

image

进入settings.json中编辑路径,将我的路径替换为你的路径

    "cortex-debug.gdbPath": "/home/su/MRS/RISC-V_Embedded_GCC/bin/riscv-none-embed-gdb",
    "cortex-debug.openocdPath": "/home/su/MRS/OpenOCD/bin/openocd",

注意,此处只能输入绝对路径


调试篇

本篇指导如何进行调试

启动调试

现在,可以进行调试了

image

ps:WCH-Link 调试真的好慢

修复SVD文件路径

由于模板文件是在Windows环境下编写的,svd文件的路径配置与linux不兼容.这里进行修复

在调试栏点击设置按钮

image

//原在Windows下的路径
"svdFile": "sdk\\CH32V103xx.svd",
//更改为以下路径
"svdFile": "sdk/CH32V103xx.svd",

再次点击调试按钮,可以看见SVD正常加载了

image

开始愉快的调试吧

遇到问题,欢迎骚扰

EOF

posted @ 2022-08-20 00:03  stars-under  阅读(95)  评论(0编辑  收藏  举报