NAND FLASH (2 读写操作)

 坏block 标示:  create invalid block table

   坏block标示在额外区域的 第六byte. 在坏block的第一或者第二page的第517byte(from512, 6th) 是non-FFh数据

然后建立一个 table 来记录所有坏block

扫描出坏block并标示以后就可以保证不对坏block进行读写.

方法:  从block address=0开始, 检查每个block的第一&第二page的 517address上是否是 FFH, 如果是, check next block.; 如果不是,create(or update ) invalid blocks table 然后check next block. 直到 the last block  .  end.

遇到坏block,会用芯片中另外一个地方的block来代替这个地址的block.但是为了提高内存空间的利用率, 读写操作出现ecc错误的时候不会产生block替换操作

方法:1 copy nth page 到另外一个block的 nth page中 2 copy1st-(n-1)th page 到另外一个block的 1st-(n-1)page中 3 在没有更新 invalid block table 前 不要删除坏block中意境写入的数据

 指针操作(*8)

命令 00h  是A区域(0-255bytes), 01h是B区域(256-511bytes),50h是C区域(512-527bytes), 其中 00h 50h可以保持,直到下一个地址指针命令出现,01h却只能生存于一个操作中.

注意: 1  当01H用过一次, 地址指针会自动回到A区域.

         2 00h 50h必须在80h之前writen

         3 要programB区域,必须就在80h指令前一个写入01h.( program 和writen 什么区别?)

哈 后面就要看图理解了, 今天写到这里.

 写的粗略了一点, 后面的过程要配合程序来看了, 所以nandflash读书笔记暂时停止.  等我再读读vivi, 遇到有新的部分再继续添加.

 

你可能感兴趣的:(NAND FLASH (2 读写操作))