一、環境:
Ubuntu 16.02
nor flash型號: spi nor flash S25FL256S ,Sector Size = 64 kbytes, total size = 256M BIT = 32M Bytes
一、備份:
dd if=/dev/mtd0 of=xxx.bin bs=1K
二、還原:
1、先擦除,必須先擦,不然寫入不對(寫操作只能把高電平比特位變成低電平比特位,而無法從低變高,所以需要擦,擦的操作就是把全部比特位弄成高電平)
flash_erase /dev/mtd0 0 128
命令參數解釋: /dev/mtd0: 要操作的對象
0: 偏移
128: 大小(單位block),即多少個塊
2、再寫入:
dd if=xxx.bin of=/dev/mtd0 bs=1K
三、讀出來看看是否成功:
1、你可以cat /dev/mtd0 > 1.txt ; cat xxx.bin > 2.txt;然后用vi看,但是這是二進制文件,你看到的將是亂碼。
2、借助hexdump工具,將二進制轉成16進制觀看,還在行首加了地址:
hexdump /dev/mtd0 > 1.txt; hexdump xxx.bin > 2.txt;這下再用vi看你就能看到了,更高效的方法是裝個beyondcompare把兩個文件比較一下。