挂载 SD 卡
Read time: 2 minute(s)
Luban-Lite 中可以挂载 SD 卡 (FAT32 格式)。本节以一个 SD 卡只有一个分区为例,介绍挂载 SD 卡的详细步骤。
- 进入 SDK 的 menuconfig 菜单,选中对应 SDMC 接口进行配置。例如,对于 D211BBV-DEMO-V2.0 开发板,SD 卡对接 SDMC1 接口,则选中 SDMC1 接口并设置为使用,如下所示:
Board options ---> [*] Using SDMC1 SDMC1 Parameter Select SDMC1 BUSWIDTH (sdmc 4-bit mode) ---> [*] Using SDcard hotplug detection //热插拔检查 (PC.6) sdcard hotplug gpio (NEW) [ ] SDMC1 connect to a SDIO device (3) SDMC1 driver phase (0) SDMC1 sample phase (100000000) SDMC1 CMU clock frequency
-
在
target/<cpu>/<board>/board.c
中,找到mount_table
数组,添加以下代码,实现自动挂载 SD 卡:const struct dfs_mount_tbl mount_table[] = { ... {"sd0p0", "/sdcard", "elm", 0, 0, 0}, // SD 卡首个分区 {"sd0", "/sdcard", "elm", 0, 0, 0}, // 设备节点,一定存在 ... };
上述代码中:-
sd0 通常为 SD 卡的设备节点。
-
sd0p0 通常为 SD 卡第一个分区,通常情况下也是唯一分区。
如果 SD 卡有多个分区,则文件名需要递增,例如使用 sd0p1、sd0p2 … 。
-
使用 Linux 中的 mkfs.vfat 命令直接格式化后的 SD 卡,可能只有 sd0,没有 sd0p0。
-
-
配置完成后,保存退出,编译、烧录程序。
编译烧录后,系统会自动挂载 SD 卡。
- 验证 SD 卡识别。
-
烧录完成后,断开电源,接入 SD 卡,上电,查看系统设备列表。
-
执行下列命令:注: 若使用手动挂载,则此步需额外执行
mountsd0/sdcardelm
和mount sd0p0 /sdcard elm
。list_device
当出现 sd0 和 sd0p0 设备时,表明系统已识别 SD 卡:device type ref count -------- -------------------- ---------- ... sd0 Block Device 0 sd0p0 Block Device 1 ...
-
- 执行下列命令进入 sdcard
目录,并查看文件列表。
cd sd
ls
如文件列表中出现 sdcard,表示挂载完成。Directory /sdcard: lvgl_data <DIR> aicdoc.tar 89180160 tools <DIR>