杰理AC792N笔记05: SDK工程配置详解 | 配置文件+音频链路

在杰理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点:

  1. 功能总开关 :通过#define(开启)或// #define(关闭)控制蓝牙、UI、视频、网络等整个功能模块,实现快速裁剪。

  2. 引脚分配:明确指定每个外设对应的IO口,如UART_TX/RX、IIC_SDA/SCL、MIC_PIN、SPK_PIN等,是硬件适配的核心步骤。

  3. 参数配置:配置外设核心参数,包括时钟频率、串口波特率、外设工作速度、电平模式等,确保外设正常工作。

✅ 关键优势:不同硬件板子适配时,仅需修改此文件,无需改动驱动层代码,降低适配成本。

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主打音频、蓝牙音频应用,音频链路配置直接决定音频质量,是工程配置的核心环节之一,结合芯片级、板级配置,核心步骤及注意事项如下,适配麦克风输入、扬声器输出、蓝牙音频等场景:

  1. 基础配置:基于jlstream_node_cfg.h文件,配置音频流节点,定义音频输入、处理、输出的链路逻辑,关联音频算法模块;同时需确保芯片级配置(chip_cfg.h)中音频外设(ADC、DAC)已开启,板级配置中音频相关时钟参数正确。

  2. 源文件添加:将音频相关源文件(如音频驱动、降噪算法、音频播放逻辑)添加到工程目录,在Makefile中添加对应源文件路径,确保编译时能正确链接;若使用杰理自带音频算法,需在app_config.h中开启对应算法开关。

  3. 参数配置:在板级配置文件(board_develop_AC7925B.h)中配置音频引脚(MIC、SPK)的电平、驱动能力,在音频流配置文件中设置音频采样率(如44.1kHz、48kHz)、声道数(单声道/立体声)、音量增益、降噪等级等参数,适配实际硬件需求;蓝牙音频需同步配置A2DP协议参数,确保音频传输流畅。

  4. 硬件绑定:将配置好的音频链路与硬件引脚绑定,指定MIC输入引脚、SPK输出引脚,同时在板级配置中开启音频外设开关,确保音频信号正常传输;绑定后需测试音频链路,排查无声、杂音等问题。

  5. 注意事项:音频链路配置需与蓝牙工作模式匹配(如BLE音频需配置LE Audio相关参数),同时避免音频参数与芯片规格冲突,如采样率不可超出芯片支持范围。

三、工程配置核心技巧

  • 功能裁剪:优先修改app_config.h(总开关)和sdk_config.h(蓝牙协议/工作模式),关闭无关功能,减少Flash和内存占用;芯片级配置尽量不修改,避免影响底层稳定性。

  • 硬件适配:不同板子仅修改board/wl83目录下的板级配置文件,无需改动驱动和核心代码,提升适配效率;适配时需先确认芯片级配置,再进行板级参数调整,避免配置冲突。

  • 问题定位:修改配置后若功能异常,优先检查配置文件的开关是否开启、引脚分配是否正确、参数是否匹配硬件规格;蓝牙异常优先检查蓝牙工作模式和协议配置,音频异常优先检查音频链路和引脚绑定。

  • 配置联动:芯片级、板级、蓝牙、音频配置相互关联,如蓝牙音频需同时配置蓝牙协议、音频链路、板级音频引脚,修改其中一项需同步检查其他关联配置。

相关推荐
要不枉此行21 小时前
杰理AC792N笔记01: 四级初始化全流程详解(early/platform/module/late_initcall)
杰理·ac792n
我是海飞3 个月前
杰理 AC792N 使用 WebSocket 连接百度语音大模型,实现 AI 对话
c语言·单片机·嵌入式·ai对话·杰理·websockey
我是海飞3 个月前
杰理 AC792N WebSocket 客户端例程使用测试教程
c语言·python·单片机·websocket·网络协议·嵌入式·杰理
Jim天河7 个月前
杰理AC632N---RTC应用问题
杰理·杰理ble·杰理蓝牙