本帖最后由 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中
- 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下的交叉编译工具
当然可以把这行注释,启用下一行
- CONFIG_TOOLPREFIX ?= riscv64-unknown-elf-
复制代码 这样会使用系统路径中设置的交叉编译工具,也不再挑MSYS版本。
进入MSYS2后,运行code进入VSCODE
打开get-started\helloworld文件夹
可以配置编译、下载、clean环境了
一、终端->运行任务方式
在.vscode下新建tasks.json,内容如下:
- {
- "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)方式
参考:https://bbs.ai-thinker.com/forum ... =23&_dsign=92246bae
在.vscode下新建launch.json,内容如下:
- {
- "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,增加如下内容:
- {
- "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,内容如下:
- # 默认编译所有子目录
- #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、用命令烧录比用图形化工具操作还简单点。
|