DFU V2 PAN Loader 示例

源码路径:example/dfu_v2/bt_pan/loader

支持的平台

本 loader 自身不单独维护分区表,跟随同通道的 PAN 用户应用板级工程一起编译。当前 PAN 用户应用工程覆盖以下 SF32LB52X(NOR flash)板子:

  • sf32lb52-lcd_n16r8_hcpu

  • sf32lb52-lchspi-ulp_hcpu

  • sf32lb52-nano_a128r16_hcpu

概述

本例程是 DFU V2 在 Bluetooth PAN 通道下的 DFU loader 子程序。它通过手机共享的 PAN 网络拉取新固件,并直接写入目标分区,完成后重启回新的用户应用。

例程的使用

本 loader 通常不需要单独编译。同通道的 PAN 用户应用工程在 SConstruct 中通过 AddDFU_PAN_V2(SIFLI_SDK) 把本 loader 作为子工程自动拉入,编译应用时会一并生成 loader 固件。常规做法是进入 PAN 用户应用工程目录构建,也可以进入本 loader 工程目录单独构建。

硬件需求

运行该例程前,需要准备:

  • 一块本例程支持的开发板(支持的平台)。

  • 一部提供 PAN 网络的手机。

编译和烧录

切换到 PAN 用户应用工程目录,运行 scons 命令执行编译,编译应用会自动包含本 loader:

> scons --board=sf32lb52-lcd_n16r8_hcpu -j8

也可以切换到本 loader 工程目录单独构建:

> scons --board=sf32lb52-lcd_n16r8_hcpu -j8

关于编译、下载的详细步骤,请参考快速入门的相关介绍。

例程的预期结果

例程启动后:

  1. 设置本机名 sifli-pan,等待手机连接。

  2. 手机完成连接并连上 PAN 网络后,自动触发升级流程 execute_ota_update():先对 ota.sifli.com 做 DNS 校验 → 从 flash 的 DFU_FWINFO_BASE_ADDR 读取由用户应用预先写入的固件信息 → 调用 dfu_download() 阻塞下载。

  3. 下载成功后清除 flash 中的固件信息,界面显示进度,再重启回新的用户应用。

调试可用 finsh 命令 ota_cmd,子命令包括:del_bondconn_pandownloadprintcleartest_flagstest_dns

异常诊断

参考文档

更新记录

版本

日期

发布说明

0.0.1

06/2026

初始版本