一、环境:
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把两个文件比较一下。