Skip to content

Latest commit

 

History

History
125 lines (101 loc) · 4.51 KB

固件升级介绍.md

File metadata and controls

125 lines (101 loc) · 4.51 KB

固件升级介绍

一、固件升级方式介绍

  • 测试盒经典蓝牙升级
  • 测试盒BLE升级
  • 测试盒uart升级
  • JL_RCSP APP OTA升级
  • 设备升级(U盘/SD卡)
  • 客户私有协议升级

二、固件存储结构介绍

  63x系列支持两种固件存储及启动方式,单备份结构(single-bank structure)和双备份结构(dual-bank structure)。 不同存储结构有对应的升级架构,故升级架构有单备份升级和双备份升级两种。

1.单备份升级

  • 优点

    • 存储固件的flash容量仅需要一份固件的容量,节省flash空间
    • 单备份主要升级过程在update loader中实现,与sdk流程无关,相对稳定,单一线程升级速度相对较快
  • 缺点

    • update loader已编译二进制方式提供,客制化难度大,暂时无法支持二次开发
    • 单备份升级出现意外中断时,无法正常开机。需在loader中等待重新升级成功方能开机使用,影响用户体验
  • 适用场景

    • flash空间紧张方案
    • 成本敏感客户

2.双备份升级

  • 优点

    • 升级流程在app_code运行时执行,可以不影响正常功能使用,容易做到无感升级
    • 升级意外中断仍有一份可运行代码,容灾体验好
    • 无需update loader参与升级,客户可灵活在APP层自定义升级协议格式
  • 缺点

    • 需要占用比固件大小接近多一倍flash空间
    • 升级流程与app_code同步运行,升级可能受运行环境影响
  • 适用场景

    • 对升级体验有要求的用户
    • 方案的flash空间充裕
    • 需要客制化升级协议格式

三、各种升级方式使用方式说明

1. 测试盒经典蓝牙私有协议升级

  • 使用条件:

    • 需要使用杰理蓝牙测试盒,并进入经典蓝牙升级模式
    • sdk需要支持经典蓝牙连接,
    • 单备份结构需要足够vm空间下载update loader
  • 适用场景

    • 经典蓝牙方案或蓝牙双模方案
    • 开发样机调试
    • 量产批量升级

2. 测试盒BLE私有协议升级

  • 使用条件

    • 需要使用杰理蓝牙测试盒,并进入ble升级模式
    • sdk支持ble连接
    • 单备份结构需要足够vm空间下载update loader
  • 适用场景

    • ble单模方案
    • 开发样机调试
    • 量产批量升级

3. 测试盒uart升级

  • 使用条件

    • 需要使用杰理蓝牙测试盒,并进入串口升级模式
    • sdk支持lodin引脚双向通信(若其他io需特定uboot支持)
    • uart升级无需蓝牙运行及足够vm空间
  • 适用场景

    • 量产批量升级(无需蓝牙连接,节省升级时间)
    • 开发样机调试
    • vm空间无法放到无线升级等升级loader的场景

4.JL_RCSP APP OTA升级

  • 使用条件

    • sdk支持ble gatt server角色或支持经典蓝牙spp profile
    • 单备份升级需相应update loader支持(BLE/SPP不同)
  • 适用场景

    • 用户端远程固件更新
    • 开发样机调试

5.设备升级(U盘/sd卡)

  • 使用条件

    • sdk需支持对应设备驱动及文件系统接口
    • 单备份升级需对应update loader支持(SD/U盘不同)、
  • 适用场景

    • 开发样机调试
    • 量产批量升级
    • 用户端固件更新

6.客户私有协议升级

  • 使用条件

    • sdk支持双备份升级架构
    • 客户需实现升级回调接口(接口主要提供升级文件数据源)
  • 适用场景

    • 客户需要自定义升级数据接口或者通信协议格式
    • 用户端固件升级
  • 接口说明

    • 待完善

附1:update loader与ota.bin介绍

  单备份存储结构仅存在一份固件,进行固件更新时需要一份独立运行的代码进行升级数据源获取及flash更新,这份代码就是update loader。 63x系列sdk将不同升级方式的update loader打包成一个二进制包ota.bin。在升级时,从ufw中先找到ota.bin,再从ota.bin中选择对应升级方式的update loader加载到flash vm空间, 不同升级方式loader占用的空间不同,以下是,不同升级方式update loader大小占用vm空间如下:

升级方式 占用vm空间
测试盒经典蓝牙升级 28K~32K
测试盒ble升级 约46K
测试盒uart升级 不占vm空间(12k~16K)
sd卡升级 约16K
u盘升级 约16K
ble rcsp app升级 约56K

注:以上大小仅为参考值,受不同IC型号略有差异,且不含打印log版本大小。若调试需要开log,占用的vm空间需再增大4k到8K不等