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

    • SDK 概览与 AC791N 芯片平台
    • 环境搭建与编译指南
    • 烧录与固件升级
    • 工程结构导览
  • 产品方案应用

    • WiFi 摄像头方案
    • WiFi IPC 可视对讲方案
    • WiFi 故事机方案
    • 扫码枪 HID 方案
    • 开发板示例工程
  • 公共应用组件

    • 语音识别 ASR 引擎
    • LLM 与 AI 语音助手接入
    • 摄像头传感器驱动
    • UI 显示框架与驱动
    • USB 主机与设备栈
    • 文件系统与存储管理
    • 系统服务与外设管理
    • 生产测试与射频工具
  • 蓝牙协议栈

    • 经典蓝牙 BR/EDR
    • BLE 低功耗蓝牙
    • 蓝牙 Mesh 网络
    • 蓝牙扩展协议(RCSP/广播/无线麦克风)
  • WiFi 与网络协议栈

    • WiFi 驱动与网络模式
    • lwIP TCP/IP 协议栈
    • 网络安全与加密库
    • 应用层网络协议
    • 流媒体与音视频传输
    • 云平台接入 SDK
    • P2P 远程访问与设备互联
  • 芯片平台与驱动

    • wl82 平台与硬件加速
    • 外设驱动框架
    • 平台配置与固件打包工具
  • 媒体与音频引擎

    • 音频编解码与音源
    • 音效处理引擎
    • 视频与图像处理
  • 操作系统与运行时

    • 实时操作系统与 POSIX 层
    • C/C++ 运行时库
  • 开发资源与文档

    • 文档与规格书
    • 公共示例工程
    • UI 资源工程与打包
    • SDK 辅助工具与脚本

SDK 概览与 AC791N 芯片平台

fw-AC79_AIoT_SDK 是杰理科技(Jieli Technology)为 AC791N 系列 AIoT 多媒体 SoC 提供的通用 SDK 固件开发包,集成了 WiFi 802.11b/g/n、双模蓝牙(BR/EDR + BLE)、音频/视频/显示多媒体框架、网络协议栈与丰富的应用示例,可一站式构建各类音视频物联网产品。

Purpose and Scope

本页作为 SDK 的总览入口,回答三个核心问题:

  1. SDK 是什么——仓库定位、发布形态(Release 源码 + 预编译库 + 开源组件)、典型应用场景;
  2. AC791N 芯片平台能做什么——wl82 平台各芯片型号的硬件规格、WiFi/蓝牙/音视频/显示/安全/低功耗能力边界;
  3. 如何从零开始使用——工程目录结构、编译系统(Makefile / Code::Blocks / VS Code)、配置入口(板级 board_79xx_cfg.h 与功能裁剪 apps/common/config/)、烧录与升级方式。

以下主题属于兄弟页面,本页只做指引、不展开细节:

  • 各方案工程的实现细节(apps/wifi_camera、apps/wifi_ipc、apps/wifi_story_machine、apps/scan_box 的代码走读)——见「应用与示例指南」相关页面;
  • 板级配置 board_79xx_cfg.h 的引脚/外设/时钟逐项说明——见「板级配置」相关页面;
  • 具体外设驱动、协议栈 API——见「驱动与协议」相关页面。

Overview

SDK 定位

AC791N 是一款低成本、高集成度的 WiFi + 蓝牙音视频多媒体 SoC:内部集成主频最高 320MHz 的双核浮点 DSP,完整集成音频(ADC/DAC)、视频(摄像头 ISC)、显示(RGB 推屏)与丰富外设资源,并在片内集成 PTA 共存分时模块,使 WiFi 与蓝牙(V2.1/V5.0)可同时工作。

本仓库为 SDK Release 版本源码及示例工程,需配合对应平台的预编译库(*.a)进行链接编译,并引用了 lwIP、mbedTLS、FreeRTOS 等开源项目。SDK 固件包本身不含开发文档,完整开发资料见 AC79 SDK 在线文档中心。

典型应用场景

