以我最近实际接触的中科蓝讯 BT891x 项目为例,刚开始最先要做的就是把开发环境搭起来:准备资料和工具、打开工程、编译生成 app.dcf,再用 Downloader 完成后续烧录。
不同 SDK 版本和开发板的目录、工具版本可能不一样,最终以当前资料包和工程说明为准。
一、准备资料和工具
如果手上的 SDK 对应特定的 TWS 开发板,原理图和相关硬件资料也要一并保存好,后面核对硬件配置、下载和外设问题时都会用到。
刚开始做 BT891x 时,主要先准备下面四项资料和工具:
| 内容 | 先拿它做什么 |
|---|---|
| BT891x 固件 SDK | 后续的功能开发主要就在这里进行 |
| CodeBlocks 开发环境 | 打开 .cbp 工程并发起编译 |
| RV32 Toolchain | 供 CodeBlocks 调用的 RISC-V 编译工具链 |
| Downloader | 读取 app.dcf,进行配置和烧录处理 |
如果当前使用的是串口下载方式,还要保留蓝讯提供的串口驱动。资料包里的驱动通常以 CP210x 驱动包的形式提供,用于让电脑识别 CP2102 或 XLink 模块对应的 COM 口。

CodeBlocks 和 RV32 Toolchain 都是双击安装程序后,按提示一路选择 Next、默认路径安装即可。CodeBlocks 用来打开 .cbp 工程并编译,RV32 Toolchain 是真正执行编译的工具。
如果使用串口下载,按当前下载器对应的驱动安装即可。下载器和设备接入电脑后,系统能够识别出 COM 口,Downloader 才能继续扫描设备。
Downloader 不需要安装,解压后直接运行 Downloader.exe 即可。
二、编译与烧录
环境装完后,我不会马上改功能,而是先在 CodeBlocks 中打开 SDK 里的 .cbp 工程并编译一次。
第一次打开工程时,可以在 Settings -> Compiler 中确认当前编译器为 RISCV32。如果列表里没有这个选项,通常是 RV32 Toolchain 没有安装成功,或者版本和 SDK 不匹配。确认后直接编译,编译日志没有报错就说明环境基本跑通了。
编译通过后,到当前工程目录下的 Output\bin 查看构建产物。后面 Downloader 会使用其中的 app.dcf。

接入下载器和设备后,打开 Downloader,先让 DownFile 指向当前工程刚生成的:
Output\bin\app.dcf
然后在“配置”中勾选当前工程对应的配置,打开串口并确认 Downloader 已经识别到 COM 口。状态显示串口正常打开后,再点击“开始”烧录。

三、CP2102 和 XLink 两种串口模块
下载时,Downloader 是电脑端的软件;它需要通过串口模块和耳机通信。以我看到的使用说明来说,常见的是 CP2102 和 XLink 两种串口模块方案。
CP2102 是常见的 USB 转串口模块。如果接到耳机的单线通信 IO 上,需要在 TX 和 RX 之间增加 200 Ω 电阻,把原本的双线串口方式转换成单线通信方式。
XLink 可以理解为蓝讯提供的成品串口模块。它和 CP2102 的用途相同,但模块内部已经在 TX 和 RX 之间集成了 200 Ω 电阻,使用时不需要再自己额外加这一颗电阻。
不管用哪种模块,电脑端都是通过 Downloader 选择 app.dcf、打开对应 COM 口后再发起烧录。


四、写在最后
前面这套流程里,CodeBlocks 主要负责打开工程和编译,Downloader 负责烧录。日常浏览、搜索和修改代码时,我个人更习惯用 VS Code。它的插件生态比较丰富,代码搜索、跳转和 C/C++ 语法提示用起来也更顺手。
我会直接用 VS Code 打开 BT891x SDK 根目录,后续改代码主要在这里完成;需要生成固件时,再回到 CodeBlocks 打开 .cbp 工程编译,然后用 Downloader 烧录。