FatFs文件系统:f_mkfs

网站作者1年前FatFs437

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

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

相关文章

FatFs文件系统:f_rename

重命名一个对象。FRESULT f_rename (        const XCHAR* OldName, /* 原对象名的指针 */        const XCHAR* NewName ...

FatFs文件系统:f_lseek

移动一个打开的文件对象的文件读/写指针。也可以被用来扩展文件大小(簇预分配)。FRESULT f_lseek (      FIL* FileObject, /* 文件对象结构指针 */     ...

FatFs文件系统:f_eof

测试一个文件的文件末尾。int f_eof (        FIL* FileObject /* File object */   );参数:FileObject——指向打开文件对象结构的指针。...

FatFs文件系统:f_utime

f_utime 函数修改一个文件或目录的时间戳。FRESULT f_utime (        const XCHAR* FileName, /* 文件或目录路径的指针 */        co...

FatFs文件系统:f_tell

获取一个文件的当前读/写指针。DWORD f_tell (        FIL* FileObject /* File object */   );参数:FileObject——指向打开文件对象...

FatFs文件系统:disk_ioctl

控制设备特定的功能以及磁盘读写以外的其它功能。DRESULT disk_ioctl (        BYTE Drive, /* 驱动器号 */        BYTE Command, /* ...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。