Skip to content

由 sujingliang 贡献,Ai-Thinker 进行整理

【Ai-WB2评测】VSCODE环境搭建的三种方式

Ai-WB2官方eclipes环境搭建教程见:<https://blog.csdn.net/Boantong_/article/details/128480919>

因为硬盘空间有限,不想再安装Eclipse IDE for Embedded C/C++ Developers

所以只从SDK包的网盘中下载了Ai-Thinker-WB2.zip

为了节约空间,解压Ai-Thinker-WB2.zip后,toolchain\riscv中只保留MSYS。

MSYS之前安装过,但是没有在MSYS下安装git和make,这次安装上:

pacman -S git pacman -S make

运行MSYS2 MSYS(带MSYS那个) 因为Ai-Thinker-WB2\make_scripts_riscv中toolchain.mk中

  1. CONFIG_TOOLPREFIX ?= (BL60XSDKPATH)/toolchain/riscv/(shell uname |cut -d '_' -f1)/bin/riscv64-unknown-elf-

其中$(shell uname |cut -d '_' -f1),需要取到MSYS2 MSYS工具名中的MSYS,才能访问到Ai-Thinker-WB2\toolchain\riscv\MSYS下的交叉编译工具

当然可以把这行注释,启用下一行

  1. CONFIG_TOOLPREFIX ?= riscv64-unknown-elf-

这样会使用系统路径中设置的交叉编译工具,也不再挑MSYS版本。

进入MSYS2后,运行code进入VSCODE

打开get-started\helloworld文件夹

可以配置编译、下载、clean环境了

一、终端->运行任务方式 在.vscode下新建tasks.json,内容如下:

📜 点击展开完整代码
c
{
"version": "2.0.0",
"tasks": [
{
"type": "shell",
"label": "Build BL602",
"command": "c:\\msys64\\usr\\bin\\make.exe",
"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 项目(8线程)"
},
{
"type": "shell",
"label": "Clean BL602",
"command": "c:\\msys64\\usr\\bin\\make.exe",
"args": [
"CONFIG_CHIP_NAME=BL602",
"CONFIG_LINK_ROM=1",
"-C",
"${workspaceFolder}",
"clean"
],
"options": {
"cwd": "${workspaceFolder}"  // 修正为项目目录
},
"problemMatcher": [],  // clean 不需要错误匹配
"group": "build",
"detail": "清理 BL602 项目构建文件"
},
{
"type": "shell",
"label": "Flash BL602 (COM10)",
"command": "c:\\msys64\\usr\\bin\\make.exe",
"args": [
"CONFIG_CHIP_NAME=BL602",
"CONFIG_LINK_ROM=1",
"-C",
"${workspaceFolder}",
"flash",
"p=COM10",
"b=921600"
],
"options": {
"cwd": "${workspaceFolder}"  // 关键修正:工作目录设为项目根目录
},
"problemMatcher": [],  // 烧录任务通常无需错误匹配
"group": {
"kind": "build",
"isDefault": true
},
"detail": "烧录 BL602 到 COM10,波特率 921600"
}
]
}

终端任务运行:...->终端->运行任务...

运行后,弹出

分别选择三项内容,可以执行编译,下载,清理。

二、启用调试(launch.json)方式 在.vscode下新建launch.json,内容如下:

