杰理 SDK 文档中心
首页
首页
  • 概述与快速入门

    • 芯片平台与 SDK 概述
    • 环境搭建与编译工具链
    • 快速开始:选型、编译与烧录
    • 烧录与量产工具
  • 构建系统与板级工程

    • 顶层 Makefile 与编译目标
    • 板级工程与配置
    • 后处理与配置工具
  • HID 人机交互应用

    • HID 应用架构总览
    • 键盘、翻页器与遥控应用
    • 鼠标应用:单模、双模与低延迟
    • 空闲应用与初始化流程
  • BLE 透传与数传应用

    • 透传应用总览
    • 多连接与无连接传输
    • AT 命令模组应用
    • Dongle 适配器应用
  • BSP 公共模块

    • 蓝牙公共处理
    • 按键、LED 与红外
    • 传感器与编码器
    • 存储、VM 与文件系统
    • 电源管理与低功耗
    • 消息调度与通信外设
  • 协议栈与预编译库

    • 蓝牙协议栈库
    • 设备驱动与文件系统库
    • 音频、升级与其他库
  • 开发资料与补丁发布

    • 文档资料中心
    • 版本补丁与兼容性修复

烧录与量产工具

本文档介绍 fw-AW31N_BLE_SDK 固件的烧录与量产工具链,涵盖 USB 升级工具(isd_download.exe)、生产烧写工具、无线测试盒、首次烧录流程、OTA 升级方式以及相关配置,帮助开发者与产线工程师将编译生成的固件可靠地写入 AW31N 目标芯片。

Purpose and Scope

本页面聚焦于 AW31N BLE SDK 的固件烧录与量产环节,包括:

  • 官方烧录/量产工具的种类、用途与获取方式(USB 升级工具、生产烧写工具、无线测试盒)
  • 首次烧录的完整操作流程与编程模式进入方式
  • 固件烧录相关目录(apps/app/post_build/bd**/)与 INI 下载配置
  • OTA(空中升级)与烧录(有线下载)两条升级路径的边界与关系
  • 升级模块配置(lib_update_config.c)对烧录/升级行为的影响

以下主题不在本页面范围内,由其他目录页分别覆盖:

  • 固件编译流程与 Code::Blocks/Makefile 构建 → 参见「编译指南」
  • 蓝牙 OTA 升级协议与单/双备份机制细节 → 参见「OTA 升级」相关文档
  • 应用工程与板级配置 → 参见「配置说明」

Overview

AW31N BLE SDK 的交付物是可编译的工程源码,编译产物为 .hex 格式固件。要将该固件运行到目标硬件上,必须经过**烧录(Flashing)环节;而在产品量产阶段,还需要量产烧写(Mass Production)与产线测试(RF 标定/空中升级)**支持。

SDK 围绕两条升级/烧录路径组织工具链:

  1. 有线烧录路径:通过 USB/UART 连接 PC 与目标板,使用 USB 升级工具(isd_download.exe)将 .hex 固件写入芯片。适用于开发调试与首片烧录。
  2. 量产烧录路径:使用生产烧写工具对裸片/裸板进行批量编程,使用无线测试盒完成空中升级、射频标定与产品功能测试,适用于产线场景。

两者共享同一套固件产物(.hex)与下载配置(isd_config_ini.c),其设计意图是:开发阶段用最简单的工具快速迭代,量产阶段用专用工具保证吞吐率与一致性,同时通过统一的配置格式(INI)降低两种场景之间的切换成本。

SDK 还内置了 update/ 固件升级处理模块与 lib_update_config.c 升级模块配置,支持单备份和双备份蓝牙 OTA 升级,使量产后的设备可以在不拆机的情况下通过空中升级维护固件。

Architecture

下图展示了从固件编译产物到目标芯片的烧录与量产工具整体架构:

flowchart TD
    subgraph sg_Build["构建产物"]
        HEX[".hex 固件文件"]
    end

    subgraph sg_Tools["烧录与量产工具链"]
        ISD["USB 升级工具<br/>isd_download.exe"]
        BURNER["生产烧写工具<br/>量产/裸片烧写"]
        TESTBOX["无线测试盒<br/>空中升级/射频标定/产品测试"]
    end

    subgraph sg_Config["下载配置"]
        INI["isd_config_ini.c<br/>INI 下载脚本配置"]
        UPDATE_CFG["lib_update_config.c<br/>升级模块配置"]
    end

    subgraph sg_Device["目标设备"]
        DEV["AW31N 目标板"]
        OTA["OTA 升级模块<br/>单备份/双备份"]
    end

    HEX -->|"选择固件"| ISD
    HEX -->|"批量编程"| BURNER
    HEX -->|"空中升级"| TESTBOX
    INI -->|"配置下载行为"| ISD
    INI -->|"配置下载行为"| BURNER
    UPDATE_CFG -->|"裁剪升级功能"| OTA
    ISD -->|"USB/UART 烧录"| DEV
    BURNER -->|"批量烧写"| DEV
    TESTBOX -->|"OTA 空中升级"| OTA
    OTA --> DEV

各组件职责说明:

  • USB 升级工具(isd_download.exe):开发调试阶段的主力工具,通过 USB 或 UART 将 .hex 固件写入目标板。使用时要求目标板先进入编程模式(见「首次烧录流程」)。
  • 生产烧写工具:面向产线的批量烧写工具,支持裸片(bare die)编程,是量产阶段把固件写入芯片的关键环节。
  • 无线测试盒:产线测试设备,提供空中升级、射频标定与产品功能测试能力,将烧录与测试合并在产线工位上。
  • isd_config_ini.c:下载脚本的 INI 配置,控制下载工具的烧录行为,是连接工具与固件产物的配置纽带。
  • lib_update_config.c:升级模块的裁剪配置,决定固件中是否编译/启用 OTA 升级能力,直接影响双备份升级策略的可用性。

架构设计意图:将工具(GUI/可执行程序)、**配置(源码内 INI/裁剪项)与目标固件(.hex)**解耦,开发者只需改动配置即可适配不同芯片平台(bd**/ 目录按平台区分),产线无需改动源码即可通过工具完成批量操作。

烧录工具详解

USB 升级工具(isd_download.exe)

USB 升级工具是 SDK 开发流程中最常用的烧录工具,负责将编译生成的 .hex 固件通过 USB 或 UART 写入目标板。它在 SDK 目录中的位置与配套文件如下:

文件/目录作用
isd_download.exeUSB 升级工具主程序
download.bat一键下载批处理脚本(封装工具调用)
fw_add.exe固件附加处理工具(如追加升级信息/校验)
flash/isd_config_ini.c下载脚本的 INI 配置

Source: README.md(apps/app/post_build/bd**/ 目录说明)

设计意图:将工具与脚本统一放在 post_build 目录下,是因为烧录发生在编译(build)之后,工具与构建产物的生命周期天然相邻;bd** 按芯片平台划分目录,保证不同平台的下载参数(地址、速度、配置)互不干扰。

生产烧写工具(量产/裸片烧写)

生产烧写工具面向量产场景,与 USB 升级工具的核心区别在于:

  • 批量:支持一拖二(1tuo2)等并行烧写模式,提升产线吞吐率
  • 裸片支持:可直接对未封装/未贴片的裸片(bare die)编程,适用于芯片出厂前烧录
  • 配置复用:同样读取 isd_config_ini.c 的 INI 配置,保证开发与量产烧录参数一致

无线测试盒

无线测试盒将产线中的三类操作合并到一台设备:

  1. 空中升级:通过 BLE 无线通道对已贴片设备进行固件升级(与 OTA 模块配合)
  2. 射频标定:对芯片射频参数进行校准,保证量产一致性
  3. 产品测试:执行产线功能测试项,实现烧录→测试一体化

首次烧录流程

README 第 8.1 节给出了完整的首次烧录步骤,这是所有开发者的必经路径:

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

Source: README.md

其中编程模式是关键前提:AW31N 芯片在正常启动后运行应用固件,无法被下载工具直接写入;只有在上电/复位瞬间按住烧录按键,芯片才会进入 Bootloader 下载模式,等待 PC 端工具通过 USB/UART 发送固件数据。

