# fw-AC63_BT_SDK
**Repository Path**: Jieli-Tech/fw-AC63_BT_SDK
## Basic Information
- **Project Name**: fw-AC63_BT_SDK
- **Description**: Firmware for Generic Bluetooth SDK(AC63 series), Support AC631N/AC635N/AC636N/AC637N/AC632N, compatible with AC69 series without audio support.
- **Primary Language**: C
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 241
- **Forks**: 129
- **Created**: 2021-05-27
- **Last Updated**: 2026-10-08
## Categories & Tags
**Categories**: hardware
**Tags**: 蓝牙
## README
[tag download]:https://github.com/Jieli-Tech/fw-AC63_BT_SDK/tags
[tag_badgen]:https://img.shields.io/github/v/tag/Jieli-Tech/fw-AC63_BT_SDK?style=plastic&logo=bluetooth&labelColor=ffffff&color=informational&label=Tag&logoColor=blue
# fw-AC63_BT_SDK [![tag][tag_badgen]][tag download]
**杰理 AC63 系列通用蓝牙 SDK 固件程序**
[English](./README-en.md) · [文档中心](https://doc.zh-jieli.com/AC63/zh-cn/master/index.html) · [SDK 版本历史](https://doc.zh-jieli.com/AC63/zh-cn/master/other/version/index.html) · [报告问题](https://github.com/Jieli-Tech/fw-AC63_BT_SDK/issues)
---
## 📋 目录
- [一、概述](#一概述)
- [二、支持的芯片与平台](#二支持的芯片与平台)
- [三、环境搭建](#三环境搭建)
- [四、快速开始](#四快速开始)
- [五、工程结构](#五工程结构)
- [六、应用选择指南](#六应用选择指南)
- [七、编译指南](#七编译指南)
- [八、烧录与升级](#八烧录与升级)
- [九、配置说明](#九配置说明)
- [十、常见问题](#十常见问题)
- [十一、社区与支持](#十一社区与支持)
- [十二、认证信息](#十二认证信息)
- [十三、免责声明](#十三免责声明)
---
## 一、概述
`fw-AC63_BT_SDK` 是杰理科技为 AC63 系列芯片提供的通用蓝牙 SDK 固件开发包。本 SDK 基于 Zephyr RTOS 实时操作系统,提供完整的蓝牙协议栈和丰富的应用示例,支持以下应用场景:
| 应用类型 | 典型产品 |
|---------|---------|
| **SPP + BLE 透传/数传** | 数据采集、智能设备、FindMy、Dongle |
| **HID 人机交互** | 蓝牙键盘、鼠标、遥控器、自拍器、游戏手柄 |
| **Bluetooth Mesh** | 智能照明、传感器网络、天猫精灵/涂鸦/腾讯连连接入 |
本仓库包含 SDK Release 版本代码及示例工程,需配合对应命名规则的库文件 (`lib.a`) 和子仓库进行编译。同时引用了 [Zephyr RTOS](https://github.com/zephyrproject-rtos/zephyr) 等开源项目。
---
## 二、支持的芯片与平台
### 2.1 芯片系列
| 芯片平台 | 芯片型号 | 适用应用 |
|---------|---------|---------|
| **bd19** | AC6321A / AC6323A / AC6328A / AC6328B / AC6329B / AC6329C / AC6329E / AC6329F / AC632N | spp_and_le / hid / mesh |
| **br23** | AC6351D / AC635N | spp_and_le / hid / mesh |
| **br25** | AC6363F / AC6366C / AC6368A / AC6368B / AC6369C / AC6369F / AC636N | spp_and_le / hid / mesh |
| **br34** | AC6381A / AC6385A / AC638N | spp_and_le / hid / mesh |
### 2.2 蓝牙协议支持
| 蓝牙规范 | QDID | 状态 |
|---------|------|------|
| Core v5.4 | [QDID 222830](https://launchstudio.bluetooth.com/ListingDetails/193923) | ✅ 已认证 |
---
## 三、环境搭建
### 3.1 前提条件
| 系统 | 说明 |
|------|------|
| **Windows** | ✅ 推荐使用 Code::Blocks IDE 编译 |
| **Linux** | ✅ 支持 Makefile 命令行编译 |
### 3.2 安装编译工具链
1. 下载并安装 **杰理编译工具链**:[下载链接](https://doc.zh-jieli.com/Tools/zh-cn/dev_tools/dev_env/index.html)
2. Linux 用户可从此处下载:[pkgman.jieliapp.com](http://pkgman.jieliapp.com/doc/all)
- 下载后解压到 `/opt/jieli` 目录
- 确保 `/opt/jieli/common/bin/clang` 存在
3. 安装完成后,打开终端/命令提示符验证:
```bash
# 验证工具链是否安装成功
clang --version
```
### 3.3 安装烧录工具
| 工具 | 用途 | 获取方式 |
|------|------|---------|
| **USB 升级工具** | 将固件烧录到目标板 | [申请链接](https://item.taobao.com/item.htm?id=620295020803) · [使用文档](https://doc.zh-jieli.com/Tools/zh-cn/dev_tools/forced_upgrade/index.html) |
| **生产烧写工具** | 量产/裸片烧写 | [使用文档](https://doc.zh-jieli.com/Tools/zh-cn/mass_prod_tools/burner_1tuo2/index.html) |
| **无线测试盒** | 空中升级/射频标定/产品测试 | [申请链接](https://item.taobao.com/item.htm?id=620942507511) · [使用文档](https://doc.zh-jieli.com/Tools/zh-cn/mass_prod_tools/testbox_1tuo2/index.html) |
---
## 四、快速开始
### 4.1 克隆仓库
```bash
git clone https://github.com/Jieli-Tech/fw-AC63_BT_SDK.git
cd fw-AC63_BT_SDK
```
### 4.2 选择合适的工程
根据你的产品需求选择应用工程:
```
SDK 根目录
├── apps/spp_and_le/ # SPP + BLE 透传/数传应用
├── apps/hid/ # HID 人机交互设备应用
└── apps/mesh/ # Bluetooth Mesh 物联应用
```
### 4.3 选择芯片型号和板级配置
每个应用目录下都有 `board/` 子目录,按芯片平台划分:
```
apps/hid/board/
├── bd19/ # AC632N 系列 (32个板级配置)
├── br23/ # AC635N 系列
├── br25/ # AC636N 系列
└── br34/ # AC638N 系列
```
每个板级目录下包含:
- `Makefile` - 编译脚本
- `board_*.cbp` - Code::Blocks 工程文件
- `board_xxx.c` - 板级初始化代码
- `board_xxx_cfg.h` - 板级配置(引脚、外设等)
- `board_xxx_global_build_cfg.h` - 全局编译配置(功能开关)
### 4.4 编译并烧录
**方式一:Code::Blocks(推荐 Windows 用户)**
```bash
# 1. 进入对应的板级目录
cd apps/hid/board/bd19/
# 2. 双击打开 .cbp 工程文件(如 AC632N_hid.cbp)
# 3. 在 Code::Blocks 中点击 Build → Build (Ctrl+F9)
# 4. 编译成功后,使用 USB 升级工具烧录生成的 .hex 文件
```
**方式二:Makefile 命令行**
```bash
# Windows 用户
双击 tools/make_prompt.bat 打开命令行环境
# Linux/macOS 用户
cd SDK 根目录
# 编译完整工程
make ac632n_spp_and_le
# 编译完成后,在对应 board 目录下找到生成的 .hex 文件
```
> **💡 提示**:所有支持的 target 名称见 [Makefile](https://gitee.com/Jieli-Tech/fw-AC63_BT_SDK/blob/master/Makefile) 开头的注释。
**方式三:VS Code 编译**
仓库已预配置 VS Code 任务,按 `Ctrl+Shift+B` 即可选择编译目标。
---
## 五、工程结构
```
fw-AC63_BT_SDK/
├── apps/ # 应用层代码
│ ├── common/ # 公共模块(跨工程共享)
│ │ ├── audio/ # 音频编解码、音量控制
│ │ ├── bt_common/ # 蓝牙通用接口
│ │ ├── cJSON/ # JSON 解析库
│ │ ├── debug/ # 调试工具
│ │ ├── device/ # 外设驱动(按键、USB、传感器等)
│ │ ├── jl_kws/ # 杰理关键词唤醒
│ │ ├── music/ # 音乐播放
│ │ ├── update/ # 固件升级
│ │ └── third_party_profile/ # 第三方协议(SigMesh、涂鸦、腾讯连连、HiLink)
│ ├── spp_and_le/ # 📌 SPP + BLE 应用
│ ├── hid/ # 📌 HID 应用(键盘/鼠标/遥控器/游戏手柄)
│ └── mesh/ # 📌 Mesh 应用
├── cpu/ # CPU 相关代码与库文件
│ ├── bd19/ → br34/ # 各芯片平台的 lib.a 库文件 + 工具脚本
│ ├── .../
│ └── br34/
├── include_lib/ # 头文件(bt协议栈、驱动、媒体、系统等)
├── doc/ # 文档资源
│ ├── datasheet/ # 芯片数据手册
│ ├── architure/ # SDK 架构文档
│ ├── FAQ/ # 常见问题
│ └── .../
├── tools/ # 编译工具与脚本
│ └── make_prompt.bat # Windows 编译命令行入口
├── Makefile # 顶层 Makefile(统一编译入口)
├── default.workspace # Code::Blocks 工作空间
└── .vscode/ # VS Code 配置(tasks.json 预定义编译任务)
```
### 5.1 关键目录说明
| 目录 | 作用 |
|------|------|
| `apps/*/board/` | **板级配置**:引脚定义、外设初始化、编译选项 |
| `apps/*/examples/` | **示例应用**:可直接参考或修改的参考实现 |
| `apps/*/include/` | **应用头文件**:模块接口定义 |
| `apps/*/config/` | **库配置**:各模块的裁剪配置(决定编译哪些库功能) |
| `cpu/*/liba/` | **预编译库**:`*.a` 静态库文件(btctrler、btstack、media 等) |
| `cpu/*/tools/` | **烧录工具**:download.bat、fw_add.exe、isd_download.exe 等 |
---
## 六、应用选择指南
### 6.1 SPP + BLE (`apps/spp_and_le/`)
| 项目 | 说明 |
|------|------|
| **适用场景** | 数据透传、扫码枪、蓝牙 Dongle、FindMy、信标、多机连接 |
| **关键特性** | SPP 经典蓝牙 + BLE 双模,支持 AT 指令控制 |
| **参考文档** | [SPP_LE 开发文档](https://doc.zh-jieli.com/AC63/zh-cn/master/module_demo/spple/index.html) |
### 6.2 HID (`apps/hid/`)
| 项目 | 说明 |
|------|------|
| **适用场景** | 蓝牙键盘、鼠标、遥控器、自拍器、游戏手柄(吃鸡王座)、语音遥控器 |
| **示例应用** | `examples/mouse_single/` 鼠标 / `examples/keyboard/` 键盘 / `examples/gamebox/` 游戏手柄 / `examples/voice_remote_control/` 语音遥控 |
| **参考文档** | [HID 开发文档](https://doc.zh-jieli.com/AC63/zh-cn/master/module_demo/hid/index.html) |
### 6.3 Mesh (`apps/mesh/`)
| 项目 | 说明 |
|------|------|
| **适用场景** | 智能照明、传感器网络、天猫精灵/涂鸦/腾讯连连接入 |
| **示例应用** | `generic_onoff_server` / `light_lightness_server` / `AliGenie_fan` / `TUYA_light` / `tencent_mesh` |
| **参考文档** | [Mesh 开发文档](https://doc.zh-jieli.com/AC63/zh-cn/master/module_demo/mesh/index.html) |
### 6.4 即将推出
| 应用 | 说明 |
|------|------|
| **IoT (IPv6 / 6LoWPAN)** | 基于 IPv6 的物联网应用 |
| **2.4G 私有无线** | 厂商自定义 2.4G 无线协议 |
---
## 七、编译指南
### 7.1 编译命令速查表
以下命令在 SDK 根目录下执行:
| 目标 | 芯片 | 应用 | 命令 |
|------|------|------|------|
| AC632N | bd19 | spp_and_le | `make ac632n_spp_and_le` |
| AC635N | br23 | spp_and_le | `make ac635n_spp_and_le` |
| AC636N | br25 | spp_and_le | `make ac636n_spp_and_le` |
| AC638N | br34 | spp_and_le | `make ac638n_spp_and_le` |
| AC632N | bd19 | hid | `make ac632n_hid` |
| AC635N | br23 | hid | `make ac635n_hid` |
| AC636N | br25 | hid | `make ac636n_hid` |
| AC638N | br34 | hid | `make ac638n_hid` |
| AC632N | bd19 | mesh | `make ac632n_mesh` |
| AC635N | br23 | mesh | `make ac635n_mesh` |
| AC636N | br25 | mesh | `make ac636n_mesh` |
| AC638N | br34 | mesh | `make ac638n_mesh` |
| **全部** | 全部 | 全部 | `make all` |
| **清理全部** | 全部 | 全部 | `make clean` |
### 7.2 清理单个工程
```bash
make clean_ac632n_spp_and_le # 清理 ac632n_spp_and_le 编译产物
make clean_ac632n_hid # 清理 ac632n_hid 编译产物
make clean_ac632n_mesh # 清理 ac632n_mesh 编译产物
```
### 7.3 Linux 编译注意事项
```bash
# 1. 确保文件描述符限制足够大(链接阶段需要打开大量文件)
ulimit -n 8096
# 2. 进入 SDK 根目录执行编译
make ac632n_spp_and_le -j`nproc`
```
### 7.4 常见编译错误
| 错误提示 | 解决方法 |
|---------|---------|
| `clang: command not found` | 未安装杰理编译工具链,或环境变量未配置 |
| `Too many open files` | Linux 下执行 `ulimit -n 8096` 增加文件描述符限制 |
| `cannot find -lxxx` | 缺少对应的 `.a` 库文件,检查 `cpu/*/liba/` 目录 |
| `undefined reference to ...` | 功能裁剪配置未包含对应模块,检查 `lib_*_config.c` |
---
## 八、烧录与升级
### 8.1 首次烧录
1. **连接硬件**:将开发板通过 USB 或 UART 连接到 PC
2. **进入编程模式**:按住开发板上的烧录按键,然后复位或重新上电
3. **打开 USB 升级工具**:启动 `isd_download.exe`
4. **选择固件**:选择编译生成的 `.hex` 文件
5. **开始烧录**:点击下载按钮,等待烧录完成
> **⚠️ 注意**:烧录前请确保 USB 升级工具正确连接且目标板已进入编程模式。
> 详细的 INI (cpu\xx\tools\isd_config_rule.c)配置说明请参考:[下载脚本配置文档](https://doc.zh-jieli.com/AC63/zh-cn/master/getting_started/project_download/INI_config.html)以及[官网说明](https://doc.zh-jieli.com/Tools/zh-cn/mass_prod_tools/common_function/index.html)
### 8.2 OTA 升级
支持单备份和双备份蓝牙 OTA 升级,详见:[OTA 开发文档](https://doc.zh-jieli.com/AC63/zh-cn/master/module_demo/ota/index.html)
---
## 九、配置说明
### 9.1 功能裁剪配置
在每个应用工程的 `config/` 目录下,通过以下配置文件可以灵活裁剪 SDK 功能,减小固件体积:
```bash
apps/hid/config/
├── lib_btctrler_config.c # 蓝牙控制器配置
├── lib_btstack_config.c # 蓝牙协议栈配置
├── lib_driver_config.c # 驱动模块配置
├── lib_media_config.c # 媒体模块配置
├── lib_profile_config.c # 蓝牙 Profile 配置
├── lib_system_config.c # 系统模块配置
├── lib_update_config.c # 升级模块配置
└── log_config.c # 日志输出配置
```
### 9.2 板级配置
每个板级目录下的 `board_xxx_cfg.h` 包含:
- **引脚映射**:UART / SPI / I2C / GPIO 等外设的引脚分配
- **外设使能**:开启或关闭特定外设模块
- **时钟配置**:CPU 频率、外设时钟源
`board_xxx_global_build_cfg.h` 包含:
- **功能开关**:按需启用/禁用特定功能
- **内存配置**:堆栈大小、缓冲池大小
---
## 十、常见问题
### 10.1 开发流程相关
**Q: 如何创建自己的工程?**
A: 复制 `apps/` 下对应应用的 `board/` 目录中与芯片型号最接近的板级配置,修改 `board_xxx_cfg.h` 中的引脚和外设配置即可。
**Q: 如何添加新的芯片型号支持?**
A: 在 `cpu/` 下创建对应的平台目录,提供 `liba/` 库文件和 `tools/` 烧录工具,然后在 `apps/*/board/` 下添加对应的板级目录。
### 10.2 编译相关
**Q: Windows 下编译报错 `make` 不是有效命令?**
A: 使用 `tools/make_prompt.bat` 进入预配置的命令行环境,该脚本已设置好所有环境变量和 `make` 的路径。
**Q: 如何加快编译速度?**
A: 使用 `-j` 参数进行并行编译,如 `make ac632n_spp_and_le -j4`。
### 10.3 调试技巧
- **串口日志**:通过 `log_config.c` 配置日志输出等级和通道
- **GPIO Debug**:利用空闲 GPIO 输出调试波形,测量时序
- **更多问题**:请参考 [FAQ 文档](./doc/FAQ/)
---
## 十一、社区与支持
### 技术交流
| 平台 | 群号/链接 | 状态 |
|------|-----------|------|
| **钉钉 1群** | `31691148` | ❌ 已满 |
| **钉钉 2群** | `3375034077` | ❌ 已满 |
| **钉钉 3群** | `107855006323` | ✅ 可加入 |
### 资源链接
| 资源 | 链接 |
|------|------|
| 📖 **在线文档中心** | [doc.zh-jieli.com/AC63](https://doc.zh-jieli.com/AC63/zh-cn/master/index.html) |
| 📄 **芯片数据手册** | [SoC 数据手册扼要](https://doc.zh-jieli.com/vue/#/docs/ac63) / [本地下载](./doc/datasheet) |
| 📚 **SDK 版本历史** | [版本发布记录](https://doc.zh-jieli.com/AC63/zh-cn/master/other/version/index.html) |
| 🏗️ **SDK 架构文档** | [模块架构说明](./doc/architure) |
| 🛒 **开发板购买** | [杰理官方店铺](https://shop321455197.taobao.com/) |
| 🐛 **问题反馈** | [Gitee Issues](https://gitee.com/Jieli-Tech/fw-AC63_BT_SDK/issues) |
---
## 十二、认证信息
本 SDK 支持的蓝牙协议栈已通过蓝牙 SIG 认证:
| 蓝牙规范 | QDID | 认证链接 |
|---------|------|---------|
| Core v5.4 | QDID 222830 | [查看认证详情](https://launchstudio.bluetooth.com/ListingDetails/193923) |
---
## 十三、免责声明
`fw-AC63_BT_SDK` 支持 AC63 系列芯片开发。AC63 系列芯片支持通用蓝牙常见应用,可作为开发、评估、样品及量产使用,对应 SDK 版本请见 [Tags](https://github.com/Jieli-Tech/fw-AC63_BT_SDK/tags) 和 [Releases](https://gitee.com/Jieli-Tech/fw-AC63_BT_SDK/tags)。
---
Copyright © 2024-2026 珠海杰理科技股份有限公司. All rights reserved.