发帖
5 0 0

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

sujingliang
论坛元老

17

主题

15

回帖

5640

积分

论坛元老

积分
5640
Ai-WB2系列 59 5 前天 15:44
本帖最后由 sujingliang 于 2025-4-1 09:55 编辑

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 ?= $(BL60X_SDK_PATH)/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

1.png
打开get-started\helloworld文件夹

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




一、终端->运行任务方式
在.vscode下新建tasks.json,内容如下:
  1. {
  2.         "version": "2.0.0",
  3.         "tasks": [
  4.                 {
  5.                         "type": "shell",
  6.                         "label": "Build BL602",
  7.                         "command": "c:\\msys64\\usr\\bin\\make.exe",
  8.                         "args": [
  9.                           "CONFIG_CHIP_NAME=BL602",
  10.                           "CONFIG_LINK_ROM=1",
  11.                           "-j8",
  12.                           "-C",
  13.                           "${workspaceFolder}",
  14.                           "all"  // 明确指定构建目标
  15.                         ],
  16.                         "options": {
  17.                           "cwd": "${workspaceFolder}"  // 修正为项目目录
  18.                         },
  19.                         "problemMatcher": [
  20.                           "$gcc"  // 保留用于编译错误匹配
  21.                         ],
  22.                         "group": {
  23.                           "kind": "build",
  24.                           "isDefault": true
  25.                         },
  26.                         "detail": "编译 BL602 项目(8线程)"
  27.                   },
  28.                   {
  29.                         "type": "shell",
  30.                         "label": "Clean BL602",
  31.                         "command": "c:\\msys64\\usr\\bin\\make.exe",
  32.                         "args": [
  33.                           "CONFIG_CHIP_NAME=BL602",
  34.                           "CONFIG_LINK_ROM=1",
  35.                           "-C",
  36.                           "${workspaceFolder}",
  37.                           "clean"
  38.                         ],
  39.                         "options": {
  40.                           "cwd": "${workspaceFolder}"  // 修正为项目目录
  41.                         },
  42.                         "problemMatcher": [],  // clean 不需要错误匹配
  43.                         "group": "build",
  44.                         "detail": "清理 BL602 项目构建文件"
  45.                   },
  46.                 {
  47.                         "type": "shell",
  48.                         "label": "Flash BL602 (COM10)",
  49.                         "command": "c:\\msys64\\usr\\bin\\make.exe",
  50.                         "args": [
  51.                           "CONFIG_CHIP_NAME=BL602",
  52.                           "CONFIG_LINK_ROM=1",
  53.                           "-C",
  54.                           "${workspaceFolder}",
  55.                           "flash",
  56.                           "p=COM10",
  57.                           "b=921600"
  58.                         ],
  59.                         "options": {
  60.                           "cwd": "${workspaceFolder}"  // 关键修正:工作目录设为项目根目录
  61.                         },
  62.                         "problemMatcher": [],  // 烧录任务通常无需错误匹配
  63.                         "group": {
  64.                           "kind": "build",
  65.                           "isDefault": true
  66.                         },
  67.                         "detail": "烧录 BL602 到 COM10,波特率 921600"
  68.                   }
  69.         ]
  70. }
复制代码
终端任务运行:...->终端->运行任务...

2.png
运行后,弹出
3.png
分别选择三项内容,可以执行编译,下载,清理。

二、启用调试(launch.json)方式
参考:https://bbs.ai-thinker.com/forum ... =23&_dsign=92246bae
在.vscode下新建launch.json,内容如下:
  1. {
  2.     "configurations": [

  3.         {
  4.             "name": "make compile",
  5.             "type": "cppvsdbg",
  6.             "request": "launch",
  7.             //make文件的绝对地址,这样可以防止和别的环境冲突
  8.             "program": "c:\\msys64\\usr\\bin\\make.exe",
  9.             //原理就是通过参数-C进入指定的目录
  10.             // 烧录就很简单了只需要加上flash和p=端口号就可以了
  11.             "args": [
  12.                 "CONFIG_CHIP_NAME=BL602",
  13.                 "CONFIG_LINK_ROM=1",
  14.                 "-j8",
  15.                 "-C",
  16.                 "${workspaceFolder}"
  17.             ],
  18.             "stopAtEntry": false,
  19.             "cwd": "${workspaceFolder}",
  20.             "environment": [],
  21.             //使用vscode内部的终端输出,不用弹出来终端窗口
  22.             "console": "integratedTerminal"
  23.         },
  24.         {
  25.             "name": "make download",
  26.             "type": "cppvsdbg",
  27.             "request": "launch",
  28.             "program": "c:\\msys64\\usr\\bin\\make.exe",
  29.             "args": [
  30.                 "CONFIG_CHIP_NAME=BL602",
  31.                 "-C",
  32.                 "${workspaceFolder}",
  33.                 "flash",
  34.                 //端口号需要改成自己电脑的端口
  35.                 "p=COM10",
  36.                 "b=921600"
  37.             ],
  38.             "stopAtEntry": false,
  39.             "cwd": "${workspaceFolder}",
  40.             "environment": [],
  41.             "console": "integratedTerminal",
  42.         },
  43.         {
  44.             "name": "make clean",
  45.             "type": "cppvsdbg",
  46.             "request": "launch",
  47.             "program": "c:\\msys64\\usr\\bin\\make.exe",
  48.             "args": [
  49.                 "CONFIG_CHIP_NAME=BL602",
  50.                 "-C",
  51.                 "${workspaceFolder}",
  52.                 "clean"
  53.             ],
  54.             "stopAtEntry": false,
  55.             "cwd": "${workspaceFolder}",
  56.             "environment": [],
  57.             "console": "integratedTerminal"
  58.         },
  59.     ],
  60.     "version": "2.0.0"
  61. }
