关于FATFS
扇区数量
1 | DRESULT disk_read ( |
在disk_read函数里,LBA_t sector代表的是63个LBA的初始化表,数量也为63
其中LBA 0是512B的大小,是存储信息
其中LBA 1-62是保留区,里面的内容无效
第sector 63则是开始代码
在disk_ioctl函数里,设置的扇区数量不能低于(128 + 63)个,否则f_mkfs将会失败
在不同的fatfs中,最小的扇区数量也不同
如fatfs0.15中不能低于(128 + 63)个,而fatfs0.11中不能低于128个扇区
f_mkfs()格式化扇区
FATFS无法选择格式化的类型,只能由卷的参数决定
根据Microsoft发布的FAT规范,除exFAT之外的FAT子类型FAT12/FAT16/FAT32仅由卷上的集群数量决定,而不是其他。
因此,所创建卷的FAT子类型取决于卷大小和集群大小。
如果由参数指定的FAT类型和簇大小的组合对卷大小无效,则该函数将通过FR_MKFS_ABORTED失败。
在fatfs0.15中当低于(128+63)个扇区时,f_mkfs会返回14
在fatfs0.11中当低于128个扇区时,f_mkfs会返回-1
两个版本的fatfs中stm32f103zet6初始化均为FAT12
如何查看初始化为什么类型
进入f_mkfs()内部
使用CTRL + F搜寻下面的代码赋值式,再串口输出可以看到初始化为什么状态
1 sys =