Edit online

分区与存储设备的关系

Read time: 2 minute(s)

Luban-Lite 上使用 RT-Thread 时,每个分区都对应一个或者多个系统设备。不同存储介质的对应关系如下表格所示。系统中出现但此处未列出的其它分区,同样遵循下列规则。

1. SPI NOR 上的分区、设备和文件系统

分区名

MTD 设备名

块设备名

文件系统

备注

"spl"

"spl"

-

-

-

"os"

"os"

-

-

-

"rodata"

"rodata"

"blk_rodata"

FATFS

FATFS 通过 "blk_rodata" 设备访问 Flash

"data"

"data"

-

LittleFS

LittleFS 直接通过 MTD 设备访问 Flash

  • 分区名:
    • "spl":分区及其设备名,"spl" 分区主要用于存储二次引导加载程序,是系统启动的第一个阶段所加载的程序。
    • "os":"os" 分区,存放操作系统的主要部分,是系统运行的核心区域。
    • "rodata":"rodata" 分区,主要用于存储只读数据,包括系统在运行时需要读取但不修改的配置信息等。
    • "data":"data" 分区,用来存储可变数据,如用户生成的数据或系统运行时产生的临时数据。
  • MTD 设备名:对 Flash 的底层直接访问,便于进行读写硬件等操作。
  • 块设备名:通过将物理存储抽象为块设备,简化了对文件系统的操作。仅 "rodata" 分区关联了一个块设备名 "blk_rodata"。
  • 文件系统:"rodata" 分区使用 FATFS 文件系统,使得数据以文件的形式进行存储和管理。"data" 分区使用 LittleFS 文件系统。
  • 访问规则:
    • 直接访问 Flash,使用 MTD 设备

    • FATFS 访问 Flash,需要使用块设备

    • LittleFS 访问 Flash,使用 MTD 设备

2. SPI NAND 上的分区、设备和文件系统

分区名字

MTD 设备名

块设备名

文件系统

备注

"spl"

"spl"

-

-

-

"os"

"os"

-

-

-

"rodata"

"rodata"

"blk_rodata"

FATFS

通过 "blk_rodata" 设备访问 Flash,FATFS 只读

"data"

"data"

"blk_data"

FATFS

"blk_data"设备是通过 NFTL 层创建,

FATFS 访问 "blk_data" 时,通过 NFTL 访问 Flash。

  • 分区名:
    • "spl":分区及其设备名,"spl" 分区主要用于存储 二次引导加载程序,是系统启动的第一个阶段所加载的程序。
    • "os":"os" 分区,存放操作系统的主要部分,是系统运行的核心区域。
    • "rodata":"rodata" 分区,主要用于存储只读数据,包括系统在运行时需要读取但不修改的配置信息等。
    • "data":"data" 分区,用来存储可变数据,如用户生成的数据或系统运行时产生的临时数据。
  • MTD 设备名:对 Flash 的底层直接访问,便于进行读写硬件等操作。
  • 块设备名:通过将物理存储抽象为块设备,简化了对文件系统的操作。"blk_rodata" 和 "blk_data" 分别支持对 "rodata" 和 "data" 分区的文件系统访问。
  • 文件系统:"rodata" 分区使用 FATFS 文件系统,使得数据以文件的形式进行存储和管理。"data" 分区使用 FATFS 文件系统。
  • NFTL 层:网络闪存转换层,主要用来将 Flash 的物理特性映射为一般块设备,便于 FATFS 等文件系统无需关心底层 NAND Flash 的具体特性。
    注:

    建议只设置一个使用 NFTL 的分区,并且分区不要太小。因为 NFTL 需要预留至少 6 MB 空间做坏块管理。

  • 访问规则:
    • 直接访问 Flash,使用 MTD 设备

    • FATFS 访问 Flash,需要使用块设备,通过 NFTL 层访问 Flash

3. eMMC 上的分区、设备和文件系统

分区名字

MTD 设备名

块设备名

文件系统

备注

"spl"

-

mmc0p0

-

-

"os"

-

mmc0p1

-

-

"rodata"

-

mmc0p2

FATFS

此处的分区排序仅为示例

"data"

-

mmc0p3

FATFS

此处的分区排序仅为示例

  • 分区名
    • "spl":分区及其设备名,"spl" 分区主要用于存储 二次引导加载程序,是系统启动的第一个阶段所加载的程序。
    • "os":"os" 分区,存放操作系统的主要部分,是系统运行的核心区域。
    • "rodata" :"rodata" 分区,主要用于存储只读数据,包括系统在运行时需要读取但不修改的配置信息等。
    • "data":"data" 分区,用来存储可变数据,如用户生成的数据或系统运行时产生的临时数据。
  • MTD 设备名:对 Flash 的底层直接访问,便于进行读写硬件等操作。
  • 块设备名:块设备按照分区顺序从 0 开始编号,例如从 mmc0p0 到 mmc0p3。每个块设备代表 eMMC 中的一个分区,简化了物理存储到逻辑存储的映射,便于后续的文件系统管理。
  • 文件系统:"rodata" 和 "data" 分区均使用 FATFS 文件系统。
  • 访问规则:块设备的命名,按照分区的排序从 0 开始编号