在 R0.12b这版本中,f_mkfs函数的参数:
FRESULT f_mkfs (
const TCHAR* path, /* [IN] Logical drive number */
BYTE opt, /* [IN] Format options */
DWORD au, /* [IN] Size of the allocation unit */
void* work, /* [指针] Working buffer */
UINT len /* [IN] Size of working buffer */
);
参数:path
当给定0时,
首先在驱动器上的第一个扇区创建一个分区表,
然后文件系统被创建在分区上。
这被称为FDISK格式化,用于硬盘和存储卡。
当给定1时,文件系统从第一个扇区开始创建,
而没有分区表。这被称为超级软盘(SFD)格式化,
用于软盘和可移动磁盘。
参数:au
指定每簇中以字节为单位的分配单元大小。
数值必须是0或从512到32K之间2的幂。
当指定0时,簇大小取决于卷大小。
我建议把
res = f_mkfs("", FM_FAT32, 0, work, sizeof(work));
改为
res = f_mkfs("", FM_FAT32, 512, work, sizeof(work));
试试,看是不是这个导致的。
在 R0.12b这版本中,f_mkfs函数的参数:
FRESULT f_mkfs (
const TCHAR* path, /* [IN] Logical drive number */
BYTE opt, /* [IN] Format options */
DWORD au, /* [IN] Size of the allocation unit */
void* work, /* [指针] Working buffer */
UINT len /* [IN] Size of working buffer */
);
参数:path
当给定0时,
首先在驱动器上的第一个扇区创建一个分区表,
然后文件系统被创建在分区上。
这被称为FDISK格式化,用于硬盘和存储卡。
当给定1时,文件系统从第一个扇区开始创建,
而没有分区表。这被称为超级软盘(SFD)格式化,
用于软盘和可移动磁盘。
参数:au
指定每簇中以字节为单位的分配单元大小。
数值必须是0或从512到32K之间2的幂。
当指定0时,簇大小取决于卷大小。
我建议把
res = f_mkfs("", FM_FAT32, 0, work, sizeof(work));
改为
res = f_mkfs("", FM_FAT32, 512, work, sizeof(work));
试试,看是不是这个导致的。
举报