EvanXU 发表于 2023-7-11 09:16:11

请教Fatfs中磁盘格式化时为什么要求扇区数量必须大于128

最近项目中使用fatfs0.14,使用MCU内部flash,管理几个小文件,分配了50个扇区,每个扇区2K,总计100KByte空间,在执行f_mkfs函数时,每次都会返回FR_DISK_ERR( A hard error occurred in the low level disk I/O layer低级磁盘I/O层发生硬错误),DEBUG发现每次都会在f_mkfs函数的这一行跳出,
if (disk_ioctl(pdrv, GET_SECTOR_COUNT, &n_vol) != RES_OK || n_vol < 128)
                        return FR_DISK_ERR;
这行意思是获取磁盘扇区数量,而我的数量是50,50<128,因此返回了错误代码,请问有了解文件系统内部机制的老师吗,为什么磁盘扇区数量一定要大于128呢?那做个20k的U盘岂不是不可能了?

Himem 发表于 2023-7-11 11:10:11

本帖最后由 Himem 于 2023-7-11 11:11 编辑

原则上fat12最小7扇区

但是mcu上这么搞fatfs优势是什么

我选择flashdb的blob对象

EvanXU 发表于 2023-7-11 11:38:02

Himem 发表于 2023-7-11 11:10
原则上fat12最小7扇区

但是mcu上这么搞fatfs优势是什么
(引用自2楼)

主要是方便和PC交互,PC端查看修改配置文件方便一些,

Himem 发表于 2023-7-11 12:25:00

本帖最后由 Himem 于 2023-7-11 13:11 编辑

EvanXU 发表于 2023-7-11 11:38
主要是方便和PC交互,PC端查看修改配置文件方便一些,
(引用自3楼)

模拟U盘吗,手滑格式化那不就寄了

可以考虑USB-MTP,另外一端不关心文件系统

EvanXU 发表于 2023-7-11 16:51:12

欢迎各位老师顶一下啊
页: [1]
查看完整版本: 请教Fatfs中磁盘格式化时为什么要求扇区数量必须大于128