fatfs使用疑问,求使用过的朋友看下

2019-12-20 21:41发布

背景:
MCU:STM32F407IGH6
存储器型号:SST38VF6401 8M字节 NorFlash   FSMC接口
开发环境:MDK
Fatfs版本:R0.13A 官网最新版本

问题描述:因项目需要,需要移植一个文件系统,初步选定fatfs。在查看fatfs的配置文件ffconf.h时,看到有两个宏 FF_MIN_SS 和 FF_MAX_SS,这两个宏是配置扇区大小。问题来了,SST38VF6401一个扇区有8192字节,如果配置为8192,系统编译会出错,定位到ff.c中发现系统最大支持4096,可如果配置为4906,那么该falsh的底层擦除操作又是以扇区为单位进行的,这样岂不是造成空间浪费,不合理?我看到网上用W25Q128FV比较多,该芯片一个扇区为4096字节,所以配置上没什么疑问。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
10条回答
cloudboy
1楼-- · 2019-12-22 00:46
如果是实际项目的话,感觉NorFlash上面使用FATFS还是很伤Flash的,还是要考虑磨损平衡,不然容易挂
lxgree2015
2楼-- · 2019-12-22 04:30
 精彩回答 2  元偷偷看……
lxgree2015
3楼-- · 2019-12-22 07:31
按照楼上朋友的提示,通过设置缓冲区办法,现在已移植成功。可以创建文件和写、读取都没问题。但是利用f_getfree获取falsh剩余空间时发现,格式化之后竟然只有一半的容量可以使用,这太奇怪了。
lxgree2015
4楼-- · 2019-12-22 12:32
刚跟踪进fat统计空闲的代码,发现当格式化为fat16格式时,它会统计所有扇区中的数据,如果数据都是0则代表该扇区是空闲的。于是我先将flash全部写为0,然后再格式化、挂载、统计。结果发现fat占用了80个扇区,可用的扇区有16224个,空闲率99%。这是为什么?

一周热门 更多>