应用类型典型产品
WiFi 音频方案WiFi/蓝牙智能音箱、儿童绘本故事机、点读笔/扫描笔/翻译笔
WiFi 视频方案WiFi 监控摄像头 IP Camera、可视门铃/视频门锁/楼宇智能、婴儿监护器、宠物喂食机
蓝牙 + USB 交互蓝牙/USB 扫码枪、HID 人机交互设备
智能家居/物联网WiFi 可视美容仪、WiFi 摄像头玩具、各类 AIoT 联网设备

版本与分支策略

AC79 Gitee 仓库的 master 分支用于开发新特性(更新频繁);量产用途建议使用稳定发布分支 release/AC79NN_SDK_Vx.x.x(本页所引用代码即 release/AC79NN_SDK_V1.2.0 分支)。新项目一般建议选择最新稳定版本。

Architecture

SDK 分层架构

flowchart TD
    subgraph sg_Apps["应用层 apps/"]
        AppCamera["apps/wifi_camera"]
        AppIPC["apps/wifi_ipc"]
        AppStory["apps/wifi_story_machine"]
        AppScan["apps/scan_box"]
        AppDemo["apps/demo (11 个 demo)"]
        AppCommon["apps/common (公共模块)"]
        BoardCfg["apps/*/board/wl82<br/>board_79xx_cfg.h / .cbp / Makefile"]
    end

    subgraph sg_Lib["库与接口层"]
        IncludeLib["include_lib (头文件)<br/>btctrler/btstack/driver/media/net/system/update"]
        Lib["lib (预编译库)<br/>net/server/utils"]
        CpuLib["cpu/wl82/liba (*.a 静态库)"]
    end

    subgraph sg_Tools["工具链层"]
        Makefile["顶层 Makefile"]
        CodeBlocks["Code::Blocks (.cbp)"]
        Tools["tools/ (make_prompt.bat / utils)"]
        FlashTools["cpu/wl82/tools (烧录工具)"]
    end

    subgraph sg_HW["硬件层"]
        AC791N["AC791N SoC (wl82 平台)<br/>双核 DSP@320MHz + WiFi + BT"]
    end

    Makefile --> BoardCfg
    CodeBlocks --> BoardCfg
    AppCamera --> AppCommon
    AppIPC --> AppCommon
    AppStory --> AppCommon
    AppScan --> AppCommon
    AppDemo --> AppCommon
    AppCommon --> IncludeLib
    AppCommon --> Lib
    BoardCfg --> CpuLib
    CpuLib --> AC791N
    IncludeLib --> AC791N
    Tools --> BoardCfg
    FlashTools --> AC791N

分层说明:

  • 应用层(apps/):按产品方案组织的工程目录。每个方案工程(如 apps/wifi_camera/)都包含独立的 board/wl82/ 板级子目录,其中存放板级 Makefile、Code::Blocks 工程文件(AC791N_*.cbp)、板级配置头文件(board_79xx_cfg.h,按芯片型号区分,如 board_7916A_cfg.h)与板级初始化代码(board_*.c)。
  • 公共模块层(apps/common/):跨工程共享的音频、视频、蓝牙、WiFi、UI、AI 等中间件,以及 config/ 下的功能裁剪配置(蓝牙 Profile、用户配置、日志配置等)。
  • 库与接口层:include_lib/ 提供协议栈、驱动、媒体、系统、网络等模块的头文件接口;lib/ 与 cpu/wl82/liba/ 提供预编译静态库(*.a)。SDK 不开放全部源码,部分底层以库形式交付——这是该 SDK 的发布形态设计:源码可裁剪、库接口稳定。
  • 工具链层:顶层 Makefile 是统一编译入口,通过递归调用各板级 Makefile 编译指定方案;Windows 下可用 Code::Blocks 打开 .cbp 工程;tools/ 提供预配置命令行环境脚本。
  • 硬件层:AC791N SoC(wl82 平台)是全部代码最终运行的载体。

芯片平台(wl82)型号矩阵

芯片平台芯片型号内核适用方案
wl82AC7911B / AC7912A / AC7913A / AC7915A / AC7915B / AC7916A杰理自研双核浮点 DSP @ 320MHzwifi_camera / wifi_story_machine

