9.1.2. 流程

9.1.2.1. 刷机流程

  • 系统上电后首先启动 BROM (SoC 内部)

  • BROM 检查存储介质中是否有系统数据,检查顺序为

    • SDMC1 (SD卡)

    • SPI NAND

    • SPI NOR

    • SDMC0(eMMC)

  • 如果 SD 卡是启动盘,则进行卡启动

  • 如果SD卡中是FAT32文件系统,并且有刷机的两个文件,则进行SD卡刷机

  • 如果存储介质:SPI NAND,SPI NOR,eMMC中有数据,则启动系统

  • 在U-Boot中会检查刷机键(PA0)是否被拉低,拉低则进入刷机模式,否则启动kernel

  • 在U-Boot中会检查U盘(USB0)中是否是FAT32文件系统,并且是否有刷机的两个文件,两个条件均满足则进行U盘刷机,否则启动kernel

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

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

9.1.2.1.1. 刷机模式

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

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

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

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

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

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

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

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

9.1.2.2. OTA流程

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

  • 可以通过 OTA 的方式下载到本地

  • 也可以通过外部存储器:SD卡,U盘,USB线复制到本地

  • 设置升级标记,重启系统

  • 系统重新启动后会进入升级系统,升级开发板到新的固件

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

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

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