FatFs文件系统的移植 下载下来的FatFs的FatFs有两个文件夹,一个是 doc ,FatFs的说明,包括特性,系统函数,以及可能的一些问题,另一个就是源代码文件夹src了,总共8个文件,diskio.c和diskio.h是硬件层,ff.c和ff.h是FatFs的文件系统层和文件系统的API层,integer.h是文件系统所用到的数据类型的定义,tff.c和tff.h是Tiny的文件系统层和文件系统的API层,还有一个00readme.txt简要的介绍了FatFSHE FatFs/Tiny,包括他们所支持的API,怎么配置等等。 FatFs文件系统是一种轻量级、可移植的文件系统,主要设计用于嵌入式系统,尤其是资源有限的设备。它由ChaN软件公司开发,支持FAT12、FAT16和FAT32文件系统格式。移植FatFs到特定硬件平台的主要任务包括实现硬件接口层(通常称为diskio.c和diskio.h)和配置文件系统参数。 1. 硬件接口层: FatFs文件系统的移植首先需要关注硬件接口层,即diskio.c和diskio.h中的函数。这些函数负责与实际的存储介质(如CF卡、SD卡或NAND Flash)进行交互,如读写扇区、获取状态和初始化等。例如,你需要实现`disk_read`和`disk_write`函数,它们分别用于读取和写入多个扇区。在S3C2440这样的ARM9处理器上,这些函数需要适配相应的驱动程序,确保高效地访问存储介质。 2. 文件系统层和API: FF.c和FF.h包含了FatFs的核心文件系统功能和应用程序接口(API)。例如,`f_open`、`f_read`、`f_write`等函数允许应用程序进行文件的打开、读取、写入等操作。移植时,你需要确保这些API能够正确地调用硬件接口层的函数,以实现文件系统的功能。 3. 数据类型定义: integer.h文件中定义了FatFs所使用的数据类型,如`DWORD`、`WORD`和`BYTE`等,这些都是为了保持跨平台兼容性而设计的。确保在你的平台上正确地使用这些类型是移植的一部分。 4. Tiny FatFs(tff.c和tff.h): 这部分针对资源更有限的设备提供了精简的文件系统实现。如果你的平台资源紧张,可以选择使用Tiny FatFs版本。 5. 配置与选项: FatFs具有高度可配置性,可以通过修改配置文件来适应不同的需求。例如,你可以选择是否支持长文件名、日期时间记录等特性。00readme.txt文件会指导你如何配置这些选项。 在选择FatFs之前,开发者可能会考虑其他文件系统,如UC/FS(UCOSII公司的产品)、ZLG/FS(周立功公司的产品)和efsl。然而,FatFs因其开源、免费和高效的特性而受到青睐。尽管存在微软FAT文件系统版权的问题,但FatFs通常用于非商业用途,或者在遵守某些条件的情况下用于商业产品。 移植过程中,性能是关键因素。例如,对于需要快速读写性能的应用,底层的扇区读写函数必须支持一次性读写多个扇区以提高效率。在评估不同文件系统时,要注意它们对扇区计数器的支持,以及是否能利用硬件特性来优化读写速度。 在实际应用中,如果FatFs无法满足特定的性能要求,开发者可能需要自行编写存储协议或对现有文件系统进行深度定制。然而,这需要更多的时间和专业知识。在本文档的案例中,作者最终选择了FatFs,因为它在满足速度和效率方面表现优秀,适合嵌入式系统的应用。
- lzwml2014-10-31fatfs官方资料写得还挺人性化的,便于移植
- lily_YOUYOU2014-07-12写的很详细,就是文档,注意一下哦
- 粉丝: 4
- 资源: 37
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助