同一平台内不同型号主要在封装、外扩 SDRAM 容量与可用外设上存在差异,板级配置头文件按型号区分,实现"一套 SDK、多芯片兼容"的设计目标。

AC791N 芯片平台能力详解

内核与内存

项目规格
CPU双核 DSP,最高主频 320MHz,支持单精度浮点及数学运算加速引擎
缓存与内存管理带 I-Cache、D-Cache、MMU
片上 SRAM共 578 KB
外扩 SDRAM部分封装支持 2 / 8 MB SDRAM
供电内置 PMU,支持 LDO / DCDC 供电模式与多种低功耗模式

设计意图:双核浮点 DSP 使得音频编解码、AI 降噪等重计算任务可以在片内完成,无需外挂 MCU;578KB 片上 SRAM 配合可选外扩 SDRAM,覆盖从低成本音频设备到视频推流设备的差异化内存需求。

外设接口

GPIO、IIC、SPI、SDIO、PWM、MCPWM、UART、USB 1.1、USB 2.0、ADC、TIMER、IR 接收、电容触摸按键、GPCNT、RTC。

MATH 硬件加速

能力说明
数字信号硬件 FFT、IFFT、矩阵运算
加解密硬件 AES128/256、SHA128/256
其他硬件随机数、CRC16

硬件加速引擎的意义:FFT/AES/SHA 等操作以硬件完成,CPU 主频 320MHz 的算力可集中于应用逻辑,同时降低功耗。

蓝牙

  • 符合蓝牙 V5.0 + BR + EDR + BLE 规范(协议栈同时支持 5.1 实现,见认证信息)
  • 满足 Class2 / Class3 发射功率要求,支持 GFSK 与 π/4 DQPSK 所有包类型
  • 最大 +15 dBm 发射功率,接收灵敏度 -93 dBm
  • 蓝牙官方认证:Core v5.0(QDID 134104)、Core v5.1(QDID 136145)

WiFi

  • 支持 IEEE 802.11b/g/n,802.11n 支持 MCS0~MCS7、20MHz/40MHz 带宽,800ns / 400ns 保护间隔
  • 支持 AP / STA / Monitor(配网) 模式;AP 多站接入;STA 多网络记忆、择优连接、冷启动快连
  • 支持 Power Save 省电模式;支持 Open / WEP / WPA-PSK / WPA2-PSK + TKIP/AES/CCMP 加密
  • 支持脱离 802.11 协议直接收发底层 RF 数据包,可对接 CMW270 等测试仪测试 RF 性能
  • 发射功率:DSSS 1M/s 17dBm / MCS0 16dBm / MCS7 12dBm
  • 接收灵敏度:DSSS 1M/s -95dBm / MCS0 -91dBm / MCS7 -72dBm
  • Wi-Fi 联盟互操作性认证编号:WFA100441(WPA/WPA2-Personal、B/G/N 连通性测试)

音频

  • 集成 DAC、MIC、LINEIN、IIS、PDM、SPDIF 硬件模块;IIS 最高 8 通道(可独立配置输入/输出,16/24bit);PDMLINK 支持 4 路 16bit 数字麦;ADC 4 通道(每通道可配 MIC 或 LINEIN)
  • 编码:SBC、MSBC、CVSD、AAC、MP2、MP3、ADPCM、AMR、OPUS、SPX、WAV、PCM
  • 解码:SBC、MSBC、CVSD、AAC、ADPCM、AMR、APE、DTS、FLAC、M4A、MP1/2/3、OPUS、SPX、WAV、WMA、PCM;数据源支持 FLASH/SD卡/U盘/LINEIN/外挂FM/网络URL/经典蓝牙等
  • 音效:混响、回声、电音、变声变调、变速、移频、啸叫抑制、EQ、DRC、回声消除、传统降噪、神经网络降噪
  • 语音:活动语音检测 VAD、单/双 MIC 的打断唤醒 ASR;部分格式支持断点/快进快退/定点/AB 复读