烧录前置条件

  • 工具已正确安装(USB 升级工具需向官方申请)
  • 开发板通过 USB 或 UART 与 PC 建立物理连接
  • 目标板已进入编程模式(烧录按键 + 复位/重新上电)
  • 已编译生成 .hex 固件文件(编译方式见「编译指南」页面)

烧录注意事项

README 明确提示:烧录前请确保 USB 升级工具正确连接且目标板已进入编程模式。若未进入编程模式,工具将无法枚举到目标设备或下载失败;若连接不稳定,烧录过程中断可能导致固件写入不完整。

核心烧录流程图

flowchart TD
    Start([开始]) --> Connect["连接开发板到 PC<br/>USB 或 UART"]
    Connect --> Boot{"进入编程模式?<br/>按住烧录按键 + 复位/上电"}
    Boot -->|"否"| Retry["重新执行进入编程模式操作"]
    Retry --> Boot
    Boot -->|"是"| Open["启动 isd_download.exe"]
    Open --> Select["选择编译生成的 .hex 固件"]
    Select --> Download["点击下载按钮开始烧录"]
    Download --> Check{"烧录完成?"}
    Check -->|"是"| Success(["设备正常运行固件"])
    Check -->|"否"| Fail["检查连接与编程模式<br/>重新烧录"]
    Fail --> Boot

该流程图反映了 README 第 8.1 节描述的实际控制流:硬件连接与编程模式是前置条件,工具操作是三个连续步骤(打开 → 选择固件 → 点击下载),任何一步失败都回到编程模式检查环节,形成闭合的排错循环。

OTA 升级(空中升级)

除有线烧录外,SDK 支持蓝牙 OTA 升级,包括单备份和双备份两种模式,相关细节见 README 8.2 节:

支持单备份和双备份蓝牙 OTA 升级,详见:OTA 开发文档

Source: README.md

单备份与双备份

  • 单备份:芯片内仅保存一份应用固件,OTA 升级时直接覆盖。实现简单、占用 flash 少,但升级失败可能造成设备无法启动(需要重新烧录恢复)。
  • 双备份:芯片内保留当前固件 + 新固件两份,升级完成后切换启动。升级失败可回滚到旧固件,可靠性高,适合量产设备远程维护。

设计意图:两种模式的取舍本质是 flash 容量与可靠性之间的权衡。开发/小批量场景常用单备份节省空间;量产产品建议双备份以降低售后风险。具体启用哪种模式由 lib_update_config.c 升级模块配置控制(见「配置选项」节)。

配置选项

下载脚本配置(isd_config_ini.c)

下载脚本的 INI 配置位于 apps/app/post_build/bd**/flash/isd_config_ini.c,控制 USB 升级工具与生产烧写工具的下载行为。README 将其指向官方「下载脚本配置文档」:

详细的 INI 配置(apps/app/post_build/bd**/flash/isd_config_ini.c)说明请参考:下载脚本配置文档

Source: README.md

配置项(示意)类型默认值说明
下载接口stringUSB/UART工具与目标板的物理连接方式
固件路径string编译输出目录.hex 固件的查找路径
芯片平台参数string对应 bd** 平台烧录地址、时钟、接口参数等
烧录校验bool开启烧录完成后是否校验固件完整性

注:由于该文件为源码内配置且具体字段随芯片平台变化,表中为基于 README 描述归纳的配置维度;完整字段清单以官方「下载脚本配置文档」与仓库内 bd**/flash/ 实际文件为准。

升级模块配置(lib_update_config.c)

lib_update_config.c 位于应用工程的 config/ 目录下,用于裁剪升级模块功能,直接影响固件是否包含 OTA 升级能力:

apps/demo/hid/config/
├── lib_update_config.c      # 升级模块配置
└── ...

Source: README.md

配置维度说明
OTA 升级使能是否编译升级模块,关闭可减小固件体积
单/双备份选择决定升级时是否保留可回滚的旧固件
升级传输通道BLE 空中通道参数(与无线测试盒配合)

使用示例

示例一:安装烧录工具清单

README 第 3.3 节给出了烧录/量产工具的完整清单与获取方式:

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

Source: README.md

