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

    • SDK 总览
    • 支持芯片与蓝牙认证
    • 工程结构导航
  • 开发环境与构建

    • 环境搭建与工具链安装
    • 编译指南与工程选择
    • 烧录与生产工具
  • BLE 透传/数传应用

    • 透传应用框架与处理模块
    • 透传与数传示例
    • 多连接与自定义服务示例
    • FindMy 与查找网络示例
  • HID 人机交互应用

    • 键盘与按键设备示例
    • 鼠标设备示例
    • 遥控器示例
    • HID 蓝牙应用模块
  • 公共 BSP 模块

    • 按键、编码器与红外输入
    • 传感器驱动
    • LED 与显示控制
    • 串口与 USB 通信
    • 存储、参数与时钟
    • 电源与温度管理
    • 消息、内存与系统配置
    • OTA 升级框架
  • 蓝牙协议栈与库

    • BLE 控制器与协议栈适配
    • 经典蓝牙 BR/EDR 支持
    • 第三方蓝牙协议
    • 设备管理框架
    • DUT 测试与射频认证
  • 构建系统与开发工具

    • Makefile 构建系统
    • 固件后处理与配置工具
    • 辅助脚本与库合并
  • 文档与硬件资料

    • AT 命令参考
    • 硬件参考资料
    • SDK 文档与在线资源

烧录与生产工具

本文档介绍 fw-AW33N_BLE_SDK 的烧录与生产工具链:从编译产物的固件打包、PC 端 USB 升级工具烧录、量产烧写,到无线 OTA 升级与测试盒标定,覆盖首次烧录、配置工具与常见问题的完整流程。

Purpose and Scope

本页聚焦 AW33N_BLE_SDK 的烧录与生产能力,包括:

  • 烧录工具链组成(isd_download.exe / download.bat / fw_add.exe 等)及其在仓库中的位置(apps/app/post_build/bd**/)
  • 首次烧录(First Flash)的完整操作流程与硬件前提
  • 固件产物(.hex)与下载配置(isd_config_ini.c)的关系
  • 生产烧写工具(量产/裸片烧写)与无线测试盒(OTA 升级/射频标定/产品测试)的定位
  • AW33N 配置工具(AW33N_config_tool)生成 .fw 固件配置的工作机制
  • OTA 升级(单备份/双备份)与常见问题

不在此页覆盖的内容:

  • 编译工具链的安装与验证(见"编译指南"目录页)
  • 蓝牙协议栈、驱动等模块的功能裁剪(见"配置说明"目录页)
  • 应用层业务开发(见各应用工程文档)

Overview

AW33N 系列芯片(bd57 平台)的固件烧录采用"PC 工具 + 板端编程模式"的架构:芯片出厂自带引导加载(Bootloader),PC 端工具通过 USB/UART 与板端通信,将编译生成的 .hex 固件写入 Flash。整个烧录体系围绕三类场景设计:

  1. 开发调试:使用 USB 升级工具(isd_download.exe)在开发板上反复烧录最新固件;
  2. 量产生产:使用生产烧写工具对裸片/整板进行批量烧写,支持一拖多(1拖2)流水线作业;
  3. 售后升级:通过无线测试盒或手机 App 进行 OTA 空中升级,支持单备份与双备份两种升级策略。

仓库中与烧录直接相关的目录为 apps/app/post_build/(工程编译前配置与下载目录),其中按芯片平台(如 bd57)存放工具脚本与配置:

目录内容
apps/app/post_build/bd57/各芯片平台的库文件与工具脚本(download.bat、fw_add.exe、isd_download.exe 等)
apps/app/post_build/bd57/flash/下载/烧录配置(如 isd_config_ini.c)与脚本
apps/app/post_build/bd57/AW33N_config_tool/AW33N 配置工具:以 Lua 脚本驱动固件配置生成(.fw 文件)
apps/include_lib/liba/bd**/flash预编译静态库 *.a(bt_controller_lib.a、bt_protocol_lib.a、cpu_lib.a 等),编译链接所需

