本帖最后由 can123dao 于 2015-1-27 16:32 编辑
airwill 发表于 2015-1-26 21:13
NAND 上保存数据, 要想可靠地保存数据, 不管有没有文件系统, 坏块管理自然的必要的
至于擦写均衡的算法,由 ...
坏块管理是一定要的。
在开始初始化时,通过读各个块的标志Byte,然后创建一个坏块表,在写的时候,如果碰到要写的地址在坏块内,就将要写的地址增加到下一个好块去。
page++;
if(page==64)
{
do
{
block++;
status=readblockindex();
}
while(status)
}
大概就是这样?
这应该写到“媒介多扇区写接口”diskio_wirte()里,还是NAND_WRITE()里?
这就是所谓的静态的坏块管理。如果要做得更好,就要在每次数据操作的时候都去读标志,以便及时更新坏块表是不?在使用过程中产生的新坏块,是怎么判断的? |