解读:三款工具覆盖了「开发烧录 → 量产烧写 → 产线测试」的完整生命周期。USB 升级工具需要申请(淘宝链接),生产烧写工具与无线测试盒同样需通过官方渠道获取,说明该工具链并非开源交付,而是杰理(Jieli)官方的闭源产线工具。

示例二:编译并烧录的完整命令流

# 1. 进入对应的板级目录
cd apps/demo/hid/board/bd47/

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

Source: README.md

设计意图:烧录与编译在流程上紧耦合——先构建生成 .hex,再通过工具烧录。post_build 目录名也暗示了这一点:下载工具与构建脚本放在一起,方便开发者在同一目录完成「编译 → 烧录」闭环。

失败模式与边缘情况

基于 README 与目录结构,烧录/量产环节存在以下典型失败模式:

失败场景表现处理方式
未进入编程模式工具无法识别设备 / 下载失败重新按住烧录按键并复位/重新上电(README 8.1 明确提示)
USB/UART 连接不稳定烧录中断、固件写入不完整检查线缆与端口,重新烧录
工具未正确安装启动 isd_download.exe 失败按 README 3.3 重新申请/安装工具
固件文件缺失工具无法选择 .hex回到编译环节重新构建
单备份 OTA 升级失败设备无法启动,需有线恢复量产设备建议使用双备份模式

边缘情况说明:

  • 首次烧录(First Flash)与 OTA 升级的边界:首次烧录必须走有线路径(芯片内无可用固件),OTA 只适用于已烧录成功的设备——这也是工具链必须保留 isd_download.exe 的原因。
  • 量产烧写的裸片场景:生产烧写工具支持裸片编程,此时无板级烧录按键,进入编程模式由烧写夹具自动完成,与开发板的手动操作路径不同。

性能与运维注意事项

  • 产线吞吐率:生产烧写工具支持一拖二(burner_1tuo2 文档路径暗示并行烧写)等批量模式,是产线效率的关键;USB 升级工具面向单板调试,不承担批量任务。
  • 烧录校验:烧录完成后建议保持校验开启,避免不良固件流入下一工序。
  • 升级可靠性:量产产品建议启用双备份 OTA,降低远程升级失败导致的返修成本;同时通过 lib_update_config.c 裁剪非必要升级功能以控制固件体积。
  • 环境一致性:开发与量产应使用同一份 isd_config_ini.c 配置,避免参数漂移导致的烧录差异。

扩展点

  • 新增芯片平台:在 apps/app/post_build/ 下新增对应 bd**/ 目录,携带该平台的 download.bat、fw_add.exe、isd_download.exe 与 flash/isd_config_ini.c 配置,即可复用既有烧录流程。
  • 定制下载脚本:通过修改 download.bat 与 isd_config_ini.c,可将烧录动作集成进 CI/产线自动化系统。
  • 升级策略选择:通过 config/lib_update_config.c 配置单/双备份升级策略,无需改动工具即可适配不同产品的可靠性要求。

Related Links

官方工具文档(外部)

  • USB 升级工具使用文档(强制升级) — isd_download.exe 的详细使用方法
  • 生产烧写工具使用文档(一拖二) — 量产/裸片烧写说明
  • 无线测试盒使用文档(一拖二) — 空中升级/射频标定/产品测试说明
  • 下载脚本配置文档 — isd_config_ini.c INI 配置详解
  • OTA 开发文档 — 单备份/双备份蓝牙 OTA 升级机制

仓库内源文件

  • README.md(烧录工具安装 §3.3) — 工具清单与获取方式
  • README.md(编译并烧录 §4.4) — 编译到烧录的命令流
  • README.md(关键目录 §5.1) — post_build 烧录工具目录说明
  • README.md(烧录与升级 §8) — 首次烧录流程与 OTA 升级
  • README.md(功能裁剪配置 §9.1) — lib_update_config.c 升级模块配置

相关目录页

  • 编译指南 — 如何生成可烧录的 .hex 固件(Code::Blocks / Makefile)
  • 配置说明 — 板级配置与功能裁剪(含 lib_update_config.c 的完整说明)
  • 应用开发 — 目标固件的功能来源(transfer/hid 应用工程)
Prev
快速开始:选型、编译与烧录