SDK 总览与芯片能力
AC792N_AIoT_SDK 是杰理科技为 AC792N 系列 AIoT 多媒体 SoC 提供的通用固件开发包,覆盖 WiFi 802.11b/g/n + 双模蓝牙 V5.4、双核浮点 DSP、音视频编解码、显示与 GPU、AI 云接入等完整软硬件能力,可一站式支撑摄像头、智能音箱、婴儿监护器等音视频物联网产品开发。
Purpose and Scope
本文档作为 SDK 总览与芯片能力 的入口页面,系统性地介绍:
- AC792N 芯片系列的型号体系、内核与片上资源(CPU、SRAM、DDR、PMU);
- 芯片六大能力域:无线(WiFi/蓝牙/PTA 共存)、音频、视频、显示、硬件加速(MATH/加解密/CRC)、外设接口;
- SDK 仓库的整体软件架构(
sdk/apps应用层、sdk/cpu平台层、include_lib头文件、lib预编译库)与工程目录组织; - 方案工程与功能 Demo 矩阵、编译入口、配置体系(
project.jlproj与src/下的 JSON 配置、板级头文件)与固件升级机制。
不在本文档范围内的兄弟主题(由对应目录页单独阐述):各方案工程的详细开发指南(WiFi 摄像头 / 智能音箱 / 婴儿监护器)、蓝牙与网络协议栈的编程接口细节、音频/视频/显示模块的中间件 API、烧录工具的使用步骤。本文档只提供这些主题在 SDK 中的定位与入口指引。
概述
AC792N_AIoT_SDK 定位为一款低成本、高集成度的音视频物联网 SoC 通用固件开发包。AC792N 芯片将无线(WiFi + 双模蓝牙)、多媒体(音频 ADC/DAC、DVP/MIPI 摄像头 + ISP、MIPI/RGB 推屏 + GPU2.5D)与丰富外设集成于单芯片,内部集成主频最高 320MHz 的双核浮点 DSP,配合 384KB 片上 SRAM 与外扩 8/16MB DDR1,可运行完整的网络协议栈(lwIP、mbedTLS、MQTT、PJSIP 等)与开源 UI 框架(LVGL v8/v9、AWTK)。
典型应用场景覆盖四大类产品:
| 应用类型 | 典型产品 |
|---|---|
| WiFi 视频方案 | IP Camera、可视门铃/视频门锁、行车记录、婴儿监护器 |
| 大屏音视频方案 | 大屏智能音箱、带屏绘本故事机、可视美容仪 |
| WiFi 音频方案 | WiFi/蓝牙智能音箱、儿童故事机、点读笔/扫描笔/翻译笔 |
| 智能家居/物联网 | 智能门锁、宠物喂食机、扫码枪、各类 AIoT 联网设备 |
重要说明:本仓库仅包含 SDK 源码与示例工程,需配合对应平台的预编译库文件(
*.a)编译,并引用 lwIP、mbedTLS、LVGL、AWTK 等开源项目。SDK 固件包本身不含开发文档,正式开发前需查阅杰理 AC792 在线文档中心。
架构
下图从芯片硬件能力与SDK 软件分层两个维度展示整体架构:硬件层提供无线/多媒体/外设能力,SDK 以平台库与中间件形式向上封装,最终由应用层方案工程驱动完整产品逻辑。
flowchart TD
subgraph sg_App["应用层 (sdk/apps)"]
App1["wifi_camera 摄像头方案"]
App2["wifi_soundbox 音箱方案"]
App3["wifi_bbm 婴儿监护器"]
App4["demo × 7 功能示例"]
end
subgraph sg_Middleware["SDK 中间件与协议栈 (include_lib / lib / audio)"]
MW1["媒体框架 音频/视频/显示"]
MW2["网络协议栈 lwIP / mbedTLS / MQTT / PJSIP"]
MW3["UI 框架 LVGL / AWTK / GPU2.5D"]
MW4["系统服务 FAT / CBUF / LBUF / Pthread"]
MW5["AI 云平台 SDK 接入"]
end
subgraph sg_Platform["平台层 (sdk/cpu/wl83 + 预编译库)"]
PL1["板级配置 board_develop_AC79xx.h"]
PL2["芯片驱动与启动代码"]
PL3["预编译静态库 *.a"]
end
subgraph sg_HW["芯片硬件层 AC792N SoC"]
HW1["双核浮点 DSP @ 320MHz + 384KB SRAM + DDR1"]
HW2["WiFi 802.11b/g/n + 蓝牙 V5.4 + PTA 共存"]
HW3["音频 ADC/DAC/IIS/PDM"]
HW4["视频 DVP/MIPI + ISP + JPEG 编解码"]
HW5["显示 MIPI DSI/RGB + GPU2.5D"]
HW6["MATH 加速 / AES / SHA / CRC / 随机数"]
HW7["外设 GPIO/IIC/SPI/UART/CAN/USB/以太网…"]
end
App1 --> MW1
App2 --> MW1
App3 --> MW1
App4 --> MW1
App1 --> MW2
App2 --> MW2
App3 --> MW2
App1 --> MW3
App2 --> MW3
App3 --> MW3
App1 --> MW5
App2 --> MW5
App3 --> MW5
MW1 --> PL1
MW2 --> PL2
MW3 --> PL1
MW4 --> PL2
MW5 --> PL2
PL1 --> HW1
PL2 --> HW1
PL3 --> HW1
HW2 --> HW1
HW3 --> HW1
HW4 --> HW1
HW5 --> HW1
HW6 --> HW1
HW7 --> HW1
架构解读:
- 芯片硬件层是能力基座:双核 DSP 承担应用与协议处理,WiFi/蓝牙通过内部 PTA 模块分时共存,音视频与显示子系统由独立硬件模块(ISP、JPEG 编解码、DMA2D/GPU2.5D)加速,MATH 引擎提供 FFT/矩阵/AES/SHA/CRC 等硬件加速,避免 CPU 软件计算瓶颈。
- 平台层通过
sdk/cpu/wl83/的启动代码与板级头文件(board_develop_AC79xx.h)完成引脚映射、时钟与内存配置,并以*.a静态库形式提供底层驱动,用户一般不需要修改平台代码,只需按芯片型号选择/修改板级配置。 - SDK 中间件层将芯片能力封装为可复用的模块接口(头文件统一放在
sdk/include_lib/),媒体、网络、UI、系统服务相互解耦,应用层按需组合。 - 应用层是产品逻辑所在:四个方案工程复用
sdk/apps/common/公共模块(asr、audio_music、camera、lcd、video、LLM 等),通过功能裁剪配置控制最终固件体积。
分层设计意图:把"芯片差异"隔离在平台层、把"通用能力"沉淀在中间件层,使应用层能够以最小代价在不同 AC792N 型号间迁移,并支撑多样化的产品形态。
芯片硬件能力详解
芯片系列与型号选型
SDK 当前支持的芯片平台为 wl83,覆盖 AC792N 系列共 10 个型号:
| 芯片平台 | 芯片型号 | 内核 | 适用方案 |
|---|---|---|---|
| wl83 | AC7921A / AC7922A / AC7922C / AC7923A / AC7923B / AC7923C / AC7925A / AC7925B / AC7925C / AC7926A | 双核浮点 DSP @ 320MHz | wifi_camera / wifi_soundbox / wifi_bbm / demo |
型号后缀字母承载了封装、存储容量与内存厂商三重信息,理解后缀规则是选型与板级配置的前提:
- 后缀第 1 类(封装):不同封装形式;
- 后缀第 2 类(存储容量):
0无内存、2/4/8对应 2/4/8 Mbit Flash、616Mbit、332Mbit、564Mbit、7128Mbit、A1M×16 SDRAM、B4M×16 SDRAM、E4M×16 DDR1、F8M×16 DDR1、G16M×16 DDR1; - 后缀第 3 类(内存厂商):不同内存供应商。
例如 AC7926A 表示封装上集成了 1M×16 SDRAM 的型号,板级目录中对应 board_develop_AC7926A.h。量产选型时需结合封装、内存(DDR1/SDRAM/Flash)、摄像头路数、屏接口(MIPI/RGB)、以太网等需求,参考仓库 doc/硬件资料/ 下的芯片选型表与 datasheet。
内核与片上资源
| 项目 | 规格 |
|---|---|
| CPU | 双核 DSP,最高主频 320MHz,支持单精度浮点及数学运算加速引擎 |
| 缓存 | 带 I-Cache、D-Cache |
| 片上 SRAM | 共 384 KB |
| 外扩内存 | 封装支持 8 / 16 MB DDR1(部分型号 SDRAM) |
| 供电 | 内置 PMU,支持 LDO / DCDC 供电与多种低功耗模式 |
| 无线共存 | 内部集成 PTA 共存分时模块,WiFi / 蓝牙 V2.1 / 蓝牙 V5.4 可同时工作 |
设计意图:双核 DSP + 384KB SRAM + 外扩 DDR1 的组合,使单芯片既能承载实时性要求高的音频/射频处理,又能运行 LVGL 等内存消耗较大的 UI 框架;内置 PMU 与多种低功耗模式则为电池供电的 IoT 产品(门锁、婴儿监护器)提供待机能力;PTA 分时共存模块解决了 WiFi 与蓝牙同频干扰这一无线 SoC 的核心工程难题。
无线能力
WiFi(IEEE 802.11b/g/n):
- 802.11n 支持 MCS0~MCS7、20MHz/40MHz 带宽,800ns / 400ns 保护间隔;
- 支持 AP / STA / Monitor(配网) 三种模式:AP 支持多站接入,STA 支持多网络记忆、择优连接、冷启动快连;
- 支持 Power Save 省电模式;
- 安全:WPA / WPA2 / WPA3-Personal 及其混合模式;
- 支持脱离 802.11 协议直接收发底层 RF 数据包,可对接 CMW270 / 极致汇仪等测试仪做 RF 性能测试;
- 发射功率:DSSS 1M/s 19dBm / MCS0 17dBm / MCS7 13dBm;接收灵敏度:DSSS 1M/s -96dBm / MCS0 -93dBm / MCS7 -74dBm。
蓝牙(双模 V5.4):
- 双模蓝牙 V5.4 规范(BR/EDR + BLE);
- 支持 AoA / AoD 测向(可用于室内定位、防丢等场景);
- 支持 LE Audio BIS / CIS(广播/连接同步流,对应 TWS、助听等低延迟音频场景);
- 最大 +19 dBm 发射功率;
- 接收灵敏度:BR -97dBm,EDR π/4 DQPSK -96dBm,EDR 8DPSK -88dBm。
音频能力
- 硬件模块:DAC(需外挂功放)、MIC、LINEIN、IIS、PDM。IIS 支持 4 通道(可独立配置输入/输出,16/24bit);PDMLINK 支持 2 路 16bit 数字麦;ADC 2 通道(每通道可配 MIC 或 LINEIN)。
- 编码:SBC、MSBC、CVSD、AAC、MP2、MP3、ADPCM、AMR、OPUS、OGG、SPX、WAV、PCM。
- 解码:SBC、MSBC、CVSD、AAC、ADPCM、AMR、APE、DTS、FLAC、M4A、MP1/2/3、OPUS、OGG、SPX、WAV、WMA、PCM;数据源支持 FLASH / SD卡 / U盘 / LINEIN / 外挂FM / 网络URL / 经典蓝牙等。
- 音效:混响、回声、电音、变声变调、变速、移频、啸叫抑制、EQ、DRC、回声消除、传统降噪、神经网络降噪。
- 语音:活动语音检测 VAD、单/双 MIC 打断唤醒 ASR;部分格式支持断点/快进快退/定点/AB 复读。
视频能力
- 输入接口:2 路 DVP-1/2/4/8bit、BT656 图像传感器接口(YUV sensor,最大 720P);MIPI 1 LANE sensor,最大 720P。
- 编解码:JPEG 编码流最大 720P@30fps@AVI;JPEG 单张最大编解分辨率 16384×16384。
- 多路组合:最大三路组合(MIPI+DVP+UVC、MIPI+DVP+DVP)。
- 缩放与叠加:四路缩放(最大 720P,其中 2 路支持 OSD)。
- ISP 图像信号处理:黑电平校正、去坏点、2D/色度降噪、锐化、亮度对比度、颜色矩阵、白平衡、自动曝光、伽马曲线、镜头阴影校正。
显示能力
- 推屏接口:MIPI DSI(1~4 Lane)、并行(8/16bit)、RGB888/YUV888/RGB666/RGB565/YUV422/RGB333,最高 1280×800@30+fps。
- 显示特性:屏触摸、竖屏横显、UI 与摄像头图像合成叠加显示;颜色/亮度/饱和度/对比度增强。
- UI 框架:开源 LVGL(v8 / v9)与 AWTK,适配 DMA2D / GPU2.5D 图形加速器;支持杰理 LVGL 可视化 UI 编辑工具自动生成代码。
- GPU:GPU2.5D 矢量绘图、图像 2.5D 变换。
外设接口与硬件加速
外设接口一览:GPIO、IIC、SPI、SDIO、PWM、MCPWM、UART、CAN、USB 1.1、USB 2.0、ADC、TIMER、IR 接收、电容触摸按键、旋转编码器、GPCNT、RTC、Ethernet、LEDC。
MATH 硬件加速引擎:
| 能力 | 说明 |
|---|---|
| 数字信号 | 硬件 FFT、IFFT、矩阵运算 |
| 加解密 | 硬件 AES 128/192/256(ECB/CBC/CTR/CFB128/OFB/GCM/GMAC/CCM/XTS)、SHA128/256 |
| 其他 | 硬件随机数;硬件 CRC(7/8/16/32 位多项式,支持位反转与端序翻转) |
设计意图:FFT/矩阵运算硬件化是音频算法(降噪、混响)与传感器信号处理的性能基础;AES/SHA/硬件随机数则为 MQTT/TLS 等安全通道与 OTA 固件校验提供可信根,避免在 DSP 上做软件软算导致的高功耗与长延迟。
固件升级机制
- 不备份升级:通过 SD卡 / U盘 等存储设备升级(简单、占用空间小)。
- 备份升级:通过 SD卡 / U盘 与无线网络(WiFi / 蓝牙)升级,支持 UBOOT 备份升级(更安全,升级失败可回滚)。
两种机制并存的设计权衡:不备份升级省空间、流程简单,适合存储紧张的方案;备份升级以双份固件占用换取可靠性,适合远程 OTA 的产品场景。
SDK 软件架构
仓库目录组织
SDK 仓库以 sdk/ 为开发主体,根目录还包含工程配置与文档资料:
ac792(仓库根)/
├── sdk/ # SDK 主体
│ ├── apps/ # 应用层代码
│ │ ├── common/ # 公共模块(asr/audio_music/camera/eth/lcd/lvgl_v8/
│ │ │ # lvgl_v9/dma2d_gpu/pjsip/jlttf/screen_mirror/video/LLM…)
│ │ ├── wifi_camera/ # WiFi 摄像头方案
│ │ ├── wifi_soundbox/ # WiFi 智能音箱方案
│ │ ├── wifi_bbm/ # 婴儿监护器方案
│ │ └── demo/ # 7 个功能 demo
│ ├── cpu/wl83/ # CPU 平台代码 + 预编译库(liba) + 烧录工具(tools)
│ ├── include_lib/ # 头文件(btctrler/btstack/driver/media/net/system/update…)
│ ├── lib/ # 预编译库
│ ├── audio/ # 音频中间件
│ ├── tools/ # 编译工具
│ ├── Makefile # SDK 顶层统一编译入口
│ └── make_prompt.bat # Windows 编译命令行入口
├── src/ # 项目配置(板级/功能/蓝牙/网络/音频 JSON 配置)
├── ui_prj/ # 杰理 UI 工程资源
├── doc/ # 数据手册、硬件资料与文档
│ └── 硬件资料/datasheet/ # 各型号 datasheet + 选型表
├── docs/ # 在线文档源
├── sdk_tools/ # SDK 工具
└── project.jlproj # 杰理工程文件
各关键目录职责:
| 目录 | 作用 |
|---|---|
sdk/apps/*/board/wl83/ | 板级配置:引脚定义、外设初始化、编译选项、.cbp 工程 |
sdk/apps/common/ | 公共模块:跨工程共享的音频、视频、显示、LVGL、AI 等中间件 |
sdk/apps/common/config/ | 库配置:蓝牙 Profile、用户配置、授权码、日志等 |
sdk/apps/demo/ | 功能示例:7 个可直接参考或修改的最小 demo 工程 |
sdk/cpu/wl83/liba/ | 预编译库:*.a 静态库文件 |
sdk/include_lib/ | 头文件:协议栈、驱动、媒体、系统、网络等模块接口 |
doc/硬件资料/datasheet/ | 数据手册:各型号 datasheet 与选型表 |
分层设计意图:apps/ 与 cpu/ 的分离保证了"应用可移植、平台可替换";include_lib/ 头文件 + lib/ 静态库的封装形式,使 SDK 在开放编程接口的同时保护底层驱动实现细节;apps/common/ 将可复用中间件从方案工程中抽离,避免多方案重复维护。
网络协议栈与 AI 云平台
- 基础协议:lwIP、mbedTLS、HTTP/HTTPS、WebSocket、CoAP、nopoll、cURL、MQTT、FTP、uIP、iperf、PJSIP。
- AI 云平台:图灵、百度云、腾讯云、中国电信智能家居、涂鸦、阿里云、华为 HiLink、天猫精灵、亚马逊、思必驰、玩瞳,以及火山大模型(LLM)。
协议栈与云 SDK 的一体化集成,是 AC792N 面向 AIoT 的核心差异化:设备端可通过 MQTT/TLS 通道接入主流云平台,并通过 LLM 中间件(apps/common/LLM)对接大模型能力,为语音助手、智能问答类产品提供开箱即用的连接基础。
SDK 中间件
FAT 文件系统、数据存储记忆、Pthread API、循环缓冲 CBUF、帧缓冲 LBUF、屏镜像(screen_mirror)。这些基础组件支撑上层媒体链路(CBUF/LBUF 用于音视频流缓冲)与系统级功能(FAT 用于 SD/U 盘媒体读取、Pthread 提供多任务编程模型)。
应用工程与 Demo 矩阵
方案工程
| 方案 | 路径 | 适用场景 | make target |
|---|---|---|---|
| WiFi 摄像头 | sdk/apps/wifi_camera/ | WiFi 监控摄像头、可视门铃、行车记录、图传 | ac792n_wifi_camera |
| WiFi 智能音箱 | sdk/apps/wifi_soundbox/ | 大屏智能音箱、网络音频、带屏故事机 | ac792n_wifi_soundbox |
| 婴儿监护器 | sdk/apps/wifi_bbm/ | 带屏触控婴儿监护、音视频远程看护 | ac792n_wifi_bbm |
功能 Demo 矩阵
| Demo | 路径 | 演示功能 | make target |
|---|---|---|---|
| demo_ble | sdk/apps/demo/demo_ble/ | BLE 低功耗蓝牙数传 | ac792n_demo_demo_ble |
| demo_edr | sdk/apps/demo/demo_edr/ | 经典蓝牙 EDR(音乐/SPP/发射器/解码) | ac792n_demo_demo_edr |
| demo_wifi | sdk/apps/demo/demo_wifi/ | WiFi STA/AP 联网 | ac792n_demo_demo_wifi |
| demo_wifi_ext | sdk/apps/demo/demo_wifi_ext/ | 外置 WiFi 扩展联网 | ac792n_demo_demo_wifi_ext |
| demo_audio | sdk/apps/demo/demo_audio/ | 音频采集/播放/编解码 | ac792n_demo_demo_audio |
| demo_ui | sdk/apps/demo/demo_ui/ | LVGL UI 显示/图层/触摸 | ac792n_demo_demo_ui |
| demo_hello | sdk/apps/demo/demo_hello/ | 最小启动工程(入门骨架) | ac792n_demo_demo_hello |
Demo 矩阵的粒度设计:每个 demo 只演示一个能力域(BLE / EDR / WiFi / 音频 / UI),demo_hello 作为最小骨架,帮助新开发者以最小代码量理解启动流程,再按需叠加其他 demo 或直接选用方案工程。
核心流程
从零开始的开发流程
flowchart TD
Start([开始]) --> Step1["克隆仓库 git clone"]
Step1 --> Step2["选择方案工程 apps/wifi_camera 等"]
Step2 --> Step3["选择板级目录 board/wl83/"]
Step3 --> Step4{"目标芯片型号?"}
Step4 -->|"AC7921A~AC7926A"| Step5["选用对应 board_develop_AC79xx.h"]
Step5 --> Step6["功能裁剪配置 common/config/ + src/ JSON"]
Step6 --> Step7{"编译环境?"}
Step7 -->|"Windows"| Win["Code::Blocks 打开 .cbp → Build"]
Step7 -->|"Linux"| Lin["make ac792n_xxx -jnproc"]
Win --> Step8["生成固件"]
Lin --> Step8
Step8 --> Step9["USB 升级工具 / 生产烧写工具烧录"]
Step9 --> Step10{"需要远程升级?"}
Step10 -->|"是"| Step11["启用备份升级(SD/U盘/WiFi/蓝牙 + UBOOT)"]
Step10 -->|"否"| End([发布])
Step11 --> End
配置体系与编译入口
SDK 采用双轨配置:sdk/apps/common/config/ 下的 C 源文件(编译期裁剪)与根目录 project.jlproj 管理的 src/ JSON 配置(工程期生成配置 bin)。project.jlproj 定义了配置面板与产物的映射关系:
{
"type": "音箱",
"sdk": "wifi_soundbox",
"chip": "AC792N",
"tabform": [
{
"type": 1,
"fileName": "src\\板级配置.json",
"binName": "boardcfg.bin",
"showName": "板级配置"
},
{
"type": 1,
"fileName": "src\\功能配置.json",
"binName": "modecfg.bin",
"showName": "功能配置"
},
{
"type": 1,
"fileName": "src\\蓝牙配置.json",
"binName": "btcfg.bin",
"showName": "蓝牙配置"
},
{
"type": 1,
"fileName": "src\\LE_AUDIO配置\\公共配置.json",
"binName": "leacfg.bin",
"showName": "公共配置"
}
]
}
节选
project.jlproj的配置面板定义(仅展示前几项,完整文件还包含 BIS/CIS 配置、网络配置、音频配置等面板)。
Sources:
设计意图:编译期 C 配置决定"编译进什么模块"(减小固件体积),工程期 JSON 配置决定"运行时行为"(引脚、蓝牙 Profile、网络参数等),两者解耦使同一套源码可快速派生不同产品变体。
使用示例
环境搭建与工具链验证
# 验证工具链是否安装成功
clang --version
安装方式:Windows 推荐 Code::Blocks IDE;Linux 从 pkgman.jieliapp.com 下载工具链解压到
/opt/jieli,确保/opt/jieli/common/bin/clang存在。
Source: README.md
编译方案工程(Makefile 命令行)
# Windows 用户:双击 sdk/make_prompt.bat 打开命令行环境
# Linux 用户:在 sdk 目录执行
cd sdk
make ac792n_wifi_camera
所有支持的 target 名称见
sdk/Makefile开头的注释。
Source: README.md
Linux 并行编译与文件描述符限制
# 1. 确保文件描述符限制足够大(链接阶段需要打开大量文件)
ulimit -n 8096
# 2. 进入 sdk 目录并行编译
make ac792n_wifi_camera -j`nproc`
Source: README.md
Code::Blocks 编译(Windows 推荐)
# 1. 进入对应的板级目录
cd sdk/apps/wifi_camera/board/wl83/
# 2. 双击打开 .cbp 工程文件(如 AC792N_WIFI_CAMERA.cbp)
# 3. 在 Code::Blocks 中点击 Build → Build (Ctrl+F9)
# 4. 编译成功后,使用 USB 升级工具烧录生成的固件文件
Source: README.md
创建自定义工程
复制 sdk/apps/ 下最接近的方案工程
→ 进入其 board/wl83/ 目录
→ 复制并修改与目标芯片型号最接近的 board_develop_AC79xx.h
→ 调整引脚和外设配置
Source: README.md
配置选项
功能裁剪配置(编译期)
位于 sdk/apps/common/config/ 目录:
| 配置文件 | 用途 |
|---|---|
bt_profile_config.c | 蓝牙 Profile 配置 |
user_cfg.c | 用户参数配置 |
auth_code_cfg.c | 授权码配置 |
new_cfg_tool.c | 配置工具 |
ci_transport_uart.c | 串口通信传输配置 |
log_config/ | 日志输出配置(等级与通道) |
板级与项目配置
| 配置项 | 位置 | 说明 |
|---|---|---|
| 板级配置 | sdk/apps/*/board/wl83/board_develop_AC79xx.h | 按芯片型号区分,含引脚映射、外设使能、时钟、内存配置 |
| 项目配置 | 仓库根 src/ 下 JSON(板级/功能/蓝牙/网络/音频/LE_AUDIO) | 由杰理工程工具 project.jlproj 管理,编译生成 boardcfg.bin / modecfg.bin / btcfg.bin / leacfg.bin 等 |
分支与版本规则
| 分支 | 用途 | 配套文档 |
|---|---|---|
AC792N_SDK_V3 | 主线开发分支 | AC792N_SDK_V3 文档 |
版本号遵循 major.minor.patch 语义:major 为不兼容的重大结构变化;minor 为 API 增加等较大更改(保持源码与二进制兼容);patch 仅修改内部实现、不影响 API。量产建议使用稳定发布版本,尝鲜新特性可跟随主线分支。
API 参考(编译入口)
SDK 顶层统一编译入口为 sdk/Makefile,全部 target 在 sdk/ 目录下执行:
| 目标 | 应用 | 命令 |
|---|---|---|
| WiFi 摄像头 | wifi_camera | make ac792n_wifi_camera |
| WiFi 智能音箱 | wifi_soundbox | make ac792n_wifi_soundbox |
| 婴儿监护器 | wifi_bbm | make ac792n_wifi_bbm |
| BLE Demo | demo_ble | make ac792n_demo_demo_ble |
| EDR Demo | demo_edr | make ac792n_demo_demo_edr |
| WiFi Demo | demo_wifi | make ac792n_demo_demo_wifi |
| 扩展 WiFi Demo | demo_wifi_ext | make ac792n_demo_demo_wifi_ext |
| 音频 Demo | demo_audio | make ac792n_demo_demo_audio |
| UI Demo | demo_ui | make ac792n_demo_demo_ui |
| Hello Demo | demo_hello | make ac792n_demo_demo_hello |
| 全部 | 全部 | make all |
| 清理全部 | 全部 | make clean |
清理单个工程:make clean_ac792n_wifi_camera、make clean_ac792n_demo_demo_ble 等,命令模式为 clean_ + target 名。
烧录接口:固件通过 USB 升级工具(开发调试/强制升级)或生产烧写工具(量产/裸片烧写)写入目标板,进入编程模式需按住烧录按键后复位或重新上电。
故障模式与边界情况
常见编译错误及处理
| 错误提示 | 原因与解决方法 |
|---|---|
clang: command not found | 未安装杰理编译工具链,或环境变量未配置;需安装工具链并确认 /opt/jieli/common/bin/clang 存在 |
Too many open files | Linux 下文件描述符不足,执行 ulimit -n 8096 后重试 |
cannot find -lxxx | 缺少对应的 .a 库文件,检查 sdk/cpu/wl83/liba/ 与 sdk/lib/ 目录 |
undefined reference to ... | 功能裁剪配置未包含对应模块,检查 sdk/apps/common/config/ 下的配置 |
边界情况
- 芯片型号不匹配:板级目录按芯片型号区分(如
board_develop_AC7926A.h),型号后缀(存储容量/内存厂商)不同会导致内存配置与驱动初始化错误,选型与建工程时必须匹配目标型号。 - 存储容量不足:不备份升级占用空间小但无回滚保护;开启备份升级需要足够的 Flash/DDR 空间存放双份固件,需在功能裁剪阶段评估固件体积。
- 无线共存:WiFi 与蓝牙同频段同时工作依赖内部 PTA 分时模块;高吞吐场景(如视频推流 + BLE 数传同时进行)需注意分时调度对吞吐的影响。
并发与资源约束
AC792N 为双核 DSP 架构,SDK 通过 Pthread API 提供多任务编程模型。多媒体链路(音频采集、视频编码、显示刷新)对实时性敏感,开发者应避免在中断/实时任务中做耗时操作,优先使用 CBUF/LBUF 等无锁或低开销缓冲机制传递音视频数据。
性能与运维建议
- 编译加速:使用
-j参数并行编译(如make ac792n_wifi_camera -j4);Linux 下链接阶段需大量打开文件,务必先ulimit -n 8096。 - 固件瘦身:通过
sdk/apps/common/config/裁剪未用模块(蓝牙 Profile、云平台 SDK、编解码器),可显著减小固件体积与烧录时间。 - 日志调试:通过
log_config/配置日志输出等级与通道;可利用空闲 GPIO 输出调试波形测量时序。 - 无线性能测试:芯片支持脱离 802.11 协议直接收发底层 RF 数据包,可对接 CMW270 / 极致汇仪等测试仪验证 RF 指标(发射功率 DSSS 1M/s 19dBm、灵敏度 DSSS 1M/s -96dBm 等)。
扩展点
- 新增方案工程:复制最接近的既有方案(如
wifi_camera),修改board/wl83/下板级配置与src/JSON 配置即可派生新产品;所有 target 在sdk/Makefile中注册。 - 复用公共模块:
sdk/apps/common/提供 asr、audio_music、camera、eth、lcd、lvgl_v8/v9、dma2d_gpu、pjsip、jlttf、screen_mirror、video、LLM 等中间件,新方案应优先复用而非重复实现。 - UI 定制:支持 LVGL v8/v9 与 AWTK 双框架,可用杰理 LVGL 可视化 UI 编辑工具生成代码,
ui_prj/存放 UI 工程资源。 - 云平台接入:协议栈层已集成 lwIP/mbedTLS/MQTT 等基础能力,AI 云平台 SDK(含火山大模型)以公共模块形式提供,可替换或新增云接入实现。
测试与验证
仓库未内置自动化单元测试框架(SDK 以固件工程形式交付,测试以板级验证为主)。官方推荐的验证路径为:demo 工程验证单项能力(demo_ble 验证 BLE 数传、demo_wifi 验证联网、demo_audio 验证音频链路、demo_ui 验证显示)→ 方案工程集成验证 → RF 测试仪(CMW270/极致汇仪)验证无线指标 → 量产烧写工具验证生产流程。
Related Links
- README.md(SDK 总览原始文档)
- README-en.md(英文版总览)
- project.jlproj(杰理工程配置入口)
- AC792 在线文档中心(模块开发指南)
- SDK 版本发布记录
- 杰理开发环境文档(工具链安装)
- 相关目录页:WiFi 摄像头方案 / WiFi 智能音箱方案 / 婴儿监护器方案 / 蓝牙与网络协议栈 / 音频视频显示中间件