杰理 SDK 文档中心
首页
首页
  • 项目概览

    • SDK 简介与核心特性
    • 芯片平台与硬件资料
    • SDK 版本与发布信息
  • 快速开始

    • 环境搭建与工具链
    • 编译工程
    • 烧录与量产工具
  • 工程结构与构建系统

    • 工程目录布局
    • 构建与链接配置
  • 应用层开发

    • mbox_flash 应用框架
    • 板级支持包 (BSP)
    • 公共应用模块
    • UI 显示子系统
  • 蓝牙子系统

    • BLE 控制器、链路层与 HCI 传输
    • GATT 服务框架
    • BLE 应用示例:遥控器 / Dongle / 对讲机
    • 经典蓝牙支持
  • 音频子系统

    • 音频编解码器
    • 音频设备接口 (DAC / ADC / APA)
    • 音效处理与 EQ
    • 播放、录音与 MIO 工作流
  • 设备与文件系统

    • 存储设备驱动 (NorFlash / SDMMC / USB)
    • 文件系统 (FAT / nor_fs / SYDF)
    • 设备管理框架 (dev_mg)
  • 系统服务与电源管理

    • 消息机制 (msg / hot_msg)
    • 配置与参数存储 (app_config / VM)
    • 电源管理 (SOFT OFF / POWER DOWN)
  • 固件升级

    • 升级框架总览 (code_v1 / code_v2)
    • 双 Bank 升级机制
    • 升级通道:UART / 测试盒 / BLE OTA / USB / SD
  • 补丁包与版本维护

    • 版本升级补丁链 (v1.1.0 → v1.4.0)
    • 问题修复补丁
    • 固件裁剪与资源优化
  • 开发工具与支持

    • 辅助工具与脚本
    • 文档、配置说明与常见问题

烧录与量产工具

AW30N BLE SDK 的固件烧录与量产工具链说明,覆盖 USB 升级工具(开发烧录)、生产烧写工具(一拖二/一拖八量产烧写)与无线测试盒(空中升级/射频标定)的获取、使用流程与配置要点。

Purpose and Scope

本文档面向使用 AW30N SDK 进行固件烧录与规模化量产的开发者和产线工程师,系统介绍:

  • 三类烧录/量产工具的用途、获取方式与适用场景;
  • 首次烧录(开发阶段)的完整操作流程与编程模式进入方法;
  • 量产场景下生产烧写工具(一拖二/一拖八)的裸片烧写能力;
  • 多种 OTA 升级通道(蓝牙、USB、U 盘/SD 卡、串口)的对比与适用场景;
  • 固件产物、ISD_CONFIG.INI 配置与常见失败模式。

本页不包含以下内容(它们属于相邻目录页面的主题,仅在本页做交叉引用):

  • 编译与环境搭建(工具链安装、Code::Blocks / Makefile / VS Code 编译):参见"编译指南"页面;
  • 应用功能配置(app_config.h 功能开关、BLE GATT 服务配置):参见"配置说明"页面;
  • 芯片选型与硬件设计:参见"芯片选型"相关文档(选型表)。

Overview

AW30N SDK 的固件交付链路分为三个阶段,每个阶段对应不同的工具:

  1. 开发阶段(首次烧录):开发者编译生成固件后,通过 USB 升级工具 将固件烧录到目标板进行调试;
  2. 量产阶段(生产烧写):产线使用 生产烧写工具(一拖二 / 一拖八)对裸片或整板进行批量烧写,支持并行操作以提升产能;
  3. 售后/维护阶段(OTA 升级):设备出厂后通过 无线测试盒(蓝牙/串口)、手机蓝牙、手机 USB、U 盘/SD 卡等通道进行固件升级。

SDK 固件本身内置了完整的升级能力支持(见 README.md 第 52-56 行):

  • 支持 U 盘 / SD 卡设备升级;
  • 支持测试盒串口升级;
  • 支持测试盒蓝牙升级;
  • 支持手机蓝牙 OTA 升级;
  • 支持手机 USB 升级。

这意味着固件在出厂后具备多通道的自升级能力,量产工具只需完成首次烧录,后续维护可通过 OTA 通道远程完成。

Architecture

以下架构图展示了 PC 端工具、SDK 编译产物与目标设备之间的关系:

flowchart TD
    subgraph sg_SDK["SDK 编译产物"]
        CBP["AW30N_mbox_flash.cbp 工程"]
        Make["Makefile / make_prompt.bat"]
        FW["编译生成的固件"]
    end

    subgraph sg_PC["PC 端 / 产线工具"]
        USB_Tool["USB 升级工具"]
        Prod_Burner["生产烧写工具(一拖二/一拖八)"]
        Test_Box["无线测试盒"]
    end

    subgraph sg_Device["目标设备"]
        Dev["AW30N 目标板"]
        Flash[("内部 FLASH")]
    end

    CBP --> Make
    Make --> FW
    FW -->|"选择固件文件"| USB_Tool
    FW -->|"配置烧写数据"| Prod_Burner
    USB_Tool -->|"USB / UART 编程模式"| Dev
    Prod_Burner -->|"一拖多并行烧写"| Dev
    Test_Box -->|"蓝牙空中升级 / 串口升级"| Dev
    Dev --> Flash

各组件职责说明:

组件角色说明
AW30N_mbox_flash.cbpSDK 工程入口Code::Blocks 工程,覆盖 AW30N 全系列(BLE 蓝牙/小音箱/音频播放),编译后产出固件
Makefile / make_prompt.bat命令行编译入口Windows 下通过批处理进入预配置环境后执行 make 编译
USB 升级工具开发烧录上位机将编译生成的固件烧录到目标板,需要目标板进入编程模式
生产烧写工具量产烧录上位机一拖二/一拖八并行烧写,支持裸片烧写,由代理商提供
无线测试盒空中升级/测试设备支持空中升级、射频标定与产品测试,可通过蓝牙或串口与设备交互

该架构的关键设计意图是编译与烧录解耦:编译链路(工程 → Makefile → 固件)与烧录链路(工具 → 设备 → FLASH)相互独立,固件产物是两者之间的唯一契约,因此开发烧录、量产烧写和 OTA 升级可以共用同一份固件文件,无需为不同阶段重新构建。

工具总览与获取方式

SDK 所需的烧录与量产工具在 README.md 第 114-120 行 的"3.3 安装烧录工具"一节统一列出:

工具用途获取方式
USB 升级工具将固件烧录到目标板申请链接 · 使用文档
生产烧写工具量产/裸片烧写代理商处 · 使用文档
无线测试盒空中升级/射频标定/产品测试申请链接 · 使用文档

工具选择的关键决策依据:

  • USB 升级工具:面向单台设备的开发烧录。可通过淘宝申请,适合开发者日常调试,配合 README 中的编译流程(见下节"首次烧录")使用;
  • 生产烧写工具:面向产线批量烧写,不通过公开渠道销售,须从代理商处获取。这是量产场景的唯一正规通道,支持裸片烧写(芯片未贴片前直接烧录 FLASH),支持一拖二/一拖八并行;
  • 无线测试盒:兼具升级与测试双重职能,可用于空中升级(OTA)、射频标定与产品功能测试,是产线整机测试环节的核心设备。

首次烧录(开发阶段)

首次烧录的完整流程定义在 README.md 第 286-298 行 的"8.1 首次烧录"一节,共五步:

  1. 连接硬件:将开发板通过 USB 或者 USB 升级工具 连接到 PC;
  2. 进入编程模式:
    • 方式一(USB):按住开发板上的烧录按键,然后复位或重新上电;
    • 方式二(USB/UART):通过 USB 升级工具进入编程模式;
  3. 打开 USB 升级工具:启动烧录上位机;
  4. 选择固件:选择编译生成的固件文件;
  5. 开始烧录:点击下载按钮,等待烧录完成。

编程模式的意义

进入编程模式是烧录能否成功的前提。AW30N 芯片在上电启动时会检查烧录按键状态或枚举信号:只有处于编程模式,芯片的 Bootloader 才会开放 FLASH 写入接口,拒绝在正常运行模式下被外部工具改写,从而防止误烧录破坏应用固件。README 特别提示"烧录前请确保 USB 升级工具正确连接且目标板已进入编程模式",这正是最常见的失败原因。

与编译流程的衔接

烧录发生在编译成功之后。README.md 第 153-159 行 的"4.4 编译并烧录"给出了完整链路:通过 Code::Blocks 打开 AW30N_mbox_flash.cbp → Build(Ctrl+F9)→ 编译成功后使用 USB 升级工具烧录生成的固件。也支持 Makefile 命令行编译(make -j4)与 VS Code 任务编译(Ctrl+Shift+B),三种方式产出的固件均可由 USB 升级工具烧录。

生产烧写(量产阶段)

