LPC55S69在RT-Thread上的SDIO驱动和文件系统

描述

本篇将介绍如何在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

找到 RT-Thread Components ->device Drivers, 选择 Using SD/MMC 设备驱动程序:

RT-Thread

切换到 Hardware Drivers Config -> On-chip Peripheral Drivers 选项卡下,选上Enable SDIO SD Card Interface

RT-Thread

到此为止RT-Thread的SD/MMC驱动和LPC55S69的SDIO外设驱动就算配置上了,退回到scons命令行界面,输入 scons –target=mdk5 生成新的MDK工程

RT-Thread

看到Keil-MDK project has generated successfully! 说明 Keil工程生成成功。

双击打开Project.uvprojx Keil工程文件(我的Keil版本V5.38),编译工程,下载到开发板:

RT-Thread

下载后按一下板子上的复位按键,看到LED开始闪烁,串口会打印如下log:

RT-Thread

可以看到,RT-Thread系统已经成功识别了SD卡,并且成功将FAT32系统挂载到了根目录下。 可以用ls检查下是否挂载成功:

RT-Thread

在msh中操作SD卡

烧录完成后,我们就可以在RT-Thread的msh环境中愉快地操作SD卡了。

首先,我们可以通过help命令查看此时msh中支持哪些命令:

RT-Thread

可以看到,这里有很多命令,我们接下将会使用到的有:

文件操作命令——ls/cp/mv/cat/rm

可以写文件的命令——echo

目录操作命令——cd/pwd/mkdir

文件系统操作命名——mkfs/mount/umount/df

使用过Linux的朋友应该会对上面这些命令感到熟悉。

我将会在msh中演示——如何通过这些命令对SD卡进行一些操作。

查看设备 : list device

RT-Thread

格式化SD卡 : 初次使用的SD卡,可能没有文件系统,或者文件系统不是FAT格式的,需要将SD卡格式化为FAT文件系统,RT-Thread后续才能挂载成功。

注意:格式化操作会导致SD卡上已有数据全部丢失; 因此,在执行格式化操作前,请确认SD卡上没有重要数据,或者你已对SD卡上的重要数据进行了备份。

接下来,我们可以通过mkfs命令对SD卡进行 格式化 :输入 mkfs sd:

RT-Thread

mkfs执行会持续一段时间,请耐心等待(具体因不同SD卡容量和速度等级而异,我的8GB卡消耗了2秒钟)。

挂载文件系统 : 可先输入mount -h 来看下mount命令怎么用:

RT-Thread

了然,输入 mount sd / elm, 将SD设备挂载根目录下,使用elm(FAT32)文件系统

RT-Thread

简单的目录操作测试: 相信这些Linux常用文件操作命令不需要解释了。

RT-Thread

小结

可以看到,在基于RT-Thread系统的项目中,我们没有添加任何代码,就可以实现对LPC55S69_EVK开发板上的SD卡进行文件系统、目录、文件相关操作。 这是因为RT-Thread系统本身已经积累了大量优秀开发者的工作成果,其中包括SDIO驱动框架、FATFS支持、芯片厂的SDIO驱动。

下一篇我们将继续基于RT-Thread 操作系统的文件系统支持,驱动SPI LCD来实现播放视频的效果。

审核编辑:汤梓红

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分