CH579蓝牙空中升级(BLE OTA)1.PDF
### CH579蓝牙空中升级(BLE OTA)详解 #### 1. 概述 **DFU(Device Firmware Update)**设备固件升级是一种通过无线或有线方式更新设备固件的技术。**OTA(Over The Air)**是实现DFU的一种方式,允许设备通过无线网络接收并安装新的固件更新,而无需物理接触。OTA通常被称为FOTA(Firmware Over The Air),即通过空中无线方式实现设备固件升级。 CH57x系列芯片支持多种固件升级方式,包括无线(OTA)和有线(如通过内置BOOT模式)。在这些方法中,可以进一步分为后台式(background)和非后台式两种模式。后台式DFU允许新固件在应用程序正常运行的同时下载,而非后台式DFU则需要暂停所有应用程序功能以便完成升级。 #### 2. WCHCH579 SDK DFU 工作原理 ##### 2.1 方式一 DFU 说明(无线升级) **方式一DFU**是一种备份升级方式,特别适用于Flash资源充裕的应用场景。这种方式的优点是可以同时更新APP和LIB,但需要牺牲一半的Flash空间。 - **工作流程**:上电后优先运行APP程序。APP文件是一个独立且完整的功能文件,能够在运行时通过无线方式接收完整的OTA备份升级文件。之后,程序会跳转到IAP程序,IAP会将备份区的OTA升级文件复制到应用程序区域,并最终通过软复位运行新的固件。 - **示例**:在EVT\EXAM\BLE\BackupUpgrade_OTA的升级例程中,可以通过读取dataflash的OTA_DATAFLASH_ADD位置的值来更新当前的flag标志为APP。关键函数位于\EXAM\BLE\BackupUpgrade_OTA\APP\Peripheral.c,其中包括了处理接收的OTA包的各种操作,例如编程、擦除、校验和结束指令等。命令定义在EXAM\BLE\BackupUpgrade_OTA\APP\include\OTA.h中。 - **固件烧录说明**:方式一DFU包含两个文件:APP和IAP。APP包含了用户的功能代码以及实现产品功能和升级功能的主体部分;IAP则是用于编程升级APP的代码。这两个文件通过ISP工具合并为一个BIN文件,然后下载到设备上。 ##### 2.2 方式二 DFU 说明(无线升级) **方式二DFU**适用于Flash资源较为紧凑的应用,能够节省Flash空间,但是LIB部分固定,不能单独升级。如果需要升级LIB,则必须采取方式三进行全升级。 - **工作流程**:方式二上电后也首先运行APP程序。APP文件包含了用户的功能代码和实现产品功能的部分。当接收到升级指令时,系统会切换到BootLoader/IAP模式,由BootLoader/IAP进行新固件的下载和安装。在这个过程中,所有应用程序的功能都将被暂停,直到升级完成。 - **固件结构**:在方式二中,固件由APP、IAP和LIB组成。APP包含了用户功能代码;IAP用于编程升级APP;LIB是固定的,不能单独升级。 - **示例**:具体的工作流程和示例代码可以在CH579EVT\EXAM\BLE\OnlyUpdateApp_XXX等示例中找到。 ### 总结 通过对CH579蓝牙空中升级(BLE OTA)中的方式一和方式二DFU的详细介绍,我们可以看到这两种方式各有优劣。方式一DFU适合Flash资源充足的场合,能够同时升级APP和LIB,但需要较多的Flash空间;方式二DFU则更适合Flash资源紧张的应用场景,能够节省空间,但LIB部分固定不可单独升级。选择合适的升级方式对于确保产品的长期维护和支持至关重要。
- 粉丝: 32
- 资源: 328
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助