SD卡(Secure Digital Memory Card)中文翻译为安全数码卡,是一种基于 半导体快闪记忆器的新一代记忆设备,它被广泛地用于便携式装置上使用,例如 数码相机、 个人数码助理(PDA)和 多媒体播放器等。
SD卡的技术是基于MultiMedia卡( MMC)格式上发展而来的,大小和MMC差不多,尺寸为32mm x 24mm x 2.1mm。长宽和MMC一样,只是比MMC厚了0.7mm,以容纳更大容量的存贮单元。SD卡与MMC卡保持着向上兼容,也就是说,MMC可以被新的SD设备存取,兼容性则取决于应用软件,但SD卡却不可以被MMC设备存取。(SD卡外型采用了与MMC厚度一样的导轨式设计,以使SD设备可以适合MMC)。
SD卡的结构能保证数字文件传送的安全性,也很容易重新格式化,所以有着广泛的应用领域,音乐、电影、新闻等多媒体文件都可以方便地保存到SD卡中。因此不少数码相机也开始支持SD卡。
见于SD卡的广泛应用,一些ARM厂商也纷纷在自己的产品中专门设立了SD卡的接口来支援SD卡,NXP的LPC24XX系列就全面支持SD卡的读写。但是我们通常读写文件需要文件系统的支持,怎样在SD卡中建立起较为流行且易于操作的文件系统呢,这就是我今天要和大家讨论的话题,即在LPC2478上建立基于SD卡的FatFs文件系统。
FatFs Module是一种便于在嵌入式设备中移植和使用的文件系统,其结构如下:
中间层FatFs Module实现了FAT文件读/写协议。FatFs Module的完全版提供的是ff.c、ff.h,简化版Tiny—FatFs提供的是tff.c、tff.h。除非有必要,使用者一般不用修改,使用时将需要版本的头文件直接包含进去即可。
需要使用者编写移植代码的是FatFs Module提供的底层接口,它包括存储媒介读/写接口DiskIO和供给文件创建修改时间的实时时钟。
移植步骤如下:
到这里,有关文件系统的所有底层函数全部移植完毕,这些函数会被FatFs的系统函数所调用,FatFs系统函数如下
1、 f_mount - Register/Unregister a Work Area
14、 f_unlink - Remove a File or Directory
17、 f_rename - Rename/Move a File or Directory
18、 f_mkfs - Create a File System on the Drive
19、 f_forward - Forward file data to the stream directly
21、 fputc - Write a character
22、 fputs - Write a string
23、 fprintf - Write a formatted string
用户程序只需要调用FatFs的系统函数就可以在SD卡上存取文件了 |