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

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 完整性校验(CRC32)
  1. IMAGE 头进行 CRC 校验;

IMAGE 的内容进行 CRC 校验。

在此校验之后,对启动代码进行后续的动作。

  1. IMAGE 整体的签名校验

代码解压

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

代码搬移

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

代码解密设置

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

代码跳转运行

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

升级功能

升级方式

同 ROM 升级方式,xmodem。

特殊就指令

同 ROM 支持的指令。