分区与存储设备的关系
Luban-Lite 上使用 RT-Thread 时,每个分区都对应一个或者多个系统设备。不同存储介质的对应关系如下表格所示。系统中出现但此处未列出的其它分区,同样遵循下列规则。
分区名 |
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 设备
-
分区名字 |
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
-
分区名字 |
MTD 设备名 |
块设备名 |
文件系统 |
备注 |
---|---|---|---|---|
"spl" |
- |
|
- |
- |
"os" |
- |
|
- |
- |
"rodata" |
- |
|
FATFS |
此处的分区排序仅为示例 |
"data" |
- |
|
FATFS |
此处的分区排序仅为示例 |
- 分区名:
- "spl":分区及其设备名,"spl" 分区主要用于存储 二次引导加载程序,是系统启动的第一个阶段所加载的程序。
- "os":"os" 分区,存放操作系统的主要部分,是系统运行的核心区域。
- "rodata" :"rodata" 分区,主要用于存储只读数据,包括系统在运行时需要读取但不修改的配置信息等。
- "data":"data" 分区,用来存储可变数据,如用户生成的数据或系统运行时产生的临时数据。
- MTD 设备名:对 Flash 的底层直接访问,便于进行读写硬件等操作。
- 块设备名:块设备按照分区顺序从 0 开始编号,例如从 mmc0p0 到 mmc0p3。每个块设备代表 eMMC 中的一个分区,简化了物理存储到逻辑存储的映射,便于后续的文件系统管理。
- 文件系统:"rodata" 和 "data" 分区均使用 FATFS 文件系统。
- 访问规则:块设备的命名,按照分区的排序从 0 开始编号