在杰理AC792N/AC7925B系列芯片开发中,工程配置是核心环节,直接决定功能实现、硬件适配和资源占用。本文聚焦SDK工程配置核心内容,详细解析配置文件作用、修改方法及音频链路配置,助力开发者快速完成工程裁剪与硬件适配,适用于蓝牙TWS、音频播放等场景。
开发环境:杰理AC792N SDK、WL83核心板、C语言嵌入式开发
一、SDK核心配置文件详解(重点!工程裁剪必备)
AC792N SDK的配置文件分为总配置、板级配置、芯片配置、蓝牙配置四大类,修改对应文件即可实现功能裁剪、硬件适配、参数调整,无需改动底层驱动代码,是开发效率提升的关键。
1.1 总配置头文件:app_config.h
路径 :include/app_config.h
核心作用:工程总开关,负责功能使能、资源分配、模块裁剪,是开发中修改频率最高的文件,核心配置项如下:
-
音频输入源定义(指定麦克风、线路输入等音频来源)
-
功能模块总开关(核心裁剪关键,开启/关闭无关模块减少资源占用)
-
Flash/存储资源分配(划分存储分区,适配不同容量Flash)
-
调试功能开关(开启/关闭日志输出,方便问题定位)
-
网络/WiFi/AI平台配置(按需开启对应功能模块)
-
音频算法配置(通话降噪、回声消除等核心算法参数)
-
蓝牙&TWS耳机配置(蓝牙总开关及子功能配置)
-
LE Audio配置(最新蓝牙音频标准,适配高清音频场景)
-
第三方生态协议、UI界面配置(适配外部协议及显示需求)
蓝牙配置示例(高频修改):
// 蓝牙总开关
#define CONFIG_BT_ENABLE
#ifndef CONFIG_BT_ENABLE
#undef TCFG_APP_BT_EN
#define TCFG_APP_BT_EN 0
#endif
// 蓝牙子功能使能(按需开启,减少资源占用)
#define TCFG_USER_BT_CLASSIC_ENABLE 1 // 经典蓝牙功能(如A2DP音乐播放)
#define TCFG_USER_BLE_ENABLE 1 // BLE功能使能(如TWS连接、IoT通信)
#define TCFG_USER_EMITTER_ENABLE 0 // 蓝牙发射功能(无需则关闭)
1.2 板级配置目录:board/wl83
该目录是硬件适配的核心,属于板级配置核心载体,不同型号核心板、不同硬件布局,只需修改此目录下的文件,无需改动驱动代码,极大提升适配效率,核心细节及注意事项如下:
-
板级配置核心原则:"底层不变、上层适配",所有板级修改均围绕"硬件引脚、外设参数、功能开关",不触及驱动底层逻辑。
-
适配注意事项:修改板级配置后,需同步检查芯片级配置(chip_cfg.h),确保板级配置的资源(如Flash容量、外设使能)与芯片级配置一致,避免冲突。
-
多板适配技巧:可复制board_develop_AC7925B.h文件,修改文件名(如board_develop_AC7925C.h),对应不同硬件板子,编译时通过Makefile指定对应板级文件即可。
1.2.1 board_config.h
核心作用:定义当前工程使用的芯片型号(如AC7925B),关联后续板级硬件配置,确保SDK调用正确的芯片资源。
1.2.2 board_develop_AC7925B.h
板级硬件配置核心文件,所有硬件相关的配置均集中在此,核心功能分为3点:
-
功能总开关 :通过
#define(开启)或// #define(关闭)控制蓝牙、UI、视频、网络等整个功能模块,实现快速裁剪。 -
引脚分配:明确指定每个外设对应的IO口,如UART_TX/RX、IIC_SDA/SCL、MIC_PIN、SPK_PIN等,是硬件适配的核心步骤。
-
参数配置:配置外设核心参数,包括时钟频率、串口波特率、外设工作速度、电平模式等,确保外设正常工作。
✅ 关键优势:不同硬件板子适配时,仅需修改此文件,无需改动驱动层代码,降低适配成本。
1.2.3 board_develop.c
与board_develop_AC7925B.h配套使用,实现外设硬件参数的具体初始化逻辑,将头文件中定义的配置参数落地到硬件操作。
1.2.4 chip_cfg.h(芯片级配置)
芯片级硬件资源定义文件,核心配置芯片底层资源,属于芯片级固定配置,无需频繁修改,核心细节如下:
-
核心资源定义:明确Flash总容量、DDR内存大小及分区(如程序分区、数据分区、升级分区),确保SDK能正确识别硬件资源,避免内存溢出或存储不足。
-
芯片外设枚举:定义芯片内部所有外设(UART、IIC、SPI、ADC等)的基础参数和使能开关,为板级配置提供底层支持,板级配置需基于此文件定义的外设进行适配。
-
时钟配置基础:指定芯片核心时钟、外设时钟的基准频率,板级配置中的时钟参数需在此基础上调整,不可超出芯片规格范围。
-
芯片特性开关:开启/关闭芯片核心特性(如双核使能、硬件加密、低功耗模式),是后续所有功能配置的基础前提。
1.2.5 jlstream_node_cfg.h
杰理专属音频流配置文件,核心管理音频链路的输入、输出、处理节点,是音频功能实现的关键配置文件,与音频算法、硬件音频外设直接关联。
1.2.6 sdk_config.h(蓝牙工作模式+协议配置)
蓝牙PROFILE协议配置文件(蓝牙开发必备),同时承担蓝牙工作模式配置功能,按需开启/关闭蓝牙相关协议、配置蓝牙工作模式,减少协议栈资源占用,核心细节如下:
1.2.6.1 蓝牙工作模式核心配置
-
经典蓝牙模式:通过开启A2DP、HFP、SPP等协议实现,适用于蓝牙音乐播放、通话、串口通信场景,对应配置
#define TCFG_USER_BT_CLASSIC_ENABLE 1。 -
BLE模式:通过开启BLE相关配置实现,适用于TWS耳机连接、IoT设备通信、低功耗场景,对应配置
#define TCFG_USER_BLE_ENABLE 1,可额外配置BLE广播间隔、连接参数。 -
双模共存:经典蓝牙与BLE同时开启(需确保芯片支持),适用于既需要音乐播放又需要低功耗通信的场景,需同时开启上述两个开关及对应协议。
-
TWS模式配置:需在app_config.h中开启TWS相关开关,配合sdk_config.h中的蓝牙协议,配置主从切换、连接同步、音频同步等参数,确保TWS耳机正常配对使用。
-
低功耗模式:通过关闭无关蓝牙协议、降低蓝牙广播频率、配置睡眠参数,实现蓝牙低功耗运行,适配电池供电设备。
1.2.6.2 蓝牙协议核心配置
// 蓝牙协议配置(1=开启,0=关闭)
#define TCFG_BT_SUPPORT_PROFILE_SPP 1 // SPP串口协议(用于串口通信)
#define TCFG_BT_SUPPORT_PROFILE_HFP 1 // HFP协议(用于通话功能)
#define TCFG_BT_SUPPORT_PROFILE_A2DP 1 // A2DP协议(用于蓝牙音乐播放)
#define TCFG_BT_SUPPORT_PROFILE_AVCTP 1 // AVCTP协议(用于音乐控制,如播放/暂停)
#define TCFG_BT_SUPPORT_PROFILE_HID 0 // HID协议(无需外设控制则关闭)
#define TCFG_BT_SUPPORT_PROFILE_PBAP 0 // PBAP协议(无需电话簿同步则关闭)
#define TCFG_BT_SUPPORT_PROFILE_PAN 0 // PAN协议(无需网络共享则关闭)
#define TCFG_BT_SUPPORT_PROFILE_MAP 0 // MAP协议(无需消息同步则关闭)
#define TCFG_BT_SUPPORT_PROFILE_HFP_AG 0 // HFP_AG协议(非网关设备则关闭)
#define TCFG_BT_SUPPORT_PROFILE_BIP 1 // BIP协议(用于蓝牙图像传输,按需开启)
#define TCFG_BT_SUPPORT_PROFILE_OPP 0 // OPP协议(无需文件传输则关闭)
#define TCFG_BT_SUPPORT_PROFILE_IAP 0 // IAP协议(无需苹果设备适配则关闭)
#define TCFG_BT_SUPPORT_PROFILE_HSP 0 // HSP协议(无需传统耳机通话则关闭)
1.2.7 Makefile
路径:board/wl83/Makefile,工程编译配置文件,负责管理源文件编译、链接脚本配置、输出固件路径及名称,按需添加/删除源文件,控制编译流程。
1.3 工具文件:cpu/wl83/tools
核心文件:db_update_files_data.bin,系统数据配置文件,用于固件升级参数配置、设备参数存储,无需手动修改,跟随SDK默认配置即可。
二、音频链路配置(AC792N核心应用)
AC792N主打音频、蓝牙音频应用,音频链路配置直接决定音频质量,是工程配置的核心环节之一,结合芯片级、板级配置,核心步骤及注意事项如下,适配麦克风输入、扬声器输出、蓝牙音频等场景:
-
基础配置:基于
jlstream_node_cfg.h文件,配置音频流节点,定义音频输入、处理、输出的链路逻辑,关联音频算法模块;同时需确保芯片级配置(chip_cfg.h)中音频外设(ADC、DAC)已开启,板级配置中音频相关时钟参数正确。 -
源文件添加:将音频相关源文件(如音频驱动、降噪算法、音频播放逻辑)添加到工程目录,在Makefile中添加对应源文件路径,确保编译时能正确链接;若使用杰理自带音频算法,需在app_config.h中开启对应算法开关。
-
参数配置:在板级配置文件(board_develop_AC7925B.h)中配置音频引脚(MIC、SPK)的电平、驱动能力,在音频流配置文件中设置音频采样率(如44.1kHz、48kHz)、声道数(单声道/立体声)、音量增益、降噪等级等参数,适配实际硬件需求;蓝牙音频需同步配置A2DP协议参数,确保音频传输流畅。
-
硬件绑定:将配置好的音频链路与硬件引脚绑定,指定MIC输入引脚、SPK输出引脚,同时在板级配置中开启音频外设开关,确保音频信号正常传输;绑定后需测试音频链路,排查无声、杂音等问题。
-
注意事项:音频链路配置需与蓝牙工作模式匹配(如BLE音频需配置LE Audio相关参数),同时避免音频参数与芯片规格冲突,如采样率不可超出芯片支持范围。
三、工程配置核心技巧
-
功能裁剪:优先修改
app_config.h(总开关)和sdk_config.h(蓝牙协议/工作模式),关闭无关功能,减少Flash和内存占用;芯片级配置尽量不修改,避免影响底层稳定性。 -
硬件适配:不同板子仅修改
board/wl83目录下的板级配置文件,无需改动驱动和核心代码,提升适配效率;适配时需先确认芯片级配置,再进行板级参数调整,避免配置冲突。 -
问题定位:修改配置后若功能异常,优先检查配置文件的开关是否开启、引脚分配是否正确、参数是否匹配硬件规格;蓝牙异常优先检查蓝牙工作模式和协议配置,音频异常优先检查音频链路和引脚绑定。
-
配置联动:芯片级、板级、蓝牙、音频配置相互关联,如蓝牙音频需同时配置蓝牙协议、音频链路、板级音频引脚,修改其中一项需同步检查其他关联配置。