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

  • 6
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
f_mkfs函数是fatfs文件系统库中的一个函数,用于在指定的磁盘上创建一个指定格式的文件系统。下面是f_mkfs函数的完全解释: 函数原型: FRESULT f_mkfs ( const TCHAR* path, // 磁盘驱动器路径 BYTE opt, // 格式化选项 DWORD au, // 簇大小(字节单位) void* work, // 工作区 UINT len // 工作区长度 ); 参数说明: 1. path:磁盘驱动器路径,例如,"0:"表示逻辑驱动器0。 2. opt:格式化选项,可以是以下几个值之一: FM_FAT: 创建一个FAT12/FAT16/FAT32格式的文件系统。 FM_FAT32: 创建一个FAT32格式的文件系统。 FM_EXFAT: 创建一个exFAT格式的文件系统。 FM_ANY: 根据磁盘的容量和类型自动选择文件系统格式。 3. au:簇大小,即每个簇所包含的扇区数。在创建文件系统时,需要指定簇大小。簇大小会影响文件系统的性能和空间利用率。一般情况下,簇大小应该根据磁盘容量进行选择。例如,对于1GB以下的磁盘,可以选择4KB的簇大小;对于1GB到32GB的磁盘,可以选择8KB的簇大小;对于32GB以上的磁盘,可以选择16KB的簇大小。如果au为0,则会自动选择簇大小。 4. work:工作区指针,用于存储临时数据。创建文件系统时,需要分配一些内存用于临时存储数据,例如,文件分配表(FAT)和根目录表。如果work为NULL,则会自动分配内存。 5. len:工作区长度,即工作区所包含的字节数。如果work为NULL,则len应该为0。如果work不为NULL,则len应该是工作区所需要的最小字节数。 返回值说明: f_mkfs函数的返回值类型为FRESULT,表示文件系统操作的结果。常见的返回值包括: - FR_OK:操作成功。 - FR_DISK_ERR:磁盘错误。 - FR_INT_ERR:内部错误。 - FR_NOT_READY:磁盘未准备好。 - FR_NO_FILESYSTEM:磁盘没有文件系统。 - FR_MKFS_ABORTED:格式化操作被取消。 - FR_INVALID_PARAMETER:参数无效。 注意事项: 1. f_mkfs函数会清除磁盘上的所有数据,因此在调用该函数前应该备份磁盘上的数据。 2. f_mkfs函数需要在磁盘准备好之后才能调用,否则会返回FR_NOT_READY错误。 3. 在创建文件系统时,需要根据磁盘容量和类型选择合适的文件系统格式和簇大小,以确保文件系统的性能和空间利用率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值