BLE central and peripheral with pingpong ota示例
源码路径:example/ble/central_and_peripheral_with_pingpong_ota
支持的平台
flash table烧录在mpi5的工程
概述
本例程演示了本平台如何同时做GAP central和peripheral以及GATT的client及server。 以及如何通过pingpong的方式对该工程进行升级
例程的使用
本例程的Finsh命令可以通过输入diss help来打印命令及使用方法。
作为从设备时开机会开启广播,广播名字以SIFLI_APP-xx-xx-xx-xx-xx-xx, 其中xx代表本设备的蓝牙地址。可以通过手机的BLE APP进行连接
作为主设备时,可以通过finsh命令搜索其他从设备,并发起连接。
作为GATT server时,可以在手机端进行write和read操作,或者使能CCCD,设备会每一秒更新一次特征值。
作为GATT client时,可以通过finsh命令搜索server的database并显示,并对特征值进行读或写的操作。
通过SIFLE BLE APP连接板子,选择文件后可以升级
硬件需求
运行该例程前,需要准备:
一块本例程支持的开发板(支持的平台)。
手机设备。
其他接入相关注意事项
SConstruct FTAB需要通过addchildproj的方式添加
ptab.json 需要划分一个和HCPU_FLASH_CODE_LOAD_REGION一样大小的main, base2区域,作为pong区域
boot loader 需要添加跳转的逻辑,具体可以查看本例程的一系列实现
制作命令
.\imgtoolv37.exe gen_dfu --img_para main 0 0 --key=s01 --sigkey=sig --dfu_id=1 --hw_ver=51 --sdk_ver=7001 --fw_ver=1001001 --com_type=0 --bksize=2048 --align=0
main待升级的bin的名字,如果是hcpu.bin 则填hcpu即可。 Bin名字后面的第一个参数用于压缩,16是使用压缩,0是不压缩。只能选择不压缩 Bin名字后面的第二个参数表示image id,hcpu是0,可以同时制作多个bin 然后要自行实现后续bin,是存放到备份区域,最后再安装,还是直接覆盖目标地址
手机操作 操作如下图示意,搜索板子的BLE广播,点击对应设备,然后选择nand dfu,先选ctrl文件,然后选择hcpu为刚才制作的outmain.bin,最后点击start按钮
编译和烧录
切换到例程project目录,运行scons命令执行编译:
> scons --board=sf32lb58-lcd_n16r64n4 -j8
切换到例程project/build_xx
目录,运行uart_download.bat
,按提示选择端口即可进行下载:
$ ./uart_download.bat
Uart Download
please input the serial port num:5
关于编译、下载的详细步骤,请参考快速入门的相关介绍。
例程的预期结果
例程启动后:
可以被手机BLE APP搜到并连接,进行相应的GATT特质值read/write等操作。
可以搜索其他BLE设备,并连接和搜索连接上设备的GATT database,同时可以进行GATT read/write等操作。
可以用APP完成升级
异常诊断
参考文档
更新记录
版本 |
日期 |
发布说明 |
---|---|---|
0.0.1 |
07/2025 |
初始版本 |