前言
在上手之前看了下论坛环境搭建的帖子,心里一紧,申请的时候光想着开发应用应该不难,没想到搭建环境就有诸多难处。
折腾一番,分别尝试
- Windows Git bash -- 失败
- 树莓派5 -- 失败
- Linux 编译,Windows 烧录 -- 成功
- Windows MSYS2 -- 成功
配置开发环境 -- Windows Git bash -- 失败
我的电脑已经配置过 make 环境,之前跑通过 CMake+GCC 编译哪一套,想着 AI-WB2-32S-Kit 使用 make 编译,差异没多大,就想直接下载 SDK 然后开始编译,想简单了。没跑通。
仓库地址:https://github.com/Ai-Thinker-Open/Ai-Thinker-WB2
克隆下来

启动 Git Bash,进入 applications/get-started/helloworld 输入 make 编译,报错。
看到 Makefile 文件中有一段配置 BL60X_SDK_PATH ,想着直接从环境变量配置是不是能修复问题。
即便添加 BL60X_SDK_PATH 到环境变量,还是报错(报错原因很多,就没有一一截图),又不想安装 Eclipse, MSYS 等软件,放弃了。

git bash 中 make 报错 -- 工具链不支持

$ make
J:/LinTeX9527/MyEVAL/Ai-Thinker/WB2-32S-Kit/SDK/Ai-Thinker-WB2/make_scripts_riscv/project.mk:81: *** BL60X_SDK_PATH cannot contain colons. If overriding BL60X_SDK_PATH on Windows, use MSYS Unix-style /c/dir instead of C:/dir. Stop.
无论如何 toolchain 只支持三种环境 Darwin / Linux / MSYS 所以 git bash 中的 uname 返回 MINGW64 是不被支持的,不用浪费时间。
配置开发环境 -- 树莓派5 -- 失败
树莓派5也是 Linux 开发环境,想直接套用官方的 Linux 开发环境,按照教程操作,没想到编译工具是 x86-64 指令集,在树莓派5上不识别,只能放弃。
安装必要的开发工具
sudo apt install build-essential python3 python3-pip git screen

下载 SDK 到本地
由于直连 github.com 有问题,从 gitee 下载,速度杠杠滴。
git clone --recursive https://gitee.com/Ai-Thinker-Open/Ai-Thinker-WB2

修改工具链权限
由于树莓派5是Linux环境,所以执行下面的命令
cd toolchain/riscv/Linux
. chmod755.sh
编译 helloworld -- 出错,编译工具 Exec format error 格式不支持
进入 applications/get-started/helloworld 目录,输入 make 命令开始编译,结果报错了,如下图所示:

单独去查看工具链文件 riscv64-unknown-elf-gcc --version 查看版本号,结果这个二进制文件不被支持。
输入命令 readlef -h riscv64-unknown-elf-gcc 却看到这个二进制文件是 x86-64 版本,不被树莓派5支持,很正常的。
放弃了树莓派5开发。

配置开发环境 -- Linux 主机 -- PASS
下载 SDK
git clone --recursive https://gitee.com/Ai-Thinker-Open/Ai-Thinker-WB2
修改工具链权限
cd toolchain/riscv/Linux
. chmod755.sh
编译 helloworld
进入 applications/get-started/helloworld 输入 make 顺利编译,生成 build_out/helloworld.bin 文件

后话
这个环境用的好好的,没几天园区停电,公司服务器都关闭了,然后再开机找不到这个虚拟机了。白折腾了。
配置开发环境 -- Windows MSYS2 -- 几经折腾终于成功
参考:https://bbs.ai-thinker.com/forum.php?mod=viewthread&tid=45161&_dsign=869c2c79
MSYS2 下载
官网地址:https://www.msys2.org/
下载当前最新版本:msys2-x86_64-20250221.exe
MSYS2 (Minimal SYStem 2)是一个为 Windows 平台提供的软件开发环境,主要用于构建和运行类 Unix 工具链。它提供了一个类似于 Linux 的命令行环境,允许用户在 Windows 上使用 GNU 工具链、包管理器以及各种开源软件。
MSYS2 的核心是一个轻量级的 POSIX 兼容层,基于 Cygwin 和 MinGW-w64 技术。通过 MSYS2,开发者可以在 Windows 系统上方便地编译、安装和运行大量的开源软件,而无需切换到 Linux 或 macOS。
MSYS2的主要作用
- 提供类Unix开发环境:提供了一个 Bash Shell 和一系列常用的 GNU 工具(如 GCC, Make, Git 等),使得开发者能够在Windows上模拟一个类Unix的开发环境;
- 强大的包管理功能:使用 Pacman 包管理器,可以方便地安装、更新和管理各种软件包;
- 支持 MinGW-w64 工具链:用于生成原生 Windows 应用程序,开发者可以使用 MSYS2 编译出完全不依赖于 MSYS2 运行时环境的 Windows 可执行文件;
- 简化跨平台开发:对于需要在 Windows 和其他操作系统之间进行代码移植的开发者来说,MSYS2 提供了一个统一的开发环境,减少了因为平台差异导致的兼容性问题;
- 支持多种编程语言和工具:MSYS2 支持多种编程语言(如C/C++/Python/Ruby等)以及开发工具(如CMake/Ninja等),适合各种类型的开发需求
MSYS2 安装
双击安装

