这个命令和nand read一样, 只是方向是反的, 是把ram的值写到 nand flash中, 但是这个写只能将1改为0, 不能将0写成1. 这个command会自动skipping bad blocks。
nand erase [clean] [off size]
在擦之前会先check是不是坏块,如果是坏块,就不能做擦的动作了。
DM365?:>nand dump 1cc000 10
Page 001cc000 dump:
68 73 71 73 12 05 00 00 87 04 08 78 19 00 40 02
…………
df 88 5b 80 bb 11 32 11 6e e7 77 5a 3d b9 c8 bf
OOB:
ff ff ff ff ff ff ff 45
ed cc 3a e0 8e 52 f9 ad
DM365?:>nand erase 1cc000 100
NAND erase: device 0 offset 0x1cc000,size 0x100
Warning: Erase size 0x00000100 smaller than one erase block 0x00004000
Erasing 0x00004000 instead
Erasing at 0x1cc000 -- 100% complete.
OK
DM365?:>nand dump 1cc000 10
Page 001cc000 dump:
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
…………
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
OOB:
ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff
DM365?:>mw 86000000 00000000
DM365?:>mw 86000004 00000000
DM365?:>mw 86000008 00000000
DM365?:>mw 8600000c 00000000
DM365?:>md 86000000
86000000: 00000000 00000000 00000000 00000000 ................
DM365?:>nand write.oob 86000000 1cc000 10
NAND write: device 0 offset 0x1cc000,size 0x10
16 bytes written: OK
DM365?:>nand dump 1cc000 10
Page 001cc000 dump:
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
…………
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
OOB:
00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00
Warning: Erase size 0x00000100 smaller than one erase block 0x00004000
Erasing 0x00004000 instead
Skipping bad block at 0x001cc000
OK
不常用的命令
这些命令都是测试时使用的,正常是不会使用到的。
"nand scrub - really clean NAND erasing bad blocks (UNSAFE)n" "nand markbad off - mark bad block at offset (UNSAFE)n" "nand biterr off - make a bit error at offset (UNSAFE)n" "nand lock [tight] [status]n" " bring nand to lock state or display locked pagesn" "nand unlock [offset] [size] - unlock sectionn");