挂载 SD 卡
luban-lite 可以实现挂载 SD 卡(FAT32 格式),需要配置如下内容:
-
配置 SDMC 接口;
配置 SDMC 接口
挂载 SD 卡时,需将 对应 SDMC 接口选中,以 D211BBV-DEMO-V2.0 开发板为例,核对原理图可知,SD 卡对接的是 SDMC1,进入 SDK 的 menuconfig 菜单做如下配置:
Board options ---> [*] Using SDMC1 SDMC1 Parameter
设置自动挂载
在
target/<cpu>/<board>/board.c
中,找到
mount_table
数组,添加代码如下:const struct dfs_mount_tbl mount_table[] = { ... {"sd0p0", "/sdcard", "elm", 0, 0, 0}, // SD 卡首个分区 {"sd0", "/sdcard", "elm", 0, 0, 0}, // 设备节点,一定存在 ... };
关于 SD 卡及分区的解释:
- sd0 通常为 SD 卡的设备节点;
- sd0p0 通常为 SD 卡第一个分区,通常情况下也是唯一分区;假设 SD 卡有多个分区,那么文件名需要递增,例如 sd0p1、sd0p2 … ;
- 若只有 sd0 没有 sd0p0,较多出现在使用过 linux 中的 mkfs.vfat 命令直接格式化 SD 卡的设备节点;
- 本文示例以一个 SD 卡只有一个分区为例进行讲解。
编译烧录后,系统会自动挂载 SD 卡。
编译烧录
配置完成后,保存退出,编译、烧录
验证
- SD 卡识别烧录完成后,断开电源,接入 SD 卡,上电,检查设备,看到 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 目录,查看文件:
aic /> cd sd aic /> cd sdcard aic /sdcard> ls Directory /sdcard: lvgl_data <DIR> aicdoc.tar 89180160 tools <DIR> aic /sdcard>
至此, SD 卡挂载完成。