首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

FatFS文件系统 20

FatFS文件系统 20

FATFS是一个为小型嵌入式系统设计的通用FAT(File Allocation Table)文件系统模块。FatFs 的编写遵循ANSI C,并且完全与磁盘I/O层分开。因此,它独立(不依赖)于硬件架构。它可以被嵌入到低成本的微控制器中,如AVR, 8051, PIC, ARM, Z80, 68K 等等,而不需要做任何修改。  

    FatFs 模块为应用程序提供了下列函数:
1.f_mount  

FatFs 模块上注册 / 注销一个工作区 ( 文件系统对象 )  

FRESULT f_mount (

  BYTE  Drive,             /*  逻辑驱动器号  */

  FATFS*  FileSystemObject /*  工作区指针  */

);

参数   

Drive  

注册 / 注销工作区的逻辑驱动器号 (0-9) 。   

FileSystemObject  

工作区 ( 文件系统对象 ) 指针。

返回值   

FR_OK (0)  

函数成功。   

FR_INVALID_DRIVE  

驱动器号无效   




f_mount 函数在 FatFs 模块上注册 / 注销一个工作区。 在使用任何其他文件函数之前,必须使用该函数为每个卷注册一个工作区。要注销一个工作区,只要指定 FileSystemObject NULL 即可,然后该工作区可以被丢弃。  

该函数只初始化给定的工作区,以及将该工作区的地址注册到内部表中,不访问磁盘 I/O 层。卷装入过程是在f_mount 函数后或存储介质改变后的第一次文件访问时完成的。




2.f_open


创建 / 打开一个用于访问文件的文件对象   



FRESULT f_open (

  FIL* FileObject,         /*  空白文件对象结构指针  */

  const XCHAR* FileName,   /*  文件名指针  */

  BYTE ModeFlags           /*  模式标志  */

);

参数   

FileObject  

将被创建的文件对象结构的指针。   

FileName  

NULL 结尾的字符串指针,该字符串指定了将被创建或打开的文件名。   

ModeFlags  

指定文件的访问类型和打开方法。它是由下列标志的一个组合指定的。



模式


  描述


FA_READ   


指定读访问对象。可以从文件中读取数据。与 FA_WRITE 结合可以进行读写访问。


FA_WRITE   


指定写访问对象。可以向文件中写入数据。与 FA_READ 结合可以进行读写访问。


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_NO_FILE  

找不到该文件。   

FR_NO_PATH  

找不到该路径。   

FR_INVALID_NAME  

文件名无效。   

FR_INVALID_DRIVE  

驱动器号无效。   

FR_EXIST  

该文件已存在。   

FR_DENIED  

由于下列原因,所需的访问被拒绝:

n

以写模式打开一个只读文件。


n  ▲ 由于存在一个同名的只读文件或目录,而导致文件无法被创建。


n  ▲ 由于目录表或磁盘已满,而导致文件无法被创建。


FR_NOT_READY  

由于驱动器中没有存储介质或任何其他原因,而导致磁盘驱动器无法工作。   

FR_WRITE_PROTECTED  

在存储介质被写保护的情况下,以写模式打开或创建文件对象。   

FR_DISK_ERR  

由于底层磁盘 I/O 接口函数中的一个错误,而导致该函数失败。   

FR_INT_ERR  

由于一个错误的 FAT 结构或一个内部错误,而导致该函数失败。   

FR_NOT_ENABLED  

逻辑驱动器没有工作区。

FR_NO_FILESYSTEM  

磁盘上没有有效地 FAT 卷。
继承事业,薪火相传
返回列表