最新版 FatFS f_mkfs 详解

转载:http://www.forwhat.cn/post-218.html

f_mkfs

在驱动器上创建一个文件系统

FRESULT f_mkfs (

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

 BYTE  PartitioningRule, /* 分区规则 */

 WORD  AllocSize         /* 分配单元大小 */

);

参数

Drive 待格式化的逻辑驱动器号(0-9)。

PartitioningRule

当给定0时,首先在驱动器上的第一个扇区创建一个分区表,然后文件系统被创建在分区上。这被称为FDISK格式化,用于硬盘和存储卡。当给定1时,文件系统从第一个扇区开始创建,而没有分区表。这被称为超级软盘(SFD)格式化,用于软盘和可移动磁盘。

AllocSize

指定每簇中以字节为单位的分配单元大小。数值必须是0或从512到32K之间2的幂。当指定0时,簇大小取决于卷大小。

返回值

FR_OK (0)  函数成功。

FR_INVALID_DRIVE 驱动器号无效。

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

FR_WRITE_PROTECTED 驱动器被写保护。

FR_NOT_ENABLED 逻辑驱动器没有工作区。

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

FR_MKFS_ABORTED 由于下列原因之一,而导致函数在开始格式化前终止:

磁盘容量太小

参数无效

该驱动器不允许的簇大小。

描述

f_mkfs函数当_FS_READOLNY == 0并且_USE_MKFS == 1时可用。

f_mkfs函数在驱动器中创建一个FAT文件系统。对于可移动媒介,有两种分区规则:FDISK和SFD,通过参数PartitioningRule选择。FDISK格式在大多数情况下被推荐使用。该函数当前不支持多分区,因此,物理驱动器上已存在的分区将被删除,并且重新创建一个占据全部磁盘空间的新分区。

根据Microsoft发布的FAT规范,FAT分类:FAT12/FAT16/FAT32,由驱动器上的簇数决定。因此,选择哪种FAT分类,取决于卷大小和指定的簇大小。簇大小影响文件系统的性能,并且大簇会提高性能。

你可能感兴趣的:(C51)