1.引言
在嵌入式系統應用中,大容量的數據存儲是經常遇到的一個問題。常見的解決方案包括Flash存儲芯片、SD卡和U盤。SD卡具有存儲容量大、攜帶方便、插拔便捷的特點,所以經常出現在嵌入式設備中。比如下面這個小投影儀,側面就有1個SD卡接口,可以用來播放SD卡裏的電影、歌曲等。
本篇介紹Linux下SD卡的使用,包括相關配置、SD卡的挂載等。
2.環境介紹
2.1.硬件
NUC972開發板
2.2.軟件
1) Uboot繼續使用之前文章用的,需要做改動。
2) Kernel在上一篇基礎上,需要改動。
3) Rootfs使用上一篇的,不需要改動。
3.Uboot配置
Uboot的配置如下:
第一處是這裏:
第二處是這裏:
還有一處:
/board/nuvoton/nuc970/nuc970.c
把一句話注釋掉,初始化完了之前,它把管腳都reset到gpio功能了。
4.內核配置
內核配置
這樣改完燒進去,啓動就有了:
5.SD卡挂載
1) 首先通過#fdisk -l命令確認板子上的linux系統是否識別SD卡
下圖中顯示的15.6GB的設備對應的就是板子上插入的SD卡。
2)然後cat /proc/partitions
看看有沒有這兩個分區,如果沒有,就說明SD卡驅動沒有移植成功
3) 之後就可以挂載SD卡
mount /dev/mmcblk0p1 /mnt/
或者
mount -t vfat /dev/mmcblk0p1 /mnt/
挂載完就可以在/mnt目錄中對文件進行各種操作了。
4) 卸載SD卡
umount /mnt
注意,卸載時當前目錄不能是/mnt,否則會出現"umount can't umount /mnt device or resource busy"的錯誤提示信息。