DFU V2 PAN Loader 示例
源码路径:example/dfu_v2/bt_pan/loader
支持的平台
本 loader 自身不单独维护分区表,跟随同通道的 PAN 用户应用板级工程一起编译。当前 PAN 用户应用工程覆盖以下 SF32LB52X(NOR flash)板子:
sf32lb52-lcd_n16r8_hcpusf32lb52-lchspi-ulp_hcpusf32lb52-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
关于编译、下载的详细步骤,请参考快速入门的相关介绍。
例程的预期结果
例程启动后:
设置本机名
sifli-pan,等待手机连接。手机完成连接并连上 PAN 网络后,自动触发升级流程
execute_ota_update():先对ota.sifli.com做 DNS 校验 → 从 flash 的DFU_FWINFO_BASE_ADDR读取由用户应用预先写入的固件信息 → 调用dfu_download()阻塞下载。下载成功后清除 flash 中的固件信息,界面显示进度,再重启回新的用户应用。
调试可用 finsh 命令 ota_cmd,子命令包括:del_bond、conn_pan、download、print、clear、test_flags、test_dns。
异常诊断
参考文档
更新记录
版本 |
日期 |
发布说明 |
|---|---|---|
0.0.1 |
06/2026 |
初始版本 |