📜 点击展开完整代码
c
{
"configurations": [
{
"name": "make compile",
"type": "cppvsdbg",
"request": "launch",
//make文件的绝对地址,这样可以防止和别的环境冲突
"program": "c:\\msys64\\usr\\bin\\make.exe",
//原理就是通过参数-C进入指定的目录
// 烧录就很简单了只需要加上flash和p=端口号就可以了
"args": [
"CONFIG_CHIP_NAME=BL602",
"CONFIG_LINK_ROM=1",
"-j8",
"-C",
"${workspaceFolder}"
],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
//使用vscode内部的终端输出,不用弹出来终端窗口
"console": "integratedTerminal"
},
{
"name": "make download",
"type": "cppvsdbg",
"request": "launch",
"program": "c:\\msys64\\usr\\bin\\make.exe",
"args": [
"CONFIG_CHIP_NAME=BL602",
"-C",
"${workspaceFolder}",
"flash",
//端口号需要改成自己电脑的端口
"p=COM10",
"b=921600"
],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"console": "integratedTerminal",
},
{
"name": "make clean",
"type": "cppvsdbg",
"request": "launch",
"program": "c:\\msys64\\usr\\bin\\make.exe",
"args": [
"CONFIG_CHIP_NAME=BL602",
"-C",
"${workspaceFolder}",
"clean"
],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"console": "integratedTerminal"
},
],
"version": "2.0.0"
}

按下F5可以启用调试

这时VSCODE状态栏多出

点击它可以选择执行编译,下载,清理。

三、利用makefile tools扩展

先安装makefile tools

在.vscode下settings.json,增加如下内容:

📜 点击展开完整代码
c
{
"makefile.configureOnOpen": false,
"makefile.configureAfterCommand": false,
"makefile.parseBuildLog": false,
"makefile.buildBeforeLaunch": true,
"makefile.phonyTargets": ["all"],
"makefile.makePath": "C:\\msys64\\usr\\bin\\make.exe",
"makefile.configurations": [
{
"name": "BL602 Build",
"makeArgs": [
"-j${env:NUMBER_OF_PROCESSORS}",
"CONFIG_CHIP_NAME=BL602",
"CONFIG_LINK_ROM=1"
],
"overrideMakefilePath": "${workspaceFolder}/Makefile",
"environmentVariables": {
"PATH": "C:\\msys64\\usr\\bin;${env:PATH}"
}
},
{
"name": "BL602 Flash",
"makeArgs": [
"CONFIG_CHIP_NAME=BL602",
"CONFIG_LINK_ROM=1",
"flash",
"SERIAL_PORT=COM10",
"SERIAL_BAUDRATE=921600",
],
"overrideMakefilePath": "${workspaceFolder}/Makefile",
"environmentVariables": {
"PATH": "C:\\msys64\\usr\\bin;${env:PATH}"
}
}
]
}

如图点击,可以选择执行编译和下载。

按这个按钮执行选择。

运行编译的执行情况:

运行下载的执行情况:

四、回归原生Makefile 在Ai-Thinker-WB2下新建个Makefile,内容如下:

📜 点击展开完整代码
c
# 默认编译所有子目录
#SUBDIRS := $(shell find . -mindepth 1 -maxdepth 1 -type d -exec test -f {}/Makefile \; -print)
SUBDIRS := applications/bluetooth/ble_slave
COMX :=COM10
BAUDRATE :=921600
DIRS ?= $(SUBDIRS)  # 默认全部编译,但可通过 make DIRS="dir1 dir2" 指定
.PHONY: all clean flash $(DIRS)
all: $(DIRS)
$(DIRS):
$(MAKE) -C $@ -j8
clean:
$(MAKE) -C $(DIRS) clean
#$(foreach dir,$(DIRS),$(MAKE) -C $(dir) clean;)
flash:
$(MAKE) -C $(DIRS) flash p=$(COMX) b=$(BAUDRATE)
#$(foreach dir,$(DIRS),$(MAKE) -C $(dir) flash p=$(COMX) b=$(BAUDRATE);)

在vscode,终端中录入: make           //编译 make flash   //下载 make clean  //清理

修改SUBDIRS,编译不同的例程。 感觉原生的更好理解,操作也不复杂。

最后 1、虽然方法不同,但本质都是想办法发出make命令,当然如果有耐心,手工在MSYS2下录入执行也可以。 2、用命令烧录比用图形化工具操作还简单点。

Released under the MIT License. Build Time 2026-09-11 14:52:23