Edit online

升级流程

15 Dec 2023
在进行固件升级的流程中,BROM 阶段需要完成下列任务:
  1. 下载 Bootloader 到指定位置

  2. 运行 Bootloader 进入 Bootloader 的升级模式

升级过程中,每一个参与升级的部分都视为升级固件的组件。制作升级固件时,每一个组件都有一个对应的组件描述信息。通过抽象化组件描述信息,可以形成一个统一的升级任务处理流程。具体的组件处理流程如下:

  1. SET_FWC_META

    工具将对应的组件描述信息发送给设备端。设备端的升级程序依据描述信息,准备接收数据。

  2. GET_BLOCK_SIZE

    工具获取本次组件传输的数据块大小,以数据块大小为单位发送组件数据。

  3. SEND_FWC_DATA

    工具发送组件数据给设备端。设备端在接收数据的同时,对接收到的数据进行 CRC 校验。 接收完成之后,设备端依据接收的组件描述信息,对数据执行相应操作。例如,在 BROM 阶段, 如果组件是一个可执行程序,则在接收完成之后,运行组件。

  4. GET_FWC_CRC

    工具获取设备端计算的 CRC 校验值,判断组件的传输是否正确。

  5. GET_FWC_BURN_RESULT

    工具获取设备端对组件数据的烧录是否正确。此步是一个统一的流程,但 BROM 不支持烧录组件,因此直接回复成功。

  6. GET_FWC_RUN_RESULT

    工具获取组件运行的返回值。对于可执行组件,则将组件运行返回值传给工具端。 对于不可执行组件,则统一返回 0.

固件升级时,主机从固件包中顺序读取上述组件,按照流程逐个组件发送给设备端,即可完成 BROM 阶段的任务。