首页 > 其他分享 >【WCH蓝牙系列芯片】-基于CH582开发板—蓝牙OTA空中升级讲解(二)

【WCH蓝牙系列芯片】-基于CH582开发板—蓝牙OTA空中升级讲解(二)

时间:2024-02-05 16:22:39浏览次数:27  
标签:文件 OnlyUpdateApp OTA APP 蓝牙 开发板 IAP

-------------------------------------------------------------------------------------------------------------------------------------

基于前面的蓝牙OTA空中升级(一)的基础上,这里将以BLE_UART为例,将BLE_UART实现带OTA功能的程序,依然是方式二不带库升级方式。并且扩大APP的空间,所以我们依然需要四个HEX文件同时烧写。
分别是
1、 CH58xBLE_ROMx.hex ——带x后缀,指蓝牙库是靠着flash最后的位置放的,可以让APP增大至最大
2、 OnlyUpdateAPP_BLE_UART.hex ——设置应用层APP程序中不带库编译,能大幅度降低RAM使用率
3、 OnlyUpdateApp_IAP.hex —— IAP的是将手机APP发送的固件直接写到APP区域
4、 OnlyUpdateApp_ JumpIAP.hex ——用来跳入IAP中,文件中启动文件中的地址也需对应修改为IAP的起始地址

 

第一步:
修改JumpIAP中启动文件配置参数,JumpIAP只是跳转到IAP中,因为APP空间要扩大,所以IAP地址要后移,继而要修改JumpIAP启动文件的起始地址。
JumpIAP本身就4K,将APP从44K扩大了192K,所以CH582的IAP的起始地址是4K + 236K = 240K。
在OnlyUpdateApp_ JumpIAP中将启动文件中地址改为240K转换后的0x0003C000

第二步:
修改APP中的参数,由于是在BLE_UART程序中添加OTA功能,在预处理这里添加LIB_FLASH_BASE_ADDRESSS=0x00040000和CH58xBLE_ROM=1这个宏

第三步:
修改Link.ld文件中,将OnlyUpdateApp_Peripheral例程中Link.ld文件复制到OnlyUpdateApp_BLE_UART的Link.ld文件中,再将44K跟改为236K

第四步:
修改startup_CH583.S,将OnlyUpdateApp_Peripheral例程中startup_CH583.S文件复制到OnlyUpdateApp_BLE_UART的startup_CH583.S文件中,

再将j 0x10000修改为j 0x40000

第五步:
添加OTA升级功能的程序至OnlyUpdateApp_BLE_UART中, 在蓝牙往串口发送数据的部分,添加JUMP_OTA函数,通过判断蓝牙发送的数据来决定是否跳转到OTA升级功能。

在peripheral_main.c中添加用于APP判断文件有效性的程序部分,否则升级时,app会认为存放的hex是非法的。

第六步:
修改OnlyUpdateApp_IAP中配置参数;
在预处理中添加LIB_FLASH_BASE_ADDRESSS=0x00040000和CH58xBLE_ROM=1

 

在Link.ld文件中,由于起始地址为4K+236K=240k,填入0x0003C000。
将FLASH (rx) : ORIGIN = 0x0000C000, LENGTH = 16K,修改为FLASH (rx) : ORIGIN = 0x0003C000, LENGTH = 16K。

 在OTA.h文件中,将APP大小修改为236*1024

 在startup_CH583.S文件,将j 0x10000修改为j 0x40000

这样所需要的文件都更改好了,现在只要将这三个文件加上库文件,一起烧录进芯片。

第七步:烧录程序,观察现象
1、将APP、LIB、IAP、JUMPIAP的四个HEX同时烧录至芯片。

2、利用BLE调试助手,连接蓝牙设备,发送数据0x77,蓝牙会自动断开,会跳到OTA升级的部分。

3、利用OTA升级工具,搜索OTA升级的蓝牙名字为OTAOTA_OTAOTA_OTA设备并连接。

4、通过选择要升级的HEX文件,然后点击START,开始OTA升级,等到OTA升级成功就OK。

 

标签:文件,OnlyUpdateApp,OTA,APP,蓝牙,开发板,IAP
From: https://www.cnblogs.com/ZYL-FS/p/18008302

