DFU V2 PAN 用户应用示例

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

支持的平台

  • sf32lb52-lcd_n16r8_hcpu

  • sf32lb52-lchspi-ulp_hcpu

  • sf32lb52-nano_a128r16_hcpu

概述

本例程演示 DFU V2 的 PAN(蓝牙 PAN 网络 / HTTP)升级通道的用户应用一侧:设备通过蓝牙 PAN 接入网络后,主动向 OTA 服务器查询版本,并把待升级固件信息写入 flash,随后重启交给 loader 子程序完成实际下载与安装。

例程的使用

  1. 烧录运行后,应用会初始化蓝牙协议栈,把本地名设为 sifli_pan(或 BT_DEVICE_NAME),并开启 HID/PAN 自动重连。请先用手机与设备配对,让设备通过手机的 PAN 网络共享上网;HID 连上后应用会自动发起 PAN 连接,串口日志出现 PAN connected 即表示网络通道就绪。

  2. 通过串口 finsh 控制台执行升级流程:

    1. ota_version — 查看当前固件版本。

    2. ota_check — 向 OTA 服务器(https://ota.sifli.com)注册设备并查询最新版本。若服务器返回的版本号比当前新,固件清单会被逐项解析并写入 flash。

    3. ota_print — 可选,打印已写入 flash 的固件信息(名称、URL、地址、大小、CRC32 等)。

    4. ota_go — 校验 flash 中确有待升级条目后写下升级标志,延时 2 秒后重启。

  3. 辅助命令:ota_clear 清除 flash 中的固件信息;pan_cmd 提供 del_bondconn_panautoconnect 等 PAN 调试子命令。

硬件需求

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

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

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

编译和烧录

切换到例程 project 目录,运行 scons 命令执行编译(<board> 为上述三块板之一):

> scons --board=<board> -j8

例如:

> scons --board=sf32lb52-lcd_n16r8_hcpu -j8

编译用户应用时会通过 AddDFU_PAN_V2 自动把同级 loader 子程序作为子工程一起编进来。 关于编译、下载的详细步骤,请参考快速入门的相关介绍。

例程的预期结果

例程启动后:

  1. 应用把本地名设为 sifli_pan,与手机配对后自动发起 PAN 连接,串口出现 PAN connected,网络通道就绪。

  2. 执行 ota_check,若服务器有更新版本,固件信息被写入 flash。

  3. 执行 ota_go 后设备重启,交给 loader 通过 PAN 网络下载固件、直写目标分区,完成后重启回新的用户应用。

  4. 再次执行 ota_version 看到版本号变化,即表示升级成功。

异常诊断

参考文档

更新记录

版本

日期

发布说明

0.0.1

06/2026

初始版本