烧录与量产工具
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 的固件交付链路分为三个阶段,每个阶段对应不同的工具:
- 开发阶段(首次烧录):开发者编译生成固件后,通过 USB 升级工具 将固件烧录到目标板进行调试;
- 量产阶段(生产烧写):产线使用 生产烧写工具(一拖二 / 一拖八)对裸片或整板进行批量烧写,支持并行操作以提升产能;
- 售后/维护阶段(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.cbp | SDK 工程入口 | 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 首次烧录"一节,共五步:
- 连接硬件:将开发板通过 USB 或者 USB 升级工具 连接到 PC;
- 进入编程模式:
- 方式一(USB):按住开发板上的烧录按键,然后复位或重新上电;
- 方式二(USB/UART):通过 USB 升级工具进入编程模式;
- 打开 USB 升级工具:启动烧录上位机;
- 选择固件:选择编译生成的固件文件;
- 开始烧录:点击下载按钮,等待烧录完成。
编程模式的意义
进入编程模式是烧录能否成功的前提。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: 界面显示烧录完成
关键时序点说明:
- 进入编程模式必须先于工具连接:目标板需先处于编程模式,USB 升级工具才能识别设备;
- 固件选择发生在握手之前:工具先拿到固件文件,才能向设备下发正确的分区数据;
- 写入后校验:烧写完成后设备侧会校验数据,只有校验通过才视为烧录成功,避免脏数据流入产线。
使用示例
以下示例均提取自仓库 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.h | sdk/apps/app/src/mbox_flash/app_config.h | C 头文件 | 目标应用的功能开关,决定固件包含的升级能力(如 OTA 是否启用) |
make_prompt.bat | sdk/tools/make_prompt.bat | 批处理 | Windows 编译命令行入口,预配置环境变量与 make 路径 |
AW30N_mbox_flash.cbp | sdk/ 根目录 | 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 配置说明