【WCH蓝牙系列芯片】-基于CH582开发板—蓝牙OTA空中升级讲解(一)
-------------------------------------------------------------------------------------------------------------------------------------
OTA的全名是OTA DFU,就是通过空中无线方式实现设备固件升级。OTA是实现DUF(设备固件升级)的一种方式。这次将利用CH582开发板结合EVT例程中的OTA例程讲解不带库升级的整个过程。
在不带库升级中,整个用户应用程序存储区 CodeFlash分为四个区域,包括Jump IAP、 APP、 IAP、LIB。
1、整个用户应用程序存储区 CodeFlash是448K
2、Jump IAP为4K,由于在OnlyUpdateApp_JumpIAP工程中主函数中没有写,会直接跳转到IAP中。因此当IAP起始地址改变后,需要将Jump IAP中的启动文件中的地址也需要修改为IAP起始地址。
3、APP为44K,这个大小是可以自定义修改。设置APP为44K是为了使其他的192K的flash蓝牙芯片也可以直接使用OTA升级,这部分可以不带有蓝牙功能。
4、IAP为16K,可以将手机APP工具发送的升级固件直接写到APP区域。
5、由于这里采用CH582,因此LIB为192K。
第一步:
在EVT例程中打开上图中框选的三个文件,并将他们编译分别生成对应的HEX文件。
第二步:
打开WCHISPStudio烧录工具,将三个文件生成HEX文件和LIB文件中的CH58xBLE_ROM.hex文件,这四个文件进行四合一烧录。
第三步:
下载完成后,因为例程中的采用蓝牙从机模式作为APP程序,因此,通过串口查看此时打印是蓝牙一直在广播的状态。
第四步:
我们先将需要升级的APP的hex文件存在手机中,只需要存APP部分的hex文件,不需要整个合成的文件。
第五步:
进行OTA升级过程。调用Jump_OTA跳入到IAP中开始升级,在例程OnlyUpdateApp_Peripheral中采用蓝牙从机模式,当蓝牙接收到数据后就会调用Jump_OTA函数进行IAP升级。
接收数据后,串口打印,表明已经触发Jum OTA函数,进行OTA升级
第六步:
打开手机OTA升级工具,搜索广播设备并连接,名称为OTAOTA_OTAOTA_OTA.这个名称可以在程序中修改的。
连接后,点击GETINFO按钮,选择IMAGEA文件
点击START,将固件进行升级。
固件升级完成后,查看一下串口打印结果。打印显示IAP_END。表示固件升级完成,进行蓝牙广播。