59 lines
2.4 KiB
Markdown
59 lines
2.4 KiB
Markdown
|
# 如何使用 RT-Thread 文件系统
|
|||
|
|
|||
|
- 文件系统是开发者最常用的操作系统功能之一,RT-Thread 中很多功能也依赖文件系统完成,后面以 SD 卡作为文件系统介质,介绍一下 RT-Thread 中文件系统的制作和使用
|
|||
|
|
|||
|
- 飞腾派如果固件在 SD 卡中,不适用于本文档,可以参考[飞腾派SD文件系统](./use_phytium_pi_sd_image.md)
|
|||
|
|
|||
|
## 配置 SD 驱动
|
|||
|
|
|||
|
- 打开配置 BSP_USING_SDIF,使能 SD 驱动
|
|||
|
- 打开配置 BSP_USING_SDCARD_FATFS,使能 SD 文件系统
|
|||
|
- 根据板子的实际情况选择 SD 控制器,SD0 打开 USING_SDIF0,SD1 打开 USING_SDIF1
|
|||
|
- 根据 SD 控制器连接的介质选择,TF 卡或者 eMMC,例如 USE_SDIF1_TF
|
|||
|
- 在 mnt_sdcard.c 中指定根目录和 SD 设备
|
|||
|
- 进行编译生成镜像
|
|||
|
|
|||
|
## 识别 SD 设备
|
|||
|
|
|||
|
- 启动镜像后,输入 list devices,查看 SD 设备是否识别成功
|
|||
|
|
|||
|
```
|
|||
|
msh />list device
|
|||
|
device type ref count
|
|||
|
---------------- -------------------- ----------
|
|||
|
sd10 Block Device 0 --> SD1 的第一个分区
|
|||
|
sd1 Block Device 1 --> SD1
|
|||
|
sd0 Block Device 1
|
|||
|
zero Miscellaneous Device 0
|
|||
|
urandom Miscellaneous Device 0
|
|||
|
random Miscellaneous Device 0
|
|||
|
null Miscellaneous Device 0
|
|||
|
e0 Network Interface 1
|
|||
|
SPI3 SPI Bus 0
|
|||
|
SPI2 SPI Bus 0
|
|||
|
SPI1 SPI Bus 0
|
|||
|
SPI0 SPI Bus 0
|
|||
|
PWM6 PWM Device 0
|
|||
|
MIO15 I2C Bus 0
|
|||
|
DC1 Graphic Device 0
|
|||
|
uart1 Character Device 2
|
|||
|
uart0 Character Device 0
|
|||
|
QSPI0 SPI Bus 0
|
|||
|
CAN0 CAN Device 0
|
|||
|
```
|
|||
|
|
|||
|
## 制作 SD 文件系统
|
|||
|
|
|||
|
- 如果之前 SD 卡里没有 FAT32 文件系统,自动挂载可能不会成功,需要启动 RT-Thread 后格式化一个 SD 设备,然后 mount
|
|||
|
|
|||
|
```
|
|||
|
msh />mkfs sd1 / elm
|
|||
|
msh />mount sd1 / elm
|
|||
|
mount device sd1(elm) onto / ... succeed!
|
|||
|
```
|
|||
|
|
|||
|
- 文件系统制作好后,下次启动会自动挂载成根目录
|
|||
|
|
|||
|
## 使用 SD 文件系统
|
|||
|
|
|||
|
- 参考[RT-Thread 的文件系统使用说明](https://www.rt-thread.org/document/api/group___d_f_s.html)
|