自定义BLE service/char.用户bootloader需要实现一个自定义BLE service,来管理FOTA的流程,它由三个characteristic组成:第一个,base address,属性为写,由OTA上位机,即OTA client发过来的,被OTA server上运行的这个用户bootloader接收,写到我们自定义的这个BLE service的第一个characteristic;第二个,是升级文件image的具体内容,理所当然,它的属性也是写;第三个是一个indication属性的characteristic,它是在OTA bootloader完成了固件升级后,要复位重启设备端的一个通知,给到OTA上位机。通过这样一个自定义的BLE service,ota bootloader就可以实现来自上位机的新固件文件的接收,烧写、以及过程结束后的状态回复。
另外一方面,用户的业务应用,要在已有的BLE service中新增一个具有写属性的characteristic:“Reboot Request”,它包含三个信息:reboot的方式,要擦除的起始扇区编号、以及要擦除的扇区个数。这样一个支持reboot request/重启请求的能力,会在该设备和客户端AP,建立连接之前的广播阶段,表达出来。
|