FatFs文件系统:f_fdisk

网站作者5个月前FatFs339

划分一个物理驱动器。

FRESULT f_fdisk (   
    BYTE Drive, /* Physical drive number */   
    const DWORD Partitions[], /* Partition size */   
    void* Work /* Work area */  
);


参数:

Drive——指定要划分的物理驱动器 

Partitions[]——分区映象表,必须有四个项目。 

Work——指向函数工作区的指针。其大小必须至少为_MAX_SS 字节。 


返回值:

FR_OK (0)函数成功。 

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

FR_WRITE_PROTECTED 驱动器被写保护。 

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

FR_INVALID_PARAMETER 所给参数无效或不一致。 


描述:

f_fdisk 函数创建一个分区表到物理驱动器的 MBR。分区规则为通用 FDISK 格式,所以可以创建多达 四个主分区。不支持扩展分区。Partitions[]指定了如何划分物理驱动器。第一个项目指定第一个主分区的大 小,第四个项目指定第四个主分区。如果其值小于或等于 100,表示分区占整个磁盘空间的百分比。如果大 于 100,则表示以扇区为单位的分区大小。 提示 在_FS_READOLNY == 0、_USE_MKFS == 1 并且_MULTI_PARTITION == 2 时可用。


示例:

/* 用户定义的卷管理表(当 _MULTI_PARTITION != 0 时必需) */  
PARTITION VolToPart[] = {  
    {0, 1}, /* 逻辑驱动器 0 ==> 物理驱动器 0,第一个分区 */  
    {0, 2}, /* 逻辑驱动器 1 ==> 物理驱动器 0,第二个分区 */  
    {1, 0} /* 逻辑驱动器 2 ==> 物理驱动器 1,第三个分区 */  
};  
/* 初始化一个全新的硬盘,映射到物理驱动器 0 */  
FATFS Fatfs;  
DWORD plist[] = {50, 50, 0, 0}; /* 将驱动器分为两个分区 */  
BYTE work[_MAX_SS];  
f_fdisk(0, plist, work); /* Divide physical drive 0 */  
f_mount(0, &Fatfs);  
f_mkfs(0, 0, 0); /* Create an FAT volume on the logical drive 0. 2nd argument is ignored. */  
f_mount(0, 0);  
f_mount(1, &Fatfs);  
f_mkfs(1, 0, 0);  
f_mount(1, 0);


相关文章

FatFs文件系统:f_unlink

移除一个对象FRESULT f_unlink (        const XCHAR* FileName /* 对象名的指针 */   );参数:FileName'\0'结尾的字符串指针,该字符...

FatFs文件系统:f_mkfs

在驱动器上创建一个文件系统。FRESULT f_mkfs (        BYTE Drive, /* 逻辑驱动器号 */        BYTE PartitioningRule, /* 分区...

FatFs文件系统:f_size

获取一个文件的大小。DWORD f_size (        FIL* FileObject /* File object */   );参数:FileObject——指向打开文件对象结构的指针...

FatFs文件系统:f_puts

f_puts 函数向文件中写入一个字符串。int f_puts (        const char* Str, /* 字符串指针 */        FIL* FileObject /* 文件...

FatFs文件系统:f_readdir

读取目录项。FRESULT f_readdir (      DIR* DirObject, /* 指向打开的目录对象结构的指针 */      FILINFO* FileInfo /* 指向文件...

FatFs文件系统:disk_write

向磁盘驱动器中写入扇区。DRESULT disk_write (        BYTE Drive, /* 物理驱动器号 */        const BYTE* Buffer, /* 写入数...

发表评论    

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