发帖
2 0 0

WSL2+CentOS+WB2-32S+vscode点灯环境搭建教程

shawn
论坛元老

6

主题

34

回帖

4158

积分

论坛元老

积分
4158
Ai-WB2系列 29 2 前天 17:35

一. 前言

个人搭建环境的经验:
建议使用 Windows 环境,因为搭建好后无需每次手动执行命令;
如果您可以接受敲命令,那么建议使用 Ubuntu 作为开发环境,因为它没有 CH340 驱动问题;
当然如果像我一样习惯使用 CentOS,那么需要解决 CH340 驱动加载的问题。尽管官方内核已经内置了该驱动,但官方驱动编译可能无法通过。即使成功加载 CH340 驱动,也无法自动加载,每次重启后都需要手动加载。不过,由于使用 WSL,我们需要进行 USB 设备映射,因此多执行几条命令也可以接受。

二. 安装 CentOS 9 开发环境

整体安装思路参考了官方教程和论坛上的三篇 WSL 、vscode帖子。

  • 安装开发工具组(替代 build-essential)

    sudo yum groupinstall "Development Tools"
    
  • 启用 EPEL 仓库(部分包依赖该仓库)

    sudo yum install epel-release
    
  • 安装 Python 3 和 pip:

    sudo yum install python3 python3-pip
    
  • 安装 Git 和 Screen:

    sudo yum install git screen
    
  • 获取 WB2-32S SDK

    安装必要的库,切换到您想要安装 SDK 的目录。我直接使用了 ~ 用户根目录。

git clone --recursive https://gitee.com/Ai-Thinker-Open/Ai-Thinker-WB2

论坛上有文章提到,执行此命令拉取仓库时,可能无法下载编译链,但我的测试没有问题。拉取仓库结束后,切换到编译链目录,修改编译工具权限。

cd toolchain/riscv/Linux/
. chmod755.sh

4. 编译 Blink 例程

我的安装目录是 /root/Ai-Thinker-WB2/,此时进入 /root/Ai-Thinker-WB2/applications/get-started/blink,输入 make 进行编译。

cd /root/Ai-Thinker-WB2/applications/get-started/blink
make

编译过程中可能会出现一些警告或错误,但如果最终显示编译成功,则可以忽略这些信息。

编译成功后,您可以在 blink 目录下找到 blink.bin 文件。

三. WSL2 连接 WB2-32S 设备

  • 软件安装

    https://github.com/dorssel/usbipd-win/releases 下载 usbipd-win 软件,目前最新版本为 5.0.0,下载后直接安装。

  • 列出所有 USB 设备
    以管理员模式打开命令提示符,输入 usbipd list,找到 WB2-32S 的串口设备,我这里是 busid 为 3-1 的设备。

屏幕截图2025-03-31160924.png

  • 设置 USB 设备共享
    执行 usbipd bind --busid 3-1,此命令需要管理员模式,且一次执行长期有效。
    运行命令后,再次使用 usbipd list 命令验证设备是否已共享,共享的设备后面 state 会变成 shared。
  • 连接 USB 设备
    执行 usbipd attach --wsl --busid 3-1,完成设备的连接。
    此时,可以使用 lsusb 命令(通过 sudo yum install usbutils 安装)查看设备是否映射到 CentOS 系统中。

屏幕截图2025-03-31161549.png

  • 移除设备
    使用完毕后,可以直接拔除 WB2-32S,也可以使用命令 usbipd detach --busid 3-1 移除。

烧录固件

如果一切顺利,您应该可以在 /dev/ 中看到 ttyUSB0 设备。
在命令行输入 make flash p=/dev/ttyUSB0 b=921600,在提示 reset 时,按下开发板上的 RST 按钮,即可烧录固件。

make flash p=/dev/ttyUSB0 b=921600

烧录完成后,按下 RST 按钮,开发板上的 RGB 灯将开始蓝色闪烁。

四. VSCode配置

本机vscode安装wsl扩展,之后在远程资源管理器里面添加对应的wsl即可。建议在wsl中安装makefile-tools扩展。
image.png
打开的时候,可以直接打开项目目录,不影响代码提示,代码的运行及上传采用task.json配置文件,内容如下:



{
"version": "2.0.0",
"tasks": [
{
"type": "shell",
"label": "BL602编译",
"command": "/bin/make",
"args": [
"CONFIG_CHIP_NAME=BL602",
"CONFIG_LINK_ROM=1",
"-j8",
"-C",
"${workspaceFolder}",
"all"  // 明确指定构建目标
],
"options": {
"cwd": "${workspaceFolder}"  // 修正为项目目录
},
"problemMatcher": [
"$gcc"  // 保留用于编译错误匹配
],
"group": {
"kind": "build",
"isDefault": true
},
"detail": "编译BL602项目"
},
{
"type": "shell",
"label": "BL602清理",
"command": "/bin/make",
"args": [
"CONFIG_CHIP_NAME=BL602",
"CONFIG_LINK_ROM=1",
"-C",
"${workspaceFolder}",
"clean"
],
"options": {
"cwd": "${workspaceFolder}"  // 修正为项目目录
},
"problemMatcher": [],  // clean 不需要错误匹配
"group": "build",
"detail": "清理BL602项目构建文件"
},
{
"type": "shell",
"label": "BL602上传(ttyUSB0)",
"command": "/bin/make",
"args": [
"CONFIG_CHIP_NAME=BL602",
"CONFIG_LINK_ROM=1",
"-C",
"${workspaceFolder}",
"flash",
"p=/dev/ttyUSB0",
"b=921600"
],
"options": {
"cwd": "${workspaceFolder}"  // 关键修正:工作目录设为项目根目录
},
"problemMatcher": [],  // 烧录任务通常无需错误匹配
"group": {
"kind": "build",
"isDefault": true
},
"detail": "烧录BL602到ttyUSB0,波特率 921600"
}
]
}

──── 0人觉得很赞 ────

使用道具 举报

搭建是如此丝滑~
赞👍~
您需要登录后才可以回帖 立即登录
高级模式
返回
统计信息
  • 会员数: 28247 个
  • 话题数: 40195 篇