Recovery Boot 基础示例

这是一个 standalone boot sample(独立 boot 样例):

  • 只构建 boot

  • 不包含 app

  • 不执行 boot/app merge

  • 最终产物仍为 build/boot.bin

boot 侧能力:

  • recovery second stage

  • ADB device

  • ADB shell

  • ADB push / pull / sync

  • /SD:/adb/ 默认文件根

  • /RAW/FLASH/.../RAW/NAND/.../RAW/SDRAW/... RAW 访问

  • 支持 Flash OTA request execution(boot 侧执行 Flash OTA 请求)

  • 支持 TF OTA request execution(boot 侧执行 TF OTA 请求)

OTA 执行职责

recovery_basic 作为 recovery boot 负责读取 Flash/TF 上的 ota.txz、解析镜像与实际执行升级, 应用端(如 samples/subsys/uboot/app_only_trigger)只需写入 request 并重启。 本说明聚焦 boot 侧的介质准备与升级行为。

构建

./build.sh -C -S samples/subsys/uboot/recovery_basic -DBOARD=arcs_evb

烧录

  1. samples/subsys/uboot/recovery_basic/build/boot.bin0x0,boot image 本身掌控恢复 OTA 的执行逻辑。

  2. samples/subsys/uboot/app_only_trigger/build/uboot_ota_app_only_trigger.bin0x40000,APP-only 触发样例用于写入 OTA request。

  3. Flash 模式下再将 samples/subsys/uboot/app_only_trigger/build/ota.txz 烧到 0x600000,recovery boot 会从此地址拉取并执行升级。

  4. TF 模式下把同一个 build/ota.txz 放到 TF 卡默认路径 download/update.txz(boot 会从 TF 上读取),记得插入 TF 卡后再 reboot。

烧录后如果默认 application 地址没有有效固件,设备会停留在 recovery second stage,等待 OTA 请求被触发。