关于NAND flash程序的几个疑问,求大神指导

2019-07-20 10:08发布

本帖最后由 江枫三号楼 于 2018-1-9 11:11 编辑

1234.png
原子哥429的写FTL_WriteSectors函数源码,有以下几点疑惑
1:程序中扇区和sector,和page是一个概念吗?
看芯片手册,芯片分为plane,block,page三层,并不存在sector这个概念。
2:第250行,假如待写入的sector不全是0xff的时候,为什么要写到另一个block中,而不是先擦除现在的这个block后,在写入呢?
1245.png
3:查找与给定块在同一个plane内的未使用的块的函数,第123行的if判断,应该是永远都成立的吧?为什么还要加这个语句而不是直接写呢?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
wangmingwei093
1楼-- · 2019-07-20 10:27
我来回答行不,1:sector和page不是一个概念,你看一下这节课里讲的FTL小节(我这里没细看,一直没勇气好好看这部分),sector是ECC以多少个字节为处理的。
2:不是0XFF的时候,意思是这个块不是个好块,不能用,所以重新找另一个块。
3:该函数第一句定义static u32 curblock=0XFFFFFFFF;,这里的static是说只有第一次执行这个函数的时候,curblock才等于0XFFFFFFFF,静态变量的问题
我水平也不高,如果有不对的地方,请各位大神指正,勿喷
江枫三号楼
2楼-- · 2019-07-20 13:52
 精彩回答 2  元偷偷看……
正点原子
3楼-- · 2019-07-20 14:09
江枫三号楼 发表于 2018-1-9 17:15
当然可以啦,你能帮忙回复,感激之至。

1:又看过几遍程序,懂了,是在page下根据MCC有人为分成几个se ...

因为如果不全是0XFF,则不能直接写入,必须先擦除,擦除之前,必须把数据读出来,然后重新写入,不能直接擦。而NAND提供了 这种页拷贝带写入的操作,可以提高效率。

一周热门 更多>