最新版 FatFS f_mkfs 详解

作者:fly 发布于:2014-3-24 16:35 分类:嵌入式

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分类,取决于卷大小和指定的簇大小。簇大小影响文件系统的性能,并且大簇会提高性能。

 

发表评论:

 
Powered by emlog sitemap