量产烧写流程定义在 README.md 第 300-302 行 的"8.2 生产烧写"一节:

量产场景请使用杰理生产烧写工具(一拖二 / 一拖八),支持裸片烧写。

两个关键能力:

  • 一拖二 / 一拖八:单个上位机 + 烧写器同时驱动 2 或 8 个目标,显著提升产线吞吐。量产效率与烧写器路数成正比,选择一拖八可最大化产能;
  • 裸片烧写:支持对未贴片(或未焊接)的裸芯片直接烧写,将"烧写"环节前移到 SMT 之前,产线可先完成 FLASH 内容灌装再贴片,缩短整机测试时间。

配套文档:

  • 一拖二烧写器使用说明
  • 一拖八烧写器使用说明

OTA 升级(售后/维护阶段)

设备出厂后的固件升级通道定义在 README.md 第 304-310 行 的"8.3 OTA 升级"一节,支持四种升级方式:

升级方式通道典型场景
蓝牙 OTA 升级手机蓝牙 / 测试盒蓝牙消费者手机 App 升级、产线批量空中升级
USB 升级手机 USB通过手机 USB 线连接设备升级
U 盘 / SD 卡升级存储介质离线批量升级,无需上位机
测试盒串口升级UART产线/售后有线升级,稳定性高

设计意图:OTA 通道与烧录工具形成互补——烧录工具负责"第一次写入",OTA 负责"后续更新"。其中 U 盘/SD 卡升级为离线批量维护提供了低成本方案,而测试盒蓝牙升级则允许产线在整机装配完成后无需拆机即可完成固件刷新。

核心流程:首次烧录时序

以下时序图展示使用 USB 升级工具完成首次烧录的完整交互过程:

sequenceDiagram
    participant U as 开发者
    participant T as USB 升级工具
    participant D as AW30N 目标板
    participant F as 内部 FLASH

    U->>D: 通过 USB 连接开发板
    U->>D: 按住烧录按键并复位/重新上电
    D-->>T: 进入编程模式,枚举为烧录设备
    U->>T: 启动工具并选择编译生成的固件
    U->>T: 点击下载按钮
    T->>D: 握手并下发固件数据
    D->>F: 写入系统/资源分区
    D-->>T: 校验并返回烧录结果
    T-->>U: 界面显示烧录完成

关键时序点说明:

  1. 进入编程模式必须先于工具连接:目标板需先处于编程模式,USB 升级工具才能识别设备;
  2. 固件选择发生在握手之前:工具先拿到固件文件,才能向设备下发正确的分区数据;
  3. 写入后校验:烧写完成后设备侧会校验数据,只有校验通过才视为烧录成功,避免脏数据流入产线。

使用示例

以下示例均提取自仓库 README.md 的实际内容。

示例一:编译固件(Makefile 命令行)

编译是烧录的前置步骤。Windows 下先通过 make_prompt.bat 进入预配置环境,再执行并行编译:

# Windows 用户
双击 sdk/make_prompt.bat 打开命令行环境

# 编译
make -j4

# 显示编译详情
make VERBOSE=1 -j4

Source: README.md

make_prompt.bat 的设计意图是屏蔽 Windows 下的环境变量与 make 路径配置差异(README 常见问题 10.2 指出,直接使用 make 会报"不是有效命令",必须经由该脚本进入预配置命令行),-j4 用于并行编译加速。

示例二:验证编译工具链

烧录工具与编译工具链独立安装,烧录前需确认工具链可用:

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

Source: README.md

Linux 用户需将工具链解压到 /opt/jieli,并确保 /opt/jieli/pi32/bin/clang 存在——这是编译链路能够产出固件的先决条件。

示例三:克隆仓库并定位工程入口

git clone https://gitee.com/Jieli-Tech/AW30N.git
cd AW30N/sdk

Source: README.md

SDK 唯一的应用工程 AW30N_mbox_flash.cbp 位于 sdk/ 根目录(对应 apps/app/src/mbox_flash/ 应用代码),编译产物即烧录工具的输入固件。

示例四:烧录前置检查

# 编译前请确保 USB 升级工具正确连接且目标板已进入编程模式

Source: README.md

README 在编译章节明确提示:烧录前须确认 USB 升级工具连接正常、目标板已进入编程模式。这是整个烧录流程中最容易出错、也最需要提前核对的环节。

配置说明

烧录相关配置项分散在工具侧与 SDK 侧,如下表所示:

