杰理 SDK 文档中心
首页
首页
  • 概述与快速开始

    • SDK 总览与芯片能力
    • 环境搭建与编译构建
    • 烧录与固件升级
    • 文档与版本资源
  • 应用与示例方案

    • demo 示例工程
    • WiFi 摄像头方案 (wifi_camera)
    • WiFi 音箱方案 (wifi_soundbox)
    • WiFi 婴儿监护方案 (wifi_bbm)
    • 公共应用模块库
    • 示例代码库 (example)
  • 系统架构与平台

    • 总体架构与工程分层
    • 系统启动与运行框架
    • 芯片驱动与板级适配
    • 设备管理与文件系统
    • 系统工具库与算法
  • 音频子系统

    • 音频框架与处理节点
    • 音频编解码与音效
    • 播放器与录音器
    • 语音交互与 AI 唤醒
    • LE Audio 与蓝牙音频
    • 音频调试与歌词
  • 视频与显示子系统

    • 摄像头驱动与 ISP
    • 视频编码与图像处理
    • 显示与 GPU 加速
    • 屏幕镜像 (screen_mirror)
  • 无线连接与网络

    • 蓝牙协议栈 (双模蓝牙)
    • WiFi 协议栈与配网
    • 网络协议栈
    • 云平台与 IoT 协议
  • UI 子系统

    • LVGL 集成与应用
    • UI 工程与工具链
  • 配置系统

    • 功能配置
    • 板级配置
    • 网络与蓝牙配置
    • 音频配置与提示音
  • 工具与测试

    • 产测与射频测试工具
    • 固件升级与更新机制
    • 调试与日志工具
  • 硬件参考设计

    • 原理图参考设计
    • 芯片数据手册

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 个型号:

芯片平台芯片型号内核适用方案
wl83AC7921A / AC7922A / AC7922C / AC7923A / AC7923B / AC7923C / AC7925A / AC7925B / AC7925C / AC7926A双核浮点 DSP @ 320MHzwifi_camera / wifi_soundbox / wifi_bbm / demo

型号后缀字母承载了封装、存储容量与内存厂商三重信息,理解后缀规则是选型与板级配置的前提:

  • 后缀第 1 类(封装):不同封装形式;
  • 后缀第 2 类(存储容量):0 无内存、2/4/8 对应 2/4/8 Mbit Flash、6 16Mbit、3 32Mbit、5 64Mbit、7 128Mbit、A 1M×16 SDRAM、B 4M×16 SDRAM、E 4M×16 DDR1、F 8M×16 DDR1、G 16M×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_blesdk/apps/demo/demo_ble/BLE 低功耗蓝牙数传ac792n_demo_demo_ble
demo_edrsdk/apps/demo/demo_edr/经典蓝牙 EDR(音乐/SPP/发射器/解码)ac792n_demo_demo_edr
demo_wifisdk/apps/demo/demo_wifi/WiFi STA/AP 联网ac792n_demo_demo_wifi
demo_wifi_extsdk/apps/demo/demo_wifi_ext/外置 WiFi 扩展联网ac792n_demo_demo_wifi_ext
demo_audiosdk/apps/demo/demo_audio/音频采集/播放/编解码ac792n_demo_demo_audio
demo_uisdk/apps/demo/demo_ui/LVGL UI 显示/图层/触摸ac792n_demo_demo_ui
demo_hellosdk/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:

  • README.md
  • project.jlproj

设计意图:编译期 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_cameramake ac792n_wifi_camera
WiFi 智能音箱wifi_soundboxmake ac792n_wifi_soundbox
婴儿监护器wifi_bbmmake ac792n_wifi_bbm
BLE Demodemo_blemake ac792n_demo_demo_ble
EDR Demodemo_edrmake ac792n_demo_demo_edr
WiFi Demodemo_wifimake ac792n_demo_demo_wifi
扩展 WiFi Demodemo_wifi_extmake ac792n_demo_demo_wifi_ext
音频 Demodemo_audiomake ac792n_demo_demo_audio
UI Demodemo_uimake ac792n_demo_demo_ui
Hello Demodemo_hellomake 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 filesLinux 下文件描述符不足,执行 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 智能音箱方案 / 婴儿监护器方案 / 蓝牙与网络协议栈 / 音频视频显示中间件
Next
环境搭建与编译构建