视频

  • 支持 DVP-1/2/4/8bit、BT656 图像传感器接口的 YUV sensor,最大 720P 分辨率
  • JPEG 编码最大 720P@30fps@AVI 封装;支持任意尺寸 JPEG 单张编解码
  • 支持 SPI 接口摄像头;支持一路 DVP + 一路 SPI 摄像头同时输出 YUV(一路图传/录卡,另一路光流算法)
  • 支持图像拼接(176×128,最高 60fps);支持软件对 YUV 帧缩放、裁剪

显示

  • 支持 SPI、EMI、PAP、RGB888(8bit) / RGB666(6bit) 推屏接口(RGB 可达 480×272@15fps、320×240@30fps)
  • 杰理 UI 工具支持屏触摸、软件图层/旋转、音标显示、自定义合成区域、多字号同时显示、SD 卡加载 UI 资源
  • 支持播放 JPG、AVI、GIF 文件

网络协议栈与 AI 云平台

  • 基础协议:lwIP、mbedTLS、HTTP/HTTPS、WebSocket、CoAP、nopoll、cURL、MQTT、FTP、uIP、iperf
  • AI 云平台:图灵、百度云、腾讯云、中国电信智能家居、涂鸦、阿里云、华为 HiLink、天猫精灵、亚马逊、思必驰、玩瞳,以及火山大模型(LLM)

固件升级

  • 支持 U盘 / SD卡 单备份升级
  • 支持 U盘 / SD卡 / WiFi 双备份升级(升级更安全,失败可回滚)
  • 支持「代码双备份 + 资源部分备份 + 资源部分固定」方式升级

SDK 中间件

FAT 文件系统、数据存储记忆、FreeRTOS / Pthread API、循环缓冲 CBUF、帧缓冲 LBUF。

SDK 工程结构

仓库顶层结构如下:

fw-AC79_AIoT_SDK/
├── apps/                     # 应用层代码
│   ├── common/               # 公共模块(asr/audio_music/ble/camera/eth/fm/
│   │                         #   gsensor/jl_math/LLM/ui/usb/update/third_party_profile…)
│   ├── wifi_camera/          # 📌 WiFi 摄像头方案
│   ├── scan_box/             # 📌 扫码盒方案
│   ├── wifi_ipc/             # 📌 WiFi IPC 网络摄像机方案
│   ├── wifi_story_machine/   # 📌 WiFi 故事机方案
│   └── demo/                 # 📌 11 个功能 demo(ble/wifi/edr/ui/uvc/video/audio…)
├── cpu/wl82/                 # CPU 平台代码 + 预编译库(liba) + 烧录工具(tools)
├── include_lib/              # 头文件(btctrler/btstack/driver/media/net/system/update…)
├── lib/                      # 预编译库(net/server/utils…)
├── doc/                      # 数据手册(datasheet/AC791N规格书) 与资料(stuff)
├── docs/                     # 在线文档源(rst)
├── tools/                    # 编译工具(make_prompt.bat + utils)
├── Makefile                  # 顶层统一编译入口
└── default.workspace         # Code::Blocks 工作空间

关键目录说明