配置项所在位置类型说明
ISD_CONFIG.INI烧录工具侧INI 文件烧录数据分区/地址等配置,详见 ISD 配置说明
app_config.hsdk/apps/app/src/mbox_flash/app_config.hC 头文件目标应用的功能开关,决定固件包含的升级能力(如 OTA 是否启用)
make_prompt.batsdk/tools/make_prompt.bat批处理Windows 编译命令行入口,预配置环境变量与 make 路径
AW30N_mbox_flash.cbpsdk/ 根目录Code::Blocks 工程编译入口,产出供烧录工具使用的固件

注意:ISD_CONFIG.INI 属于烧录上位机侧的烧录数据配置,README 在"8.1 首次烧录"一节中明确指向了官方 INI 配置文档(README.md 第 298 行),量产烧写的分区布局与数据源需在此文件中定义。

失败模式、边界情况与常见问题

烧录失败模式

现象根因处理方式
工具无法识别设备目标板未进入编程模式按住烧录按键后复位/重新上电,或通过 USB 升级工具强制进入编程模式
烧录中断/失败USB 连接不稳定或固件文件损坏检查连接线缆,重新编译并确认固件完整性
工具提示缺少配置ISD_CONFIG.INI 未正确配置分区参考 ISD 配置说明 检查烧录数据配置

编译环境边界情况(README 10.2 常见问题)

  • Windows 下 make 不是有效命令:必须使用 sdk/make_prompt.bat 进入预配置命令行环境,该脚本已设置好所有环境变量和 make 的路径——直接使用系统 make 会因缺少 SDK 工具链路径而失败;
  • 编译速度慢:使用 -j 参数并行编译,如 make -j4(数字为并行任务数),与烧录效率优化思路一致。

并发与一致性说明

  • 烧录工具侧:量产烧写工具通过硬件多路(一拖二/一拖八)实现并行,各路烧写相互独立,单路失败不影响其他路;
  • 设备侧:烧写完成后设备执行校验,校验通过才结束流程,保证写入 FLASH 的数据一致性;
  • 升级与运行互斥:编程模式与正常运行模式互斥,正常运行时芯片不开放 FLASH 写入,从机制上防止运行态误改写固件。

性能与运维注意

  • 开发阶段:单台烧录,重点在正确性而非速度;make -j4 并行编译可缩短"编译-烧录"迭代周期;
  • 量产阶段:一拖八烧写器相对一拖二可提升约 4 倍吞吐,是产线产能的关键杠杆;裸片烧写将 FLASH 灌装前移至贴片前,可减少整机测试环节的占用;
  • 维护阶段:U 盘/SD 卡升级支持离线批量维护,适合无法联网或不便连接上位机的场景;测试盒蓝牙升级适合整机装配后的产线刷新。

扩展点

  • 升级通道扩展:SDK 内置升级模块位于 sdk/apps/include_lib/update/(固件升级头文件),应用层通过 app_config.h 开关控制升级能力组合(蓝牙 OTA / USB / U 盘 / 串口),开发者可按产品形态裁剪;
  • 烧录数据定制:通过 ISD_CONFIG.INI 定义烧录分区与数据源,可适配不同 FLASH 容量与固件布局的产品;
  • 产线工具集成:生产烧写工具与无线测试盒均为独立上位机,可接入产线自动化框架(如 MES 系统)实现烧写、标定、测试的流水线化管理。

测试与验证

仓库未包含烧录工具的自动化测试用例(烧录工具为独立上位机软件,由杰理官方提供)。SDK 侧的验证手段包括:

  • 编译验证:make -j4 或 Code::Blocks Build 成功产出固件,是烧录前的第一道质量门;
  • 烧录后功能验证:首次烧录完成后通过应用功能(BLE 连接、音频播放等)验证固件正确写入;
  • 调试辅助:README 10.3 提供串口日志(UART 输出调试日志)与 BLE 抓包(BLE Dongle 空中抓包)两种调试手段,可用于定位烧录后运行异常。

Related Links

  • 编译指南:工具链安装、Code::Blocks / Makefile / VS Code 三种编译方式
  • 配置说明:app_config.h 功能开关与 BLE GATT 服务配置
  • README.md(烧录与升级章节):本文档的权威来源
  • README.md(安装烧录工具):工具获取方式汇总
  • 杰理在线文档中心(AW30):官方文档入口
  • USB 升级工具使用文档
  • 一拖二烧写器使用说明
  • 一拖八烧写器使用说明
  • 无线测试盒使用说明
  • ISD 配置说明
Prev
编译工程