Edit online

系统更新

14 Nov 2024
Read time: 1 minute(s)
本节介绍系统更新的方式及其具体流程。

了解系统更新的概念和途径有助于理解系统更新的具体流程并选择合适的升级方式。

系统更新涉及以下概念:
  • 刷机:借助专门的刷机工具,清除存储介质上的所有的数据, 并重新进行存储分区、坏块管理、固件写入等不可逆操作。

    刷机可能具有如下风险:

    • 导致用户所有数据丢失。
    • 一般仅在工程调试、生产时使用,用户机需慎用。
    • 尽管 AiBurn 刷机工具可以刷单个分区,确保不破坏其他分区的数据,但可能引起各个分区的数据不匹配,导致系统异常。
  • 升级:直接更新现有系统,不涉及磁盘分区等操作,是一种相对安全的用户机系统更新方案。

    升级流程中会设置保护现有数据的逻辑,并且支持升级中断,固件损坏等异常场景的处理。

    升级具有以下特点:

    • OTA(Over the Air)升级:使用网络下载升级包到本地后,使用下载包升级系统。
      • 对固件制作有一定要求,Luban-Lite SDK 中的 OTA, ota_emmc 两个项目是升级的示例。
      • 需要预留较多存储空间,一般要求预留 1.5 至 3 倍的存储空间。
    • Recovery 升级: 固件包含一个正式运行系统和一个小的 Recovery 系统,升级时先切换到 Recovery 系统,再更新整个系统。
      注: AICSDK 使用 Recovery 升级。
      Recovery 系统具有以下特点:
      • 仅用于更新,功能简单而健壮。

      • 一般比较小以节省存储空间。

      • 可以保证升级成功。

    • 双系统升级:Ping-Pong 系统,固件同时有两个系统,一个运行系统和一个备份系统。
      双系统具有如下特点:
      • 导致存储容量增大一倍,不符合嵌入式的精简原则

      • 系统更新时当前运行系统更新备份的系统

      • 升级成功后重启切换到新系统,原系统作为备份