一. 前言
个人搭建环境的经验:
建议使用 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 设备

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

- 移除设备
使用完毕后,可以直接拔除 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扩展。

打开的时候,可以直接打开项目目录,不影响代码提示,代码的运行及上传采用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"
}
]
}