Edit online

分区类型介绍

3 Mar 2025
Read time: 2 minute(s)

Luban-Lite 系统中,分区的设置和管理是系统正常运行和日常维护的重要方面。本章节介绍 Luban-Lite 系统中分区的特点、规则和分区修改的方法。

按照存储介质的逻辑划分,Luban-Lite 默认分区包括以下几种:
  • 启动分区:存放 BootLoader,用于系统启动。
  • 数据分区:用于存储用户数据。
  • 系统 A/B 分区:分为 A/B 系统,实现 OTA,即 Flash 上保存前后两个版本的系统程序。

启动分区

Luban-Lite 系统中,启动分区("spl" 分区)是存储介质上的第一个分区,用于存放 BootLoader,并且根据不同的存储介质类型和配置,其位置、大小和内容有所不同。

"spl" 分区为默认名称,用户可以根据需要自定义和修改启动分区名称。

Luban-Lite 系统中的默认分区设置如下:
1. Luban-Lite 默认启动分区设置
启动分区 位置 尺寸 用途及说明
SPI NOR 0 ~ X 区间 256K 存放 BootLoader

BROM 加载的程序可以大于 256K,但 BROM 运行时的速度较慢,不建议加载过大的程序。

SPI NAND 前四个物理块

SPI NAND 启动分区大小取决于块大小:

  • 块大小为 128K 时,启动分区为 512K。
  • 块大小为 256K 时,启动分区为 1M。
启动分区内使用四个启动块保存两份启动镜像。
eMMC UDA 区域的 17K ~ X 区间 建议启动镜像小于 512K。 BROM 从该区域读取程序。

数据分区

Luban-Lite 系统中,通过对 SPI NOR/ SPI NAND Flash 进行分区可以实现数据的存储和管理,为数据的读写提供了不同的功能和性能特点。

Luban-Lite 系统中,SPI NOR/ SPI NAND Flash 上设置了以下默认分区来保存数据。两个分区在设计和实现上有一些差异,用户需要了解并根据实际情况规划数据存储:
2. Luban-Lite 数据分区设置
分区类型 "rodata" "data"
目的 保存 APP 应用需要使用的资源文件。 提供一个可读写的文件系统分区,用于保存设备在使用过程中生成的需要写入 Flash 的数据。
文件系统 FAT 文件系统
  • 在 SPI NOR Flash 上,使用 LittleFS。
  • 在 SPI NAND Flash 上,使用 FATFS。
  • 在 eMMC 上,每个分区都是可读写的,默认使用 FATFS。
读写支持 只读,不支持写入 可读写
适用场景和特点

通过直接访问 Flash 的方式读取数据,可以更好的管理并快速访问 APP 应用资源。

适合存储设备运行过程中产生的临时数据或需要修改的数据。适用于需要频繁读写的场景,如用户设置、日志记录等。
备注
使用 SPI NOR 时,可以通过配置的方式强制使能 "rodata" 可读写,但是需要注意其中的风险:
  1. Flash 写入前需要先按块擦除,但是擦除和重新写入需要的时间比较长

  2. FATFS 没有日志,不支持异地写入,因此需要原地回写,如果擦除和回写时出现掉电,会导致文件系统损坏

系统 A/B 分区

Luban-Lite 系统中,A/B 系统分区是实现 Over-the-Air (OTA) 软件更新机制的一个重要部分。这种分区方式需要在 Flash 上保存前后两个版本的系统程序,并将每个版本保存在指定的分区中。

A/B 系统的分区命名比较直接,便于轻松识别两套软件版本,详细命名规则如下所示:

  • A 系统分区:直接使用其所代表的分区的名称,例如存储只读数据的 "rodata" 分区,则 A 系统分区即命名为 "rodata"。

  • B 系统分区:在对应的 A 系统分区名后加上 _r 后缀,例如 rodata_r

使用专门的 A/B 分区机制,可以最大化资源使用、实现备份,并且提前配置所需软件更新的存储空间,而不影响系统的运行性能。