目录作用
apps/*/board/wl82/板级配置:引脚定义、外设初始化、编译选项、.cbp 工程
apps/common/公共模块:跨工程共享的音频、视频、蓝牙、WiFi、UI、AI 等中间件
apps/common/config/库配置:蓝牙 Profile、用户配置、日志等裁剪配置
apps/demo/功能示例:11 个可直接参考或修改的最小 demo 工程
cpu/wl82/liba/预编译库:*.a 静态库文件
cpu/wl82/tools/烧录工具:下载脚本、固件打包工具等
include_lib/头文件:协议栈、驱动、媒体、系统、网络等模块接口

方案工程与 Demo 矩阵

方案工程:

方案路径适用场景make target
WiFi 摄像头apps/wifi_camera/WiFi 监控摄像头、可视门铃、图传ac791n_wifi_camera
WiFi IPCapps/wifi_ipc/网络摄像机 IP Camera、录卡/网络推流ac791n_wifi_ipc
WiFi 故事机apps/wifi_story_machine/儿童故事机、智能音箱、网络音频播放ac791n_wifi_story_machine
扫码盒apps/scan_box/蓝牙/USB 扫码枪、HID/POS 设备ac791n_scan_box

功能 Demo:

Demo路径演示功能make target
demo_bleapps/demo/demo_ble/BLE 低功耗蓝牙数传ac791n_demo_demo_ble
demo_edrapps/demo/demo_edr/经典蓝牙 EDR(音乐/SPP/发射器/解码)ac791n_demo_demo_edr
demo_wifiapps/demo/demo_wifi/WiFi STA/AP 联网ac791n_demo_demo_wifi
demo_wifi_extapps/demo/demo_wifi_ext/外置 WiFi / LTE 扩展联网ac791n_demo_demo_wifi_ext
demo_audioapps/demo/demo_audio/音频采集/播放/编解码ac791n_demo_demo_audio
demo_videoapps/demo/demo_video/视频采集/JPEG 编码/录像ac791n_demo_demo_video
demo_uvcapps/demo/demo_uvc/USB UVC 摄像头ac791n_demo_demo_uvc
demo_uiapps/demo/demo_ui/UI 显示/图层/触摸ac791n_demo_demo_ui
demo_helloapps/demo/demo_hello/最小启动工程(入门骨架)ac791n_demo_demo_hello
demo_DevKitBoardapps/demo/demo_DevKitBoard/官方开发板综合演示ac791n_demo_demo_devkitboard
demo_matterapps/demo/demo_matter/Matter 物联网协议(需进入 board 目录编译)—

设计意图:方案工程用于量产、demo 工程用于学习。demo_hello 是"最小启动工程",最适合作为新项目起点;各 demo 刻意保持最小依赖,便于单独编译验证某个功能模块。

编译系统

顶层 Makefile 的递归机制

仓库根目录的 Makefile 是统一编译入口,其设计是:每个目标(target)对应一个方案/演示工程,通过 $(MAKE) -C 递归进入对应板级目录执行该工程的 Makefile。顶层不直接参与源码编译,只做任务分发,因此新增工程只需在顶层登记一个 target 即可接入统一构建体系。

顶层支持的目标定义(节选自 Makefile 注释与 .PHONY 声明):

# 支持的目标
# make ac791n_wifi_camera
# make ac791n_scan_box
# make ac791n_wifi_ipc
# make ac791n_wifi_story_machine
# make ac791n_demo_demo_ble
# make ac791n_demo_demo_wifi_ext
# make ac791n_demo_demo_edr
# make ac791n_demo_demo_ui
# make ac791n_demo_demo_hello
# make ac791n_demo_demo_devkitboard
# make ac791n_demo_demo_uvc
# make ac791n_demo_demo_video
# make ac791n_demo_demo_audio
# make ac791n_demo_demo_wifi

Source: Makefile

每个 target 的递归调用模式(以 WiFi 摄像头为例):

.PHONY: all clean ac791n_wifi_camera ... clean_ac791n_wifi_camera ...

all: ac791n_wifi_camera ac791n_scan_box ac791n_wifi_ipc \
     ac791n_wifi_story_machine ac791n_demo_demo_ble ... ac791n_demo_demo_wifi
	@echo +ALL DONE

clean: clean_ac791n_wifi_camera ... 
	@echo +CLEAN DONE

ac791n_wifi_camera:
	$(MAKE) -C apps/wifi_camera/board/wl82 -f Makefile

clean_ac791n_wifi_camera:
	$(MAKE) -C apps/wifi_camera/board/wl82 -f Makefile clean

Source: Makefile

关键设计点:

  • all 目标聚合所有方案与 demo,一条 make all 即可构建全部工程(用于 CI/全量验证);
  • 每个工程配对的 clean_<target> 只清理该工程的编译产物,互不干扰;
  • 实际编译参数(工具链路径、裁剪配置、链接脚本)全部下沉到 apps/*/board/wl82/Makefile,顶层保持"零业务逻辑",便于维护。

