9.3.1坏块检查
(1)Flash使用之前一定要先统一擦除(擦除的单元是块)。Flash类设备擦除后里边全是1,所以擦干净之后读出来的值是0xFF
(2)检查坏块的思路就是:先擦除,然后将整个块读出来,依次检测各字节是否为0xFF,如果是则表明不是坏块,如果不是则表明是坏块。
9.3.2页写(program)操作
(1)写之前确保这个页是被擦干净的。如果不是擦干净的(而是脏的、用过的)页,写进去的值就是错的,不是你想要的结果。
(2)写操作(wright)在Flash的操作中就叫编程(program)
(3)SoC写Flash时通过命令线、IO线依次发送写命令、写页地址、写数据等进入NandFlash。
(4)写的过程:SoC通过Nand控制器和Nand芯片完成顺序对接,然后按照时序要求将一页数据发给Nand芯片内部的接口电路。接口电路先接收数据到自己的缓冲区,然后再集中写入Nand芯片的存储区域中。Nand接口电路将一页数据从缓冲区中写入Nand存储系统需要一定的时间,这段时间Nand芯片不能再响应SoC发过来的其他命令,所以SoC要等待Nand接口电路忙完。等待方法是SoC不断读取状态寄存器(这个状态寄存器有2种情况:一种是SoC的Nand控制器自带的,另一种是SoC通过发命令得到命令响应得到