搜索
bottom↓
回复: 2

fatfs 统计容量函数 f_getfree疑惑

[复制链接]

出0入0汤圆

发表于 2018-3-21 15:06:37 | 显示全部楼层 |阅读模式
CPU:STM32F407IGHT
FLASH:SST38VF6401
fatfs R0.13A 最新
开发环境:mdk

目前已经格式化成功,可以挂载、创建文件、读写等。
但是通过f_getfree函数测试容量,发现可用容量只有总容量的一半。跟踪f_getfree代码,发现代码如下(ff.c  L4663):

if(fs->fs_type == FS_FAT16)  //FAT16文件格式
{
        if(ld_word(fs->win + i) == 0) //数据为0x0000
        {
                nfree++; //空闲扇区数加1
        }
      
       i %= 512;
}

代码如上,可以看到其从第一个数据扇区到最后一个扇区,检测指定位置的数据是不是0,如果是0,空闲扇区数就增1。首先我不太明白这样是什么机制,不过按照它的这个处理流程,我将flash全片写为0,然后再调用该接口,发现总可用扇区数和空闲扇区数相等了。这什么情况?难道我拿到一个新存储芯片 ,首先要将其全部写0?写0也没啥问题,真正的问题是,SST38VF6401字编程典型时间是7us,按照8M字节来算,大概需要50多秒时间,这谁受得了???

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入362汤圆

发表于 2018-3-21 16:18:24 | 显示全部楼层
只把这一个位置写0不就行了... 你再看看他的mkfs怎么写的

出0入0汤圆

 楼主| 发表于 2018-3-22 08:17:10 | 显示全部楼层
tomzbj 发表于 2018-3-21 16:18
只把这一个位置写0不就行了... 你再看看他的mkfs怎么写的

问题找到了,是我的驱动有问题,修改后已Ok,多谢
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-6-17 22:49

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表