关于基于NAND Flash建立FATFS文件系统获得有效块个数的问题

2019-07-21 06:22发布

利用正点原子代码,基于NAND Flash建立FATFS文件系统,发现建立逻辑表时,检查的总块数和好块数量比较多,但是有效块数量却很少。单步调试看到总块数4096,好块4094,有效块只有530块,而且是前530块。后面块在逻辑表中值都为0XFFFF了,谁知道这是什么原因?内存的问题吗?

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
fskofcpu
1楼-- · 2019-07-21 08:19
正点原子 发表于 2018-11-20 02:17
全片擦除NAND,再重新format试试

找到问题了,是因为其中定义参数为16位溢出了导致的错误,在FTL_Format函数中计算得到goodblock=93%*好块时因为溢出得到的值为530块,到后面循环查询有效块到530就跳出了。
fskofcpu
2楼-- · 2019-07-21 10:04
 精彩回答 2  元偷偷看……
正点原子
3楼-- · 2019-07-21 13:10
全片擦除NAND,再重新format试试
flybit
4楼-- · 2019-07-21 18:47
正点原子 发表于 2018-11-20 02:17
全片擦除NAND,再重新format试试

Hi ,原子哥。对于你们 FTL的代码和教程,我有个疑惑,当FATFS 重复写同一个sector时,那这个sector对应nandflash page里面原先的数据如何处理?是直接进行覆盖吗?需不需要对比下原有数据和重复写入的数据,然后进行合并后写入数据?

我在调试时发现FATFS会重复写一个sector。

一周热门 更多>