复制代码
按下F5可以启用调试
4.png
这时VSCODE状态栏多出
5.png
点击它可以选择执行编译,下载,清理。
6.png

三、利用makefile tools扩展

先安装makefile tools
7.png

在.vscode下settings.json,增加如下内容:
  1. {
  2.        "makefile.configureOnOpen": false,
  3.     "makefile.configureAfterCommand": false,
  4.     "makefile.parseBuildLog": false,
  5.     "makefile.buildBeforeLaunch": true,
  6.     "makefile.phonyTargets": ["all"],

  7.     "makefile.makePath": "C:\\msys64\\usr\\bin\\make.exe",

  8.     "makefile.configurations": [
  9.       {
  10.         "name": "BL602 Build",
  11.         "makeArgs": [
  12.           "-j${env:NUMBER_OF_PROCESSORS}",
  13.           "CONFIG_CHIP_NAME=BL602",
  14.           "CONFIG_LINK_ROM=1"
  15.         ],
  16.         "overrideMakefilePath": "${workspaceFolder}/Makefile",
  17.         "environmentVariables": {
  18.           "PATH": "C:\\msys64\\usr\\bin;${env:PATH}"
  19.         }
  20.       },
  21.       {
  22.         "name": "BL602 Flash",
  23.         "makeArgs": [
  24.           "CONFIG_CHIP_NAME=BL602",
  25.           "CONFIG_LINK_ROM=1",
  26.           "flash",
  27.           "SERIAL_PORT=COM10",
  28.           "SERIAL_BAUDRATE=921600",
  29.         ],
  30.         "overrideMakefilePath": "${workspaceFolder}/Makefile",
  31.         "environmentVariables": {

  32.           "PATH": "C:\\msys64\\usr\\bin;${env:PATH}"
  33.         }
  34.       }
  35.     ]

  36. }
复制代码


8.png
如图点击,可以选择执行编译和下载。
9.png
按这个按钮执行选择。

运行编译的执行情况:
10.png
运行下载的执行情况:
11.png

四、回归原生Makefile
Ai-Thinker-WB2下新建个Makefile,内容如下:
  1. # 默认编译所有子目录
  2. #SUBDIRS := $(shell find . -mindepth 1 -maxdepth 1 -type d -exec test -f {}/Makefile \; -print)
  3. SUBDIRS := applications/bluetooth/ble_slave
  4. COMX :=COM10
  5. BAUDRATE :=921600

  6. DIRS ?= $(SUBDIRS)  # 默认全部编译,但可通过 make DIRS="dir1 dir2" 指定

  7. .PHONY: all clean flash $(DIRS)
  8. all: $(DIRS)

  9. $(DIRS):
  10.         $(MAKE) -C $@ -j8

  11. clean:
  12.         $(MAKE) -C $(DIRS) clean
  13. #$(foreach dir,$(DIRS),$(MAKE) -C $(dir) clean;)

  14. flash:
  15.         $(MAKE) -C $(DIRS) flash p=$(COMX) b=$(BAUDRATE)
  16. #$(foreach dir,$(DIRS),$(MAKE) -C $(dir) flash p=$(COMX) b=$(BAUDRATE);)
复制代码


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

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

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




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

使用道具 举报

不错不错~
非常棒呀~
有大佬完善一个插件就好了
学习了
命令能知道具体干了啥。用图形化的点点点就很迷。 不知其所以然
您需要登录后才可以回帖 立即登录
高级模式
返回
统计信息
  • 会员数: 28247 个
  • 话题数: 40195 篇