相关文章

  • 迅为RK3588开发板ubuntu和window互传图形界面直接拖拽进行文件传输
    确保以及安装了VMwareTools。如下图所示表示已安装过了。和windows端文件夹间传输一样直接拖拽进去即可,如下图所示:也可拖拽到终端,如下图所示:更多内容可以B站搜索迅为RK3588开发板......
  • matplotlib annotate
    matplotlibannotate参考:matplotlibannotate在数据可视化中,常常需要在图表中添加标注,以便更清楚地表达数据的含义。Matplotlib库中的annotate()函数提供了一种简单的方法来添加标注。1.annotate()函数的基本语法annotate()函数的基本语法如下:annotate(text,xy,xytext,a......
  • STM32MP135开发板助力电力行业,IEC61850协议移植笔记
    1.概述IEC61850是变电站自动化系统(SAS)中通信系统和分散能源(DER)管理的国际标准。它通过标准的实现,实现了智能变电站的工程运作标准化。使得智能变电站的工程实施变得规范、统一和透明,在电力和储能系统中应用非常广泛。本文基于米尔MYD-YF13X开发板,在Linux系统上移植和使用开源的l......
  • STM32MP135开发板助力电力行业,IEC61850协议移植笔记
    1.概述IEC61850是变电站自动化系统(SAS)中通信系统和分散能源(DER)管理的国际标准。它通过标准的实现,实现了智能变电站的工程运作标准化。使得智能变电站的工程实施变得规范、统一和透明,在电力和储能系统中应用非常广泛。本文基于米尔MYD-YF13X开发板,在Linux系统上移植和使用开源的libI......
  • 盘点那些硬件+项目学习套件:Hi3861鸿蒙开发板及入门常见问题解答
    华清远见20岁了~过去3年里,华清远见研发中心针对个人开发板业务,打造了多款硬件+项目学习套件,涉及STM32单片机、嵌入式、物联网、人工智能、鸿蒙、ESP32、阿里云IoT等多技术方向。今天我们来盘点一下,比较受欢迎几款“硬件+项目”学习套件,以及一些初学者比较关注的问题。盘点二:Hi3861......
  • 【WCH蓝牙系列芯片】-基于CH32V208开发板—密钥功能
    -------------------------------------------------------------------------------------------------------------------------------------在使用蓝牙从机过程中,有一个设置密钥功能,可以让主机配对认证成功后,才能与从机相连,这样可以起到开发设备的安全需求。在从机例程中,有......
  • 使用annotationForMap实例化注解
    sun.reflect.annotation.AnnotationParser#annotationForMap/***Returnsanannotationofthegiventypebackedbythegiven*member->valuemap.*/publicstaticAnnotationannotationForMap(finalClass<?extendsAnnotation>......
  • [香橙派开发系列]使用蓝牙和手机进行信息的交换
    目录前言一、HC05蓝牙模块1.HC05概述2.HC05的连接图3.进入HC05的命令模式4.常用的AT指令4.1检查AT是否上线4.2重启模块4.3获取软件版本号4.4恢复默认状态4.5获取蓝牙的名称4.6设置蓝牙模块的波特率4.7查询蓝牙的连接模式4.8查询模块角色5.连接电脑6.通过HC05发送消息7.stm......
  • Go语言精进之路读书笔记第10条——使用iota实现枚举常量
    Go的const语法提供了隐式重复前一个非空表达式的机制const(Apple,Banan=11,22Straberry,GrapePear,Watermelon)//等价于const(Apple,Banan=11,22Straberry,Grape=11,22Pear,Watermelon=11,22)iota是Go语言的一个预定义......
  • 详解Python TimedRotatingFileHandler 多进程环境下的问题和解决方法
    详解PythonTimedRotatingFileHandler多进程环境下的问题和解决方法在Python的日志处理模块中,TimedRotatingFileHandler是一个非常有用的类,它可以按时间对日志文件进行轮换。然而,在多进程环境下,TimedRotatingFileHandler可能会出现一些问题。本文将详细介绍这些问题以及可能的解决......