Architecture

flowchart TD
    subgraph sg_Dev["开发/编译环境"]
        CB["Code::Blocks (.cbp 工程)"]
        MK["Makefile (make aw33n_hid)"]
    end

    subgraph sg_Build["编译与打包 (post_build)"]
        HEX[".hex 固件产物"]
        FWADD["fw_add.exe 固件打包"]
        CFGTOOL["AW33N_config_tool 配置工具"]
        FW[".fw 配置文件"]
    end

    subgraph sg_PC["PC 端烧录工具"]
        ISD["isd_download.exe<br/>USB 升级工具"]
        BURNER["生产烧写工具<br/>量产/裸片"]
        TESTBOX["无线测试盒<br/>OTA/射频标定"]
    end

    subgraph sg_Board["目标板"]
        BOOT["Bootloader 编程模式"]
        FLASH[(Flash 固件区)]
        OTAFW["OTA 固件<br/>单备份/双备份"]
    end

    CB --> HEX
    MK --> HEX
    CFGTOOL --> FW
    HEX --> ISD
    FW --> ISD
    FWADD --> HEX
    ISD -->|"USB/UART"| BOOT
    BURNER -->|"USB/脱机"| BOOT
    TESTBOX -->|"BLE 空中"| OTAFW
    BOOT --> FLASH
    OTAFW --> FLASH

架构说明:编译阶段(Code::Blocks 或 Makefile)产出 .hex 固件;fw_add.exe 与 AW33N 配置工具负责把配置参数打包进固件(.fw)。烧录阶段有三条独立通道——开发用 USB 升级工具(isd_download.exe)、量产用生产烧写工具、售后用无线测试盒 OTA。三条通道最终都写入目标板的 Flash,但通信介质(USB/UART、脱机烧录、BLE 空中)与使用场景不同。

烧录工具链

工具清单与获取方式

SDK 官方推荐的烧录/生产工具共三款,覆盖开发、量产与售后三个环节(见 README.md):

工具用途获取方式
USB 升级工具将固件烧录到目标板(开发调试)申请链接 + 使用文档(doc.zh-jieli.com 强制升级工具)
生产烧写工具量产/裸片烧写使用文档(量产工具 1拖2 烧录器)
无线测试盒空中升级/射频标定/产品测试申请链接 + 使用文档(测试盒 1拖2)

设计意图:三工具分工对应产品生命周期三个阶段——开发期高频迭代用 USB 升级工具(有线、单板、速度快);产线期追求吞吐用生产烧写工具(支持一拖多、可脱机);售后与产测用无线测试盒(无需物理连线,通过 BLE 空中通道升级与标定 RF 参数)。

仓库内烧录工具目录

烧录相关的可执行文件与脚本位于 apps/app/post_build/bd**/(README 目录说明见 README.md):

apps/app/post_build/bd57/
├── download.bat            # 一键下载脚本(调用 isd_download.exe)
├── fw_add.exe              # 固件追加/打包工具(将配置写入固件)
├── isd_download.exe        # USB 升级工具主程序
├── flash/                  # 下载与烧录配置目录
│   └── isd_config_ini.c    # 下载脚本 INI 配置(烧录地址、分区、选项)
└── AW33N_config_tool/      # AW33N 配置工具(.jlxproj 工程 + Lua 脚本)

其中 download.bat 是命令行烧录入口,适合集成到 CI/脚本流程;isd_download.exe 是图形化工具,适合开发人员手动操作。isd_config_ini.c 定义了烧录时的分区布局、目标地址与烧录选项,是工具与固件布局之间的桥梁。

固件产物与打包链路

编译完成后生成 .hex 固件文件(编译流程见 README.md):

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

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

来源:README.md

同样支持命令行编译(README.md):

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

# Linux/macOS 用户
cd SDK 根目录

