原创 STM32 SD卡FATFS移植

2010-3-26 21:28 5783 9 13 分类: MCU/ 嵌入式
最近试玩了STM32用SPI方式操作SD卡,这样就涉及到文件系统,搜索到几种支持FAT16/32的文件,综合考虑,最后选择了完全开源、免费的FATFS,版本是R0.07e,该版本支持长文件名:


  • Windows compatible FAT12/16/32 file system.
  • Platform independent. Easy to port.
  • Very small footprint for code and work area.
  • Various configuration options:

    • Multiple volumes (physical drives and partitions).
    • Multiple OEM code pages including DBCS.
    • Long file name (LFN) support in OEM code or Unicode.
    • RTOS support.
    • Multiple sector size support.
    • Read-only, minimized API, I/O buffer and etc...

官网地址:http://elm-chan.org
下载地址:http://elm-chan.org/fsw/ff/ff007e.zip
本地下载:FATFS R007e
感受就是FATFS十分容易移植,同时对资源不是要求很高,网上对FATFS的移植也比较多。
要点是:
1:SD底层驱动
2:Disk I/O Interface
Since the FatFs module is completely separated from disk I/O layer, it requires following functions to lower layer to read/write the physical disk and to get current time. The low level disk I/O module is not a part of FatFs module so that it must be provided by user. The sample drivers are also available in the resources.


  • disk_initialize - Initialize disk drive
  • disk_status - Get disk status
  • disk_read - Read sector(s)
  • disk_write - Write sector(s)
  • disk_ioctl - Control device dependent features
  • get_fattime - Get current time
以下是512M SD1.0卡和4G SDHC卡的测试结果:
**************************************************
Card Type                     : SD V1
File System Sub Type          : FAT16
Total space (Bytes)           : 511574016
Available space (Bytes)       : 511369216
Physical drive number         : 0
Maximum cluster               : 62450
Number of free clusters       : 62423
Last allocated cluster        : 0
Maximum sector size           : 512
Number of sectors per cluster : 16
Number of FAT copies          : 2
Sectors per fat               : 244
File system info sector       : 0
Root directory start sector   : 729
FAT start sector              : 241
Data start sector             : 761
**************************************************
Write File Successed: 0:CardInfo.txt, 64:64
Write File Successed: 0:ffext2.ini, 13312:13312
Read File Successed: 0:ffext2.ini, 13312:13312
Write File Successed: 0:ffext1.txt, 13312:13312

**************************************************
Card Type                     : SD V2HC
File System Sub Type          : FAT32
Total space (Bytes)           : 3949592576
Available space (Bytes)       : 3949588480
Physical drive number         : 0
Maximum cluster               : 964258
Number of free clusters       : 964255
Last allocated cluster        : 3
Maximum sector size           : 512
Number of sectors per cluster : 8
Number of FAT copies          : 2
Sectors per fat               : 7534
File system info sector       : 1
Root directory start sector   : 2
FAT start sector              : 36
Data start sector             : 15104
**************************************************
Write File Successed: 0:CardInfo.txt, 64:64
Write File Successed: 0:ffext2.ini, 13312:13312
Read File Successed: 0:ffext2.ini, 13312:13312
Write File Successed: 0:ffext1.txt, 13312:13312

以下是移植文件:7c90d46b-0a6e-4d75-836f-acd652cd8631.jpg

PARTNER CONTENT

文章评论4条评论)

登录后参与讨论

用户448030 2013-5-12 14:23

需要学习SD 卡和USB ,这里都有,太感谢了!

用户177771 2012-2-13 13:14

谢谢

用户906612 2011-1-19 15:20

谢谢。呵呵

用户505847 2010-5-10 17:16

谢谢!
相关推荐阅读
用户1206224 2010-11-22 08:05
基于STM32的智能交通信号机
基于STM32的智能交通信号机,有兴趣探讨的朋友可以跟我联系...
用户1206224 2010-03-26 21:30
STM32 USB 源代码及笔记下载 修复贴
今年比较忙,很少来空间,看到大家的留言,故发布此STM32 USB 源代码及笔记下载修复贴STM32 USB固件以及上位机驱动、应用程序源程序:笔记:...
用户1206224 2009-06-02 08:53
基于STM32的USB程序开发笔记(一)
第一篇:需要准备的一些资料1:STM32的参考手册,这对于设备底层USB的硬件配置以及事件驱动机制的了解尤为重要,你需要了解各个寄存器的功能以及如何操作,比如CNTR、ISTR、EPnR、DADDR等...
用户1206224 2009-06-02 08:51
STM32的16路ADC的USB高速采集
STM32的16路ADC的USB高速采集前提:本例基于STM32F103VBT6平台功能说明:16路AD转换并将结果通过USB发送至PC,PC端驱动为定制编写,并附带一款测试软件。附件说明:1:STM...
用户1206224 2009-03-28 09:50
第二版STM32F103ZET6最小系统板实物照片
第二版STM32F103ZET6最小系统板实物照片,PCB工艺不是好,手工焊接后也很脏。第二版硬件上没有问题,各项都调试通过,但综合多种因素,该套小板原则上不会制作并对外,但还是非常感谢大家这段时间对...
EE直播间
更多
我要评论
4
9
关闭 站长推荐上一条 /3 下一条