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 子程序完成实际下载与安装。
例程的使用
烧录运行后,应用会初始化蓝牙协议栈,把本地名设为
sifli_pan(或BT_DEVICE_NAME),并开启 HID/PAN 自动重连。请先用手机与设备配对,让设备通过手机的 PAN 网络共享上网;HID 连上后应用会自动发起 PAN 连接,串口日志出现PAN connected即表示网络通道就绪。通过串口 finsh 控制台执行升级流程:
ota_version— 查看当前固件版本。ota_check— 向 OTA 服务器(https://ota.sifli.com)注册设备并查询最新版本。若服务器返回的版本号比当前新,固件清单会被逐项解析并写入 flash。ota_print— 可选,打印已写入 flash 的固件信息(名称、URL、地址、大小、CRC32 等)。ota_go— 校验 flash 中确有待升级条目后写下升级标志,延时 2 秒后重启。
辅助命令:
ota_clear清除 flash 中的固件信息;pan_cmd提供del_bond、conn_pan、autoconnect等 PAN 调试子命令。
硬件需求
运行该例程前,需要准备:
一块本例程支持的开发板(支持的平台)。
一部可提供 PAN 网络共享的手机。
编译和烧录
切换到例程 project 目录,运行 scons 命令执行编译(<board> 为上述三块板之一):
> scons --board=<board> -j8
例如:
> scons --board=sf32lb52-lcd_n16r8_hcpu -j8
编译用户应用时会通过 AddDFU_PAN_V2 自动把同级 loader 子程序作为子工程一起编进来。
关于编译、下载的详细步骤,请参考快速入门的相关介绍。
例程的预期结果
例程启动后:
应用把本地名设为
sifli_pan,与手机配对后自动发起 PAN 连接,串口出现PAN connected,网络通道就绪。执行
ota_check,若服务器有更新版本,固件信息被写入 flash。执行
ota_go后设备重启,交给 loader 通过 PAN 网络下载固件、直写目标分区,完成后重启回新的用户应用。再次执行
ota_version看到版本号变化,即表示升级成功。
异常诊断
参考文档
更新记录
版本 |
日期 |
发布说明 |
|---|---|---|
0.0.1 |
06/2026 |
初始版本 |