编译方式对比

方式适用平台入口说明
Code::BlocksWindows(推荐)板级目录下 AC791N_*.cbpIDE 图形化编译,Build → Build (Ctrl+F9)
Makefile 命令行Linux / Windows顶层 make <target>Windows 需先用 tools/make_prompt.bat 进入预配置环境
VS Code跨平台任务系统(Ctrl+Shift+B)仓库预置编译任务,选择目标即可

Linux 编译环境准备

# 1. 从 http://pkgman.jieliapp.com/doc/all 找到工具链下载链接
# 2. 解压到 /opt/jieli 目录,保证 /opt/jieli/common/bin/clang 存在
# 3. 确保文件描述符限制足够大(链接阶段需要打开大量文件)
ulimit -n 8096

# 4. 进入 SDK 根目录并行编译
make ac791n_wifi_camera -j`nproc`

Source: Makefile

工具链基于 clang 交叉编译:链接阶段需要同时打开大量目标文件与库文件,因此 ulimit -n 必须足够大(建议 > 8096),否则会以 "Too many open files" 失败——这是 Linux 下最常见的编译问题之一。

编译命令速查表

目标应用命令
WiFi 摄像头wifi_cameramake ac791n_wifi_camera
WiFi IPCwifi_ipcmake ac791n_wifi_ipc
WiFi 故事机wifi_story_machinemake ac791n_wifi_story_machine
扫码盒scan_boxmake ac791n_scan_box
BLE Demodemo_blemake ac791n_demo_demo_ble
EDR Demodemo_edrmake ac791n_demo_demo_edr
WiFi Demodemo_wifimake ac791n_demo_demo_wifi
扩展 WiFi Demodemo_wifi_extmake ac791n_demo_demo_wifi_ext
音频 Demodemo_audiomake ac791n_demo_demo_audio
视频 Demodemo_videomake ac791n_demo_demo_video
UVC Demodemo_uvcmake ac791n_demo_demo_uvc
UI Demodemo_uimake ac791n_demo_demo_ui
Hello Demodemo_hellomake ac791n_demo_demo_hello
开发板 Demodemo_DevKitBoardmake ac791n_demo_demo_devkitboard
全部全部make all
清理全部全部make clean

Core Flow

编译流程

