Edit online

系统更新流程

14 Nov 2024
Read time: 1 minute(s)

本节介绍不同的系统更新方式涉及的更新媒介和流程概述。

系统更新流程因产品和平台而异,关于各个产品平台所支持的更新方式,可查看 平台升级方式

刷机流程

  1. 等待系统上电,启动 SoC 内部的 BROM 程序。

  2. BROM 按照如下顺序检查存储介质中是否有系统数据:

    • SDMC1 (SD 卡)

    • SPI NAND

    • SPI NOR

    • SDMC0(eMMC)

  3. 根据检测到的存储介质中的数据,BROM 执行以下相应启动操作:
    • 如果检测到 SD 卡,且 SD 卡为启动盘,执行卡启动。
    • 如果检测到 SD 卡,且 SD 卡中是 FAT32 文件系统,并且有刷机的两个文件,则进行 SD 卡刷机。
    • 如果检测到存储介质 SPI NAND、SPI NOR 或 eMMC,且其中含有数据,则执行启动系统。
  4. U-Boot 执行以下检查,并根据检查结果,进入不同模式:
    • 检查刷机键(PA0)是否被拉低,拉低则进入刷机模式,否则启动 kernel。
    • 检查 U 盘(USB0)中是否是 FAT32 文件系统,并且是否有刷机的两个文件,两个条件均满足则进行 U 盘刷机,否则启动 kernel。

    kernel 启动成功后会挂载 rootfs,系统正常启动。


    ../../../_images/burnsys_flow.png

刷机模式

开发板只有进入到刷机模式才能进行刷机操作,进入的方法有:

  • 空片直接进入:开发板上存储介质为空片,则上电直接进入刷机模式。

  • 短路烧录引脚:短路烧录引脚(PA0)到地,则上电直接进入刷机模式。

  • 按住刷机键:如果开发板有刷机按键,则按住刷机键上电或者 reset,进入刷机模式,开发板上标注为 uboot 按键。

  • 短路存储介质引脚:短路存储介质的 command、clk 等引脚到地,造成读数据失败,则上电直接进入刷机模式,如短路 SPINAND 的 4、5 脚。

  • 通过控制台命令:如果开发板能进入 U-Boot ,在开机的过程中按住 Ctrl + c, 则系统会进入 U-Boot 控制台,输入 aicupg usb 0 命令可以进入烧写模式。

  • Linux 控制台命令:如果开发板能能进入 Linux 控制台,输入 aicupg 命令,系统可以重启后进入烧写模式。

  • ADB 服务:如果开发板能能进入 Linux 系统,并且 ADB 服务开启,刷机工具会检查到设备并使能 “开始” 按钮,可以直接点击开始刷机。

OTA 流程

  1. 系统启动到正常状态,准备升级需要的固件。

  2. 通过 OTA 方式下载固件到本地,或通过 SD 卡,U 盘,USB 线等外部存储器将固件复制到本地。

  3. 设置升级标记,重启系统。

    系统重新启动后会进入升级系统,

  4. 升级开发板到新的固件。

    升级过程中如果遇到断电等原因导致升级失败的,再次重启后依然会启动升级系统重新升级。

    升级完成后重新启动系统即可进入新系统。


../../../_images/burnsys_ota.png