本帖最后由 江枫三号楼 于 2018-1-9 11:11 编辑
原子哥429的写FTL_WriteSectors函数源码,有以下几点疑惑
1:程序中扇区和sector,和page是一个概念吗?
看芯片手册,芯片分为plane,block,page三层,并不存在sector这个概念。
2:第250行,假如待写入的sector不全是0xff的时候,为什么要写到另一个block中,而不是先擦除现在的这个block后,在写入呢?
3:查找与给定块在同一个plane内的未使用的块的函数,第123行的if判断,应该是永远都成立的吧?为什么还要加这个语句而不是直接写呢?
2:不是0XFF的时候,意思是这个块不是个好块,不能用,所以重新找另一个块。
3:该函数第一句定义static u32 curblock=0XFFFFFFFF;,这里的static是说只有第一次执行这个函数的时候,curblock才等于0XFFFFFFFF,静态变量的问题
我水平也不高,如果有不对的地方,请各位大神指正,勿喷
因为如果不全是0XFF,则不能直接写入,必须先擦除,擦除之前,必须把数据读出来,然后重新写入,不能直接擦。而NAND提供了 这种页拷贝带写入的操作,可以提高效率。
一周热门 更多>