sequenceDiagram
    participant Dev as 开发者
    participant Top as 顶层 Makefile
    participant Board as 板级 Makefile<br/>(apps/*/board/wl82)
    participant TC as 杰理工具链 (clang)
    participant Libs as 预编译库 (*.a)
    participant FW as 固件产物

    Dev->>Top: make ac791n_wifi_camera
    activate Top
    Top->>Top: 查找目标 ac791n_wifi_camera
    Top->>Board: $(MAKE) -C apps/wifi_camera/board/wl82
    activate Board
    Board->>Board: 解析 board_79xx_cfg.h 裁剪配置
    Board->>TC: 编译 apps/ 源码 + include_lib 头文件
    TC->>Libs: 链接静态库 (net/media/btstack...)
    Libs-->>TC: 符号解析
    TC-->>Board: 生成固件镜像
    Board-->>Top: 返回退出码
    deactivate Board
    Top-->>Dev: +ALL DONE
    deactivate Top

首次烧录流程

flowchart TD
    Start([开始]) --> HW["连接开发板<br/>USB 或 UART 到 PC"]
    HW --> Mode["按住烧录按键<br/>复位或重新上电<br/>进入编程模式"]
    Mode --> Tool["打开 USB 升级工具"]
    Tool --> Select["选择编译生成的固件文件"]
    Select --> Flash{"烧录成功?"}
    Flash -->|"是"| Boot["重启进入应用运行"]
    Flash -->|"否"| Retry["检查连接与编程模式<br/>重新烧录"]
    Retry --> Tool
    Boot --> End([结束])

⚠️ 注意:烧录前请确保 USB 升级工具正确连接且目标板已进入编程模式。量产场景改用生产烧写工具(支持 1 拖 2 等批量烧写),首次开发调试使用 USB 升级工具。

固件升级能力

AC791N 的升级体系覆盖从简单到安全的三个层次:

  • 单备份升级:U盘 / SD卡——实现最简单,升级失败可能变砖;
  • 双备份升级:U盘 / SD卡 / WiFi——代码双备份,升级失败可回滚,适合 OTA 场景;
  • 代码双备份 + 资源部分备份 + 资源部分固定:资源区按需固定,兼顾升级安全与存储利用率。

配置系统

SDK 的配置分两个维度:板级配置(硬件相关:引脚/外设/时钟)与功能裁剪配置(软件相关:协议栈/日志/用户参数)。二者解耦,使得同一套应用代码可以在不同型号芯片与不同外设组合上复用。

板级配置(board_79xx_cfg.h)

每个板级目录 apps/*/board/wl82/ 下的 board_79xx_cfg.h(按芯片型号区分,如 board_7916A_cfg.h)包含:

  • 引脚映射:UART / SPI / IIC / SDIO / GPIO 等外设的引脚分配
  • 外设使能:开启或关闭特定外设模块(音频、摄像头、屏、按键等)
  • 时钟配置:CPU 频率、外设时钟源
  • 功能开关与内存配置:按需启用功能、堆栈与缓冲池大小

设计意图:硬件差异全部收敛在板级头文件中,应用代码只通过宏与驱动接口访问硬件,因此从 AC7911B 切换到 AC7916A 通常只需更换板级配置目录,而无需改动应用逻辑。

功能裁剪配置(apps/common/config/)

apps/common/config/
├── bt_profile_config.c     # 蓝牙 Profile 配置
├── user_cfg.c              # 用户参数配置
├── new_cfg_tool.c          # 配置工具
├── ci_transport_uart.c     # 串口通信传输配置
└── log_config/             # 日志输出配置

设计意图:通过裁剪未使用的蓝牙 Profile、关闭日志输出等,可显著减小固件体积并降低功耗,是量产优化的第一步。

配置项速览

配置项位置类型说明
引脚映射board_79xx_cfg.h宏定义各外设引脚分配
外设使能board_79xx_cfg.h宏开关音频/摄像头/屏/按键等模块开关
时钟配置board_79xx_cfg.h数值CPU 频率、外设时钟源
蓝牙 Profileapps/common/config/bt_profile_config.c代码Profile 裁剪
用户参数apps/common/config/user_cfg.c代码用户级参数
日志等级/通道apps/common/config/log_config/配置文件日志输出等级与通道
串口传输apps/common/config/ci_transport_uart.c代码串口通信传输配置

Usage Examples

克隆仓库并编译 WiFi 摄像头方案

git clone https://gitee.com/Jieli-Tech/fw-AC79_AIoT_SDK.git
cd fw-AC79_AIoT_SDK

# Linux 下直接编译
make ac791n_wifi_camera -j`nproc`

Source: README.md

Windows + Code::Blocks 编译

# 1. 进入对应的板级目录
cd apps/wifi_camera/board/wl82/

# 2. 双击打开 .cbp 工程文件(如 AC791N_WIFI_CAMERA.cbp)
# 3. 在 Code::Blocks 中点击 Build → Build (Ctrl+F9)
# 4. 编译成功后,使用 USB 升级工具烧录生成的固件文件

Source: README.md

清理单个工程

make clean_ac791n_wifi_camera     # 清理 wifi_camera 编译产物
make clean_ac791n_demo_demo_ble   # 清理 demo_ble 编译产物

Source: README.md

工具链安装验证

# 验证工具链是否安装成功
clang --version

Source: README.md

Professional Notes

常见编译错误与排查

错误提示解决方法
clang: command not found未安装杰理编译工具链,或环境变量未配置
Too many open filesLinux 下执行 ulimit -n 8096 增加文件描述符限制
cannot find -lxxx缺少对应的 .a 库文件,检查 cpu/wl82/liba/ 与 lib/ 目录
undefined reference to ...功能裁剪配置未包含对应模块,检查 apps/common/config/ 下的配置

调试技巧

  • 串口日志:通过 apps/common/config/log_config/ 配置日志输出等级和通道;
  • GPIO Debug:利用空闲 GPIO 输出调试波形,测量时序;
  • 更多问题参考 在线 FAQ 文档。

扩展点:创建自己的工程

官方推荐的新项目流程:

  1. 复制 apps/ 下最接近的方案工程(例如音频类产品复制 wifi_story_machine,视频类复制 wifi_camera);
  2. 进入其 board/wl82/ 目录,复制并修改与目标芯片型号最接近的 board_79xx_cfg.h;
  3. 调整引脚和外设配置,按需在 apps/common/config/ 裁剪功能;
  4. 在顶层 Makefile 中登记新的 target(参照现有 target 的 $(MAKE) -C 模式)即可接入统一编译体系。

Source: README.md

性能与运维提示

  • 并行编译:make <target> -j<nproc> 可显著缩短构建时间(编译与链接均可并行);
  • 低功耗:芯片内置 PMU,支持 LDO/DCDC 供电模式与多种低功耗模式;WiFi 支持 Power Save;BLE 支持低功耗数传,产品设计时需在板级配置中启用对应省电功能;
  • 量产烧写:使用生产烧写工具而非 USB 升级工具,支持批量/裸片烧写。

认证信息

类别认证编号
蓝牙Core v5.0QDID 134104
蓝牙Core v5.1QDID 136145
WiFiWi-Fi CERTIFIED™ 互操作性(WPA/WPA2-Personal、B/G/N)WFA100441

Related Links

  • README.md(SDK 总览与快速开始)
  • README-en.md(英文版说明)
  • Makefile(顶层编译入口)
  • AC79 SDK 在线文档中心
  • AC791N 规格书(本地)
  • SDK 版本历史
  • 问题反馈(Gitee Issues)

快速开始:端到端开发流程

完整生命周期

flowchart LR
    A["克隆仓库<br/>git clone"] --> B["选择方案工程<br/>apps/wifi_camera 等"]
    B --> C["选择/修改板级配置<br/>board_79xx_cfg.h"]
    C --> D["编译固件<br/>make &lt;target&gt;"]
    D --> E["烧录调试<br/>USB 升级工具"]
    E --> F{"验证通过?"}
    F -->|"否"| C
    F -->|"是"| G["功能裁剪优化<br/>apps/common/config"]
    G --> H["量产烧写<br/>生产烧写工具"]

开发环境前提

系统说明
Windows✅ 推荐使用 Code::Blocks IDE 编译
Linux✅ 支持 Makefile 命令行编译
macOS⚠️ 需自行配置交叉编译工具链

依赖工具链:

工具用途获取方式
杰理编译工具链交叉编译(clang)开发环境文档;Linux 从 pkgman.jieliapp.com 下载解压到 /opt/jieli,确保 /opt/jieli/common/bin/clang 存在
USB 升级工具将固件烧录到目标板使用文档
生产烧写工具量产/裸片烧写使用文档

快速开始命令速记

# 1. 获取源码
git clone https://gitee.com/Jieli-Tech/fw-AC79_AIoT_SDK.git
cd fw-AC79_AIoT_SDK

# 2. 首次开发推荐先编译最小 demo_hello 验证工具链
make ac791n_demo_demo_hello

# 3. 编译目标方案
make ac791n_wifi_camera -j`nproc`

# 4. 清理产物
make clean_ac791n_wifi_camera

Source: README.md

总结

fw-AC79_AIoT_SDK 以「一个平台(wl82/AC791N)、四套方案工程(wifi_camera / wifi_ipc / wifi_story_machine / scan_box)、十一组功能 demo」为骨架,通过顶层 Makefile 递归分发与板级配置 + 功能裁剪两级配置实现多芯片、多产品的复用与裁剪。理解本页的分层架构、编译入口与配置入口后,即可按「选工程 → 改板级配置 → 编译 → 烧录」的标准路径启动一个 AC791N 产品项目。各方案工程的内部实现细节请参阅对应的应用示例页面与 AC79 模块示例文档。

Next
环境搭建与编译指南