这是最新(主)开发分支的文档。如果您正在查找以前版本的文档,使用左侧的下拉菜单选择所需的版本。

Bootloader

引言

概述

本文档对 bootloader 功能及使用说明进行简单描述,供开发者和设计者理解 bootloader 功能。

术语定义

术语

定义

CRC

Cyclic Redundancy Check

IMAGE

Binary File

MAC

Medium Access Control

QFLASH

Quad-SPI Flash

RAM

Read-Write Memory

ROM

Read-Only Memory

UART

Universal asynchronous receiver-transmitter

MB

Mega Byte

KB

Kilo Byte

Bootloader 流程图

bootloader 流程图

Bootloader 功能

Bootloader 功能说明

IMAGE 启动部分

QFlash 工作模式切换

针对未知的 Flash 厂商,当从 ROM 跳转到 QFlash 时,需要切换 QFlash 的工作模式:从 1 线切换到 4 线模式。

IMAGE 完整性校验
  1. 对 IMAGE 头进行 CRC 校验,IMAGE 的完整内容进行 CRC 校验。

  2. 如果 wm.py 编译出来的 IMAGE 是被签名的,将会对 IMAGE 的完整内容进行 RSA 签名验证。

代码解压

针对客户为了节省空间对代码进行压缩的情况,依据使用的压缩算法对代码进行解压。 需要考虑使用那些压缩解压缩算法,及压缩率。 仅支持 XZ 算法。

代码搬移

解压后的代码需要放置到指定的运行位置,依据 IMAGE 的 header 信息去确定。

代码解密设置

针对代码是加密的情况,需要配置代码的解密信息。

代码跳转运行

代码搬移后,确定代码的复位向量地址,从 bootloader 跳转到用户的 image 去运行。