# 编译完整工程
make aw33n_hid

编译产物经过 fw_add.exe 打包(将配置工具生成的配置数据合并进固件)后即为可烧录的完整镜像;而 AW33N_config_tool 生成的 .fw 配置则独立于固件,二者在烧录/升级时按需写入。

首次烧录流程

官方推荐的首烧流程(README.md):

flowchart TD
    Start([开始]) --> HW["1. 连接硬件<br/>开发板通过 USB/UART 连接 PC"]
    HW --> MODE["2. 进入编程模式<br/>按住烧录按键 + 复位/重新上电"]
    MODE --> TOOL["3. 打开 USB 升级工具<br/>启动 isd_download.exe"]
    TOOL --> FW["4. 选择固件<br/>选择编译生成的 .hex 文件"]
    FW --> DL["5. 开始烧录<br/>点击下载按钮"]
    DL --> OK{"烧录完成?"}
    OK -->|"是"| DONE([结束:复位运行新固件])
    OK -->|"否"| ERR["排查连接/编程模式/配置问题"]
    ERR --> MODE

关键步骤说明

  1. 连接硬件:开发板通过 USB(板载仿真/下载器)或 UART 连接到 PC。USB 升级工具通过串口协议与板端 Bootloader 通信。
  2. 进入编程模式:按住板载烧录按键的同时复位或重新上电,使芯片停留在 Bootloader 等待下载,这是防止误擦除应用固件后的"变砖"恢复手段。
  3. 选择固件:选择 board 目录编译生成的 .hex。注意工程与芯片平台要匹配(如 AW33N_hid.cbp 对应 bd57 平台)。
  4. 开始烧录:工具按 isd_config_ini.c 中的分区配置把镜像写入 Flash 对应区域。

⚠️ 注意:烧录前请确保 USB 升级工具正确连接且目标板已进入编程模式。 详细的 INI 配置(apps/app/post_build/bd**/flash/isd_config_ini.c)说明参考:下载脚本配置文档(见 README.md)

AW33N 配置工具(AW33N_config_tool)

目录结构与工作机制

配置工具位于 apps/app/post_build/bd57/AW33N_config_tool/,采用"Lua 脚本驱动 + 工程文件组织"的结构:

