奉加微phy6222 安信可PB系列蓝牙添加OTA升级功能
什么是OTA
OTA就是通过⽆线升级的⽅式,将设备的程序进⾏升级更新。是DFU(Device Firmware
Update)中的⼀种。当产品已经出售给消费者或者产线需要及时更新固件,⽤有线升级的⽅式就不太现实,通过OTA对设备进⾏升级是⼀种很好的⽅式。
⽆论是有线升级还是⽆线升级,DFU只有两种:后台式和⾮后台式。后台式是指在下载升级⽂件的
同时,设备还能正常运⾏,⾮后台式则不能。
在后台模式下,升级⽂件下载完成后,设备重新启动,系统跳到BootLoader模式,完成将新固件覆
盖⽼固件的⼯作,设备从新固件启动,升级完成。这种⽅式,我们将它命名为SLB OTA。
在⾮后台模式下,设备需要从应⽤模式切换到BootLoader模式,切换的⽅式⼀样是重启设备。
BootLoader模式⽼固件已经被擦除,这时升级失败会⽆法退回到应⽤模式,⽽是以新的蓝⽛
名表示处于BootLoader模式。如果升级⽂件接收成功,设备重新启动,升级完成。这种升级⽅式我
们将它称为Single Bank OTA。
从分区个数上说,分为双分区(Dual Bank)和单分区(Single Bank)。SLB OTA就是Dual Bank。
在⾮后台模式下即可以是单分区也可以是双分区,但PHY6222产品⾮后台模式均是单分区。双分区的好
处是即使升级失败,也不影响设备回到应⽤模式;不好的地⽅在于需要额外的存储空间。单分区的
利弊刚好与之相反。
不管是哪种升级⽅式,在升级失败后都可以进⾏⼆次升级,都不会出现“变砖”的情况
不对SLB做教程,比较麻烦复杂还要占用空间,这里只对Single Bank OTA做教程,如果需要slb ota请查看这篇文章:https://blog.csdn.net/harry_xiaobao/article/details/131617506
Single Bank OTA
主要步骤:
1:代码添加 ota_app_service
2:keil软件添加ota_app代码
3:烧录软件添加ota设置
4:手机ota_app升级
所需软件工具:
SDK(安信可哪里下载,奉加微炸了):https://docs.ai-thinker.com/blue_tooth_pb
烧录工具:https://docs.ai-thinker.com/_media/phypluskit_v2.5.2b.zip 或者 phypluskit_v2.5.2b.zip
OTA升级App:应用商店搜 PhyOTA 或者 com.phy.ota_v2.3.1.apk
一、代码移植
1.代码加ota_app_AddService()
位于:components\profiles\ota_app\ota_app_service.c
记得加头文件:ota_app_service.h
// 加头文件
#include ota_app_service.h
// 初始化函数
void HidKbd_Init(){
//...
ota_app_AddService();
//...
}
ps: 屏蔽此函数,否则ota不成功 at_update_bd_addr();
2.打开main.c SRAM全部打开
static void hal_low_power_io_init(void)
{
//...
// 把三个SRAM全部打开,OTA会运行在SRAM高地址区域
hal_pwrmgr_RAM_retention(RET_SRAM0|RET_SRAM1|RET_SRAM2);
hal_pwrmgr_RAM_retention_set();
hal_pwrmgr_LowCurrentLdo_enable();
//...
}
二、keil软件添加ota_app代码
3.打开文件scatter_load.sct,并添加ota_app_service到XIP
4.编译吧
三、烧录软件添加ota设置
1.添加boot路径在:example\OTA\OTA_internal_flash\bin
2.添加编译好的app bex文件
3.选择 Single NO FCT
此模式的意思就是,升级的时候蓝牙app会暂停程序且覆盖写入
(SLB OTA就是升级时程序不停止,一边正常运行,一边升级)(SLB OTA就是升级时程序不停止,一边正常运行,一边升级)
4.设置个MAC地址,因为在ota的时候是靠扫描mac地址做升级的。
5.烧录
四、手机OTA升级
2.把hex16文件放在手机根目录下,一定要根目录下,不然APP找不到升级文件 emm...
一定要根目录下!!!
一定要根目录下!!!
一定要根目录下!!!
手机应用市场下载 PhyOTA 软件
如果提示缺少OTA蓝牙服务或者其他表示ota服务没有添加正确,请重复教程操作。
升级成功后,模块会自己重启到APP模式,无需复位。
参考:
https://blog.csdn.net/weixin_52668204/article/details/129500089
https://blog.csdn.net/qq_38500207/article/details/124495561
https://blog.csdn.net/harry_xiaobao/article/details/131617506