本篇将介绍如何在LPC55S69_EVK开发板上,使用RT-Thread的SDIO驱动和FATFS文件系统组件实现SD卡上的文件读写。
另外举个使用小栗子:将SD卡上的视频文件(特殊制作的,其实就是一张张位图而已,不是真正的视频文件)通过RT-Thread文件系统组件读出来,并且通过SPI LCD刷频,实现类似视频播放的效果。
在LPC55S69_EVK上使用RT-Thread驱动SD卡实现文件读写只需要以下几步:
配置FATFS和 SDIO功能
编译项目代码
插入SD卡
烧录二进制文件到开发板
PS:本篇文章特点 – 实操性强,异常简单,有手就行。
准备工作
准备好LPC55S69_EVK开发板,准备一张SD卡,我这里准备的是一张8G的金士顿古董卡,最好在电脑上先把SD卡格式化为FAT32文件系统。
准备好RT-Thread开发环境,确保在阅读这篇文章之前,已经可以成功将RT-Thread跑在LPC55S69_EVK开发板上。
配置RT-Thread编译下载工程
进入 t-threadbsplpc55sxxlpc55s69_nxp_evk 目录,打开RT-Thread scons命令行配置工具, 输入menuconfig 进入配置界面:
找到 RT-Thread Components ->device Drivers, 选择 Using SD/MMC 设备驱动程序:
切换到 Hardware Drivers Config -> On-chip Peripheral Drivers 选项卡下,选上Enable SDIO SD Card Interface
到此为止RT-Thread的SD/MMC驱动和LPC55S69的SDIO外设驱动就算配置上了,退回到scons命令行界面,输入 scons –target=mdk5 生成新的MDK工程
看到Keil-MDK project has generated successfully! 说明 Keil工程生成成功。
双击打开Project.uvprojx Keil工程文件(我的Keil版本V5.38),编译工程,下载到开发板:
下载后按一下板子上的复位按键,看到LED开始闪烁,串口会打印如下log:
可以看到,RT-Thread系统已经成功识别了SD卡,并且成功将FAT32系统挂载到了根目录下。 可以用ls检查下是否挂载成功:
在msh中操作SD卡
烧录完成后,我们就可以在RT-Thread的msh环境中愉快地操作SD卡了。
首先,我们可以通过help命令查看此时msh中支持哪些命令:
可以看到,这里有很多命令,我们接下将会使用到的有:
文件操作命令——ls/cp/mv/cat/rm
可以写文件的命令——echo
目录操作命令——cd/pwd/mkdir
文件系统操作命名——mkfs/mount/umount/df
使用过Linux的朋友应该会对上面这些命令感到熟悉。
我将会在msh中演示——如何通过这些命令对SD卡进行一些操作。
查看设备 : list device
格式化SD卡 : 初次使用的SD卡,可能没有文件系统,或者文件系统不是FAT格式的,需要将SD卡格式化为FAT文件系统,RT-Thread后续才能挂载成功。
注意:格式化操作会导致SD卡上已有数据全部丢失; 因此,在执行格式化操作前,请确认SD卡上没有重要数据,或者你已对SD卡上的重要数据进行了备份。
接下来,我们可以通过mkfs命令对SD卡进行 格式化 :输入 mkfs sd:
mkfs执行会持续一段时间,请耐心等待(具体因不同SD卡容量和速度等级而异,我的8GB卡消耗了2秒钟)。
挂载文件系统 : 可先输入mount -h 来看下mount命令怎么用:
了然,输入 mount sd / elm, 将SD设备挂载根目录下,使用elm(FAT32)文件系统
简单的目录操作测试: 相信这些Linux常用文件操作命令不需要解释了。
小结
可以看到,在基于RT-Thread系统的项目中,我们没有添加任何代码,就可以实现对LPC55S69_EVK开发板上的SD卡进行文件系统、目录、文件相关操作。 这是因为RT-Thread系统本身已经积累了大量优秀开发者的工作成果,其中包括SDIO驱动框架、FATFS支持、芯片厂的SDIO驱动。
下一篇我们将继续基于RT-Thread 操作系统的文件系统支持,驱动SPI LCD来实现播放视频的效果。
审核编辑:汤梓红
全部0条评论
快来发表一下你的评论吧 !