设置安装路径

创建启动菜单快捷方式

开始安装





第一次运行 msys2 发现没有安装 gcc 和 make 工具

MSYS 终端类型
切记,MSYS2 安装之后支持多种终端,分别支持不同类型的工具链,这里必须使用 MSYS2 MSYS 类型的终端。

pacman 安装 git -- 安不安装无所谓
msys2 中没必要安装 git,因为安装了 git bash ,可以在 git bash 中拉取代码,用小乌龟管理代码,无需在 msys2 中通过 git 管理代码。


pacman 安装 make
输入命令 pacman -S make

make 编译报错
被这个报错卡了很久,下面安装 Eclipse 配置 msys2 环境,编译也报了同样的错误,把人搞崩溃了。

解决办法 -- 添加工具链到 msys2 的 PATH 中
上面 make 编译报错,思来想去很久,想着通过命令行调用 riscv64-unknown-elf-gcc.exe 工具直接来编译工程。既然 msys2 是一个类 Unix 环境,有自己的 PATH,尝试着把工具链路径添加到这个 PATH 应该可以。
pacman -S vim 安装 vim 工具,然后 vim ~/.bash_profile 在文件末尾修改 PATH 变量,如下图所示,强制把 Ai-Thinker-WB2/toolchain/riscv/MSYS/bin 添加到 PATH 变量中。

保存该文件,执行命令 source ~/.bash_profile 或者新开一个 msys2 窗口,输入 riscv64-unknown-elf-gcc --version 能打印版本号,说明添加PATH成功了。

进入 applications/get-started/blink 目录,输入命令 make -j8 开始编译,顺利编译生成 build_ouit/blink.bin 文件。(如下图,我之前编译过)。编译其他的工程也一样,没有报错。

此外在 ~/.bash_profile 中导出一个环境变量 BL60X_SDK_PATH ,为 SDK 所在路径,为的是解决 make 过程中多次检测 BL60X_SDK_PATH 路径问题。

Eclipse -- 接近成功,放弃了
下载地址:
https://www.eclipse.org/downloads/
Eclipse 导入工程,编译出错
参考这个帖子:【我失败了】
https://bbs.ai-thinker.com/forum.php?mod=viewthread&tid=45149&extra=page%3D1&_dsign=ad5d8dd9
我在配置工程后,还是出现 make 编译报错问题,同上面的错误一样,放弃了。立刻卸载 Eclipse 删除干净。
后来几经折腾又把 MSYS2 环境调通了,没有动力再折腾 Eclipse 环境。
烧写工具 -- 1.8.0 -- 不推荐
在 Linux 平台开发代码,在 Windows 平台使用烧写工具烧写程序。
下载工具网页: https://docs.ai-thinker.com/wb2
选择 v1.8.0 版本。

下载到本地并解压,双击 BLDevCube.exe 打卡

烧录步骤演示
- 选择 IOT
- 加载分区表,注意它的路径是当前下载工具的目录下 /chips/bl602/partition/partition_cfg_4M.toml
- 选择固件,即刚才编译生成的 get-started/helloworld/build_out/helloworld.bin
- 配置下载端口,选择 UART,选择对应串口,其他用默认配置
- 打开 UART,确保没有其他的串口工具占用次串口
- 点击 Create & Download

如下提示 Please Press Reset Key!
就按下板卡上的 Reset 按键,继续烧写。

【有问题】某次烧写出现上面的提示,我按了 Reset 键,还是无法开始烧写,这个问题没能解决,后来我换成 v1.7.4 烧写工具,就解决了。
烧写完成自动释放串口

helloworld 串口日志
打开其他串口工具,波特率115200,查看串口日志

看到亲切的 Hello World 差点泪目。
烧写工具 -- v1.7.4 -- 推荐
在尝试了 v1.8.0 版本之后,开发板放置一个晚上,第二天开发板打印乱码了。重新烧了程序,复位,也不行。
后来从网页下载了烧写工具 v1.7.4 版本。配置方法、参数和 v1.8.0 版本大致相同。
- 串口配置,选择板卡对应的串口,波特率921600即可,不用修改,其他参数默认;
- 分区表,选择当前工具目录下对应的分区表文件,如 chips\bl602\partition\partition_cfg_4M.toml
- 设备树参数,选择当前工具目录下对应的参数文件,如 chips\bl602\device_tree\bl_factory_params_IoTKitA_40M.dts
- 二级boot文件,选择当前工具下对应的二级 boot 文件,如 chips\bl602\builtin_imgs\boot2_isp_v5.6\boot2_isp_debug.bin
- 固件,即编译生成的 build_out/xxx.bin 文件,这里使用 applications\wifi\quick_connect\build_out\main.bin
- 再点击 Create & Downloads 之前,先按住板卡 BOOT 键再按下 RST 键,随后依次释放 RST 键、BOOT 键,让板卡处于下载状态,然后点击烧写工具的 Create & Downloads 按键即可开始烧写。

波特率修改 --> 2Mbps
一方面为了更快的打印日志,一方面为了解决二级 boot 和 应用程序波特率不一致导致的串口乱码,我特意把应用的串口波特率也改成了 2000000 bps,修改如下代码:

至此既能看到二级boot打印日志,也能看到应用打印日志,都不乱码:

