CN / EN
文档反馈
感谢关注汇顶文档,期待您的宝贵建议!
感谢您的反馈,祝您愉快!
文档中心 > GR5xx固件升级开发指南/ DFU方案设计/ 非后台单区升级模式 Copy URL

非后台单区升级模式

Flash布局

非后台单区升级模式的Flash布局如下所示。

图 7 Flash布局

其Flash布局相比于后台双区升级模式,仅没有Bank1区域,而其他区域是一致的。因此各区域的含义请参考Flash布局

固件下载流程

非后台单区升级模式有两种情况,分别为有Bank0固件和无Bank0固件。

  • 图 8所示,有Bank0固件的场景下,固件下载流程为如下步骤:
    1. 当前程序运行在Bank0固件,由Bank0固件接收主机端下发的升级模式命令。
    2. Bank0固件接收到主机端下发的非后台单区升级模式后,将升级模式写入DFU Info区域,然后复位设备。
    3. 复位设备后,当前程序运行于App bootloader固件,在App bootloader固件接收下发的固件。
    4. 由App bootloader固件将下发的新固件写入Bank0区域,然后将新固件信息写入APP Info区域,并擦除DFU Info区域数据,最后复位设备。

    复位后,即按照图 9的启动流程运行。

    图 8 固件下载流程

    在上述操作中,主机端最开始连接的是Bank0固件,当下发非后台单区升级指令后,设备会进行复位,此时手机APP需要自动重连至App bootloader固件。为了使手机能够准确连接至App bootloader固件,GR5xx提供的方案是:假设Application的蓝牙设备地址为x,跳转至Bootloader后蓝牙设备地址会变成x+1,这样手机即可通过“地址+1”的方式自动连接至App bootloader固件。

  • 无Bank0固件的场景下,由App bootloader接收升级模式命令,将升级模式写入DFU Info区域,整个过程中蓝牙无需重连。其余流程和有Bank0固件的场景一致。

App bootloader启动流程

因非后台单区升级模式没有Bank1区域用于缓存新固件,所以DFU Info区域仅用于存储DFU升级模式参数。App bootloader启动流程如下:

  1. 读取到非后台单区升级模式后,开始升级。
  2. 固件下载完成后,将新固件的固件参数信息更新至APP Info,然后复位。
  3. 复位设备后,读取APP Info区域的数据,然后根据APP Info区域的信息跳转至应用固件运行。

流程如下图所示。

图 9 App bootloader启动流程

扫描关注

打开微信,使用“扫一扫”即可关注。