挂载 SD 卡
4 Nov 2024
Read time: 2 minute(s)
Luban-Lite 可以实现挂载 SD 卡(FAT32 格式),本节以一个 SD 卡只有一个分区为例,介绍挂载 SD 卡的详细步骤。
配置 SDMC 接口
进入 SDK 的 menuconfig 菜单,选中对应 SDMC 接口。
例如,对于 D211BBV-DEMO-V2.0 开发板,SD 卡对接 SDMC1 接口,则选中 SDMC1 接口并设置为使用,如下所示:
Board options --->
[*] Using SDMC1
SDMC1 Parameter
设置自动挂载
在
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
。当出现 sd0 和 sd0p0 设备时,表明系统已识别 SD 卡:aic /> list_device device type ref count -------- -------------------- ---------- ... sd0 Block Device 0 sd0p0 Block Device 1 ...
注:若使用手动挂载,则在此时执行
mount sd0 /sdcard elm
和mount sd0p0 /sdcard elm
。 - 查看文件进入 sdcard 目录,查看文件列表。文件列表中出现 sdcard 表示挂载完成。
aic /> cd sd aic /> cd sdcard aic /sdcard> ls Directory /sdcard: lvgl_data <DIR> aicdoc.tar 89180160 tools <DIR> aic /sdcard>