欢迎来到天天文库
浏览记录
ID:38701017
大小:351.54 KB
页数:36页
时间:2019-06-17
《FATFS中文资料及应用实例》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、TBFatFs移植实验出自嵌入式大讲堂目录1实验要求2实验目的3FatFs3.1特点3.2应用程序接口3.2.1f_mount3.2.2f_open3.2.3f_close3.2.4f_read3.2.5f_write3.2.6f_lseek3.2.7f_truncate3.2.8f_sync3.2.9f_opendir3.2.10f_readdir3.2.11f_getfree3.2.12f_stat3.2.13f_mkdir3.2.14f_unlink3.2.15f_chmod3.2.16f_utime
2、3.2.17f_rename3.2.18f_mkfs3.2.19f_forward3.2.20f_chdir3.2.21f_chdrive3.2.22f_gets3.2.23f_putc3.2.24f_puts3.2.25f_printf3.3磁盘I/O接口3.3.1disk_initialize3.3.2disk_status3.3.3disk_read3.3.4disk_write3.3.5disk_ioctl3.3.6get_fattime实验要求在SD驱动移植实验的基础上,加上FatFs文件系统,实现SD卡中文件
3、的读写及其它操作实验目的了解FatFs文件系统的原理掌握FatFs文件系统的移植方法实现SD卡中文件的读写及其它操作FatFsFatFS是一个为小型嵌入式系统设计的通用FAT(FileAllocationTable)文件系统模块。FatFs的编写遵循ANSIC,并且完全与磁盘I/O层分开。因此,它独立(不依赖)于硬件架构。它可以被嵌入到低成本的微控制器中,如AVR,8051,PIC,ARM,Z80,68K等等,而不需要做任何修改。特点Windows兼容的FAT文件系统不依赖于平台,易于移植代码和工作区占用空间非常小多种配置选项:多卷(物
4、理驱动器和分区)多ANSI/OEM代码页,包括DBCS在ANSI/OEM或Unicode中长文件名的支持RTOS的支持多扇区大小的支持只读,最少API,I/O缓冲区等等应用程序接口FatFs模块为应用程序提供了下列函数,这些函数描述了FatFs能对FAT卷执行哪些操作。f_mount在FatFs模块上注册/注销一个工作区(文件系统对象)FRESULTf_mount(BYTEDrive,/*逻辑驱动器号*/FATFS*FileSystemObject/*工作区指针*/);参数Drive注册/注销工作区的逻辑驱动器号(0-9)。FileSystemObj
5、ect工作区(文件系统对象)指针。返回值FR_OK(0)函数成功。FR_INVALID_DRIVE驱动器号无效描述f_mount函数在FatFs模块上注册/注销一个工作区。在使用任何其他文件函数之前,必须使用该函数为每个卷注册一个工作区。要注销一个工作区,只要指定FileSystemObject为NULL即可,然后该工作区可以被丢弃。该函数只初始化给定的工作区,以及将该工作区的地址注册到内部表中,不访问磁盘I/O层。卷装入过程是在f_mount函数后或存储介质改变后的第一次文件访问时完成的。f_open创建/打开一个用于访问文件的文件对象FRESUL
6、Tf_open(FIL*FileObject,/*空白文件对象结构指针*/constXCHAR*FileName,/*文件名指针*/BYTEModeFlags/*模式标志*/);参数FileObject将被创建的文件对象结构的指针。FileNameNULL结尾的字符串指针,该字符串指定了将被创建或打开的文件名。ModeFlags指定文件的访问类型和打开方法。它是由下列标志的一个组合指定的。模式描述指定读访问对象。可以从文件中读取数据。FA_READ与FA_WRITE结合可以进行读写访问。指定写访问对象。可以向文件中写入数据。FA_WRITE与FA_R
7、EAD结合可以进行读写访问。FA_OPEN_EXISTING打开文件。如果文件不存在,则打开失败。(默认)FA_OPEN_ALWAYS如果文件存在,则打开;否则,创建一个新文件。FA_CREATE_NEW创建一个新文件。如果文件已存在,则创建失败。FA_CREATE_ALWAYS创建一个新文件。如果文件已存在,则它将被截断并覆盖。注意:当_FS_READONLY==1时,模式标志FA_WRITE,FA_CREATE_ALWAYS,FA_CREATE_NEW,FA_OPEN_ALWAYS是无效的。返回值FR_OK(0)函数成功,该文件对象有效。FR_N
8、O_FILE找不到该文件。FR_NO_PATH找不到该路径。FR_INVALID_NAME文件名无效。FR_
此文档下载收益归作者所有