apps/app/post_build/bd57/AW33N_config_tool/
├── AW33N_配置工具入口(Config Tools Entry).jlxproj   # 工具工程入口(Code::Blocks 工程)
├── conf/
│   ├── entry/                  # 配置项定义(Lua 脚本)
│   │   ├── app_log.md          # 日志说明文档
│   │   ├── bluetooth_powerprofile.lua  # 蓝牙功率等级配置
│   │   ├── fw_common.lua       # 固件公共配置
│   │   ├── fw_create.lua       # 固件创建逻辑
│   │   ├── fw_edit.lua         # 固件编辑逻辑
│   │   ├── lang_en.lua         # 英文语言包
│   │   ├── ufw_edit.lua        # 升级固件编辑逻辑
│   │   ├── user_cfg.lua        # 用户配置项
│   │   └── version.log         # 工具版本记录
│   └── output/                 # 工具输出(生成物)
│       ├── cfg_tool_state_complete.lua  # 状态完成标记
│       ├── cfg_tool.c / cfg_tool.h      # 生成的配置源码(编译进固件)
│       ├── default_cfg.lua              # 默认配置导出
│       ├── default/default_cfg.fw       # 默认固件配置(.fw 二进制)
│       └── extra_tones/*.wtg            # 附加提示音资源

工作机制:配置工具读取 conf/entry/ 下的 Lua 脚本定义(如蓝牙功率等级、用户自定义项),生成 conf/output/ 下的配置源码(cfg_tool.c/h)与固件配置(default_cfg.fw)。生成的 cfg_tool.c 会在编译期被并入应用工程,使固件默认携带这些配置;default_cfg.fw 则可在烧录/升级时作为独立配置写入。

设计意图:将"产品参数"(功率、提示音、用户项)与"固件逻辑"解耦。同一份编译好的固件可以通过不同的 .fw 配置适配不同产品型号,产线无需为每个 SKU 重新编译固件,只需更换配置即可——这正是量产场景的关键需求。

Lua 配置示例

以 conf/entry/ 下的脚本为例,配置项以 Lua 表结构声明(来源:apps/app/post_build/bd57/AW33N_config_tool/conf/entry/):

-- fw_common.lua 固件公共配置(示意结构)
-- 配置项通过 Lua 表描述,工具据此生成 cfg_tool.c 与 default_cfg.fw

说明:fw_common.lua、fw_create.lua、fw_edit.lua 分别对应固件公共参数、创建与编辑流程;ufw_edit.lua 对应升级固件(OTA 用)的编辑。具体键值以工具实际输出为准。

OTA 升级与生产测试

OTA 升级

SDK 支持单备份和双备份蓝牙 OTA 升级(README.md):

模式机制适用场景
单备份升级时直接覆盖当前固件区,中途断电可能变砖空间受限的低成本产品
双备份固件区保留两份镜像,升级失败自动回退可靠性要求高的产品

OTA 通过 BLE 空中通道传输升级包(ufw 格式,由 ufw_edit.lua 定义),配合无线测试盒或手机 App 触发。升级模块相关头文件位于 apps/include_lib/update/,功能裁剪通过各工程 config/lib_update_config.c 控制。

无线测试盒

无线测试盒(1拖2)用于产线空中升级、射频标定、产品测试三合一场景:通过 BLE 与待测板建立连接,无需物理接插,适合流水线快速作业。

Configuration Options

烧录链路中的关键配置项汇总:

配置项位置类型说明
烧录地址/分区apps/app/post_build/bd**/flash/isd_config_ini.cINI定义烧录的 Flash 分区布局与目标地址
下载脚本行为download.bat批处理封装 isd_download.exe 的调用参数
蓝牙功率等级AW33N_config_tool/conf/entry/bluetooth_powerprofile.luaLua配置发射功率等级
固件公共配置AW33N_config_tool/conf/entry/fw_common.luaLua固件公共参数定义
用户配置项AW33N_config_tool/conf/entry/user_cfg.luaLua产品自定义配置项
OTA 升级模式apps/demo/*/config/lib_update_config.cC 配置选择单备份/双备份升级策略
语言包AW33N_config_tool/conf/entry/lang_en.luaLua工具界面英文语言包

常见问题与失败模式

烧录失败排查

现象可能原因解决方式
工具无法识别设备未进入编程模式 / USB 驱动未装按住烧录键复位重新上电;检查设备管理器
烧录中途失败连接线材/接口接触不良更换 USB/UART 线材,重试
校验不通过固件与芯片平台不匹配确认 .hex 来自正确的 board/bd57 工程
量产烧录异常配置工具生成的 .fw 与固件版本不匹配重新用 AW33N_config_tool 生成配置

可靠性设计要点

  • 编程模式兜底:芯片 Bootloader 独立于应用固件,即使应用区损坏,仍可通过"烧录按键 + 复位"进入编程模式重新烧录,避免变砖。
  • 双备份 OTA:升级失败时回退到旧镜像,保障售后升级可靠性;单备份模式需注意升级过程中避免断电。
  • 配置与固件解耦:.fw 配置独立生成,产线可预先准备多种配置模板,按产品型号选择,减少编译环节的产线依赖。

Related Links

  • 编译指南(本页编译产物 .hex 的来源)
  • 配置说明(lib_update_config.c 等模块裁剪)
  • README.md — 烧录与升级章节
  • README.md — 安装烧录工具
  • README-en.md — Flashing & Upgrading
  • 下载脚本配置文档(官方)
  • OTA 开发文档(官方)
Prev
编译指南与工程选择