求助:执行 devcp 前忘记执行 mtd_erase 结果出现了坏块,怎么办?
求助:执行 devcp 前忘记执行 mtd_erase 结果出现了坏块,怎么办? 谢谢现在每次执行 mtd_erase 都会出现这个情况:
PMON> mtd_erase /dev/mtd1
mtd_erase working:
0x03100000nand_erase: attempt to erase a bad block at page 0x00006200
0x03f60000nand_erase: attempt to erase a bad block at page 0x00007ec0
0x07200000
mtd_erase work done!
PMON> 本帖最后由 HexFire 于 2016-1-7 18:44 编辑
操作记录:
PMON> ifup syn0
Bus Mode Reg after reset: 0x00020101
Version = 0x1237
MacAddr = 0x0 0x55 0x7b 0xb5 0x7d 0xf7
=====>enter synopGMAC_mac_init:1000
=====>full duplex
=====>100M
PMON> ifaddr syn0 192.168.99.161
bootp=8000b874
PMON> ping 192.168.99.209
PING 192.168.99.209 (192.168.99.209): 56 data bytes
64 bytes from 192.168.99.209: icmp_seq=0 ttl=64 time=0.982 ms
64 bytes from 192.168.99.209: icmp_seq=1 ttl=64 time=0.615 ms
--- 192.168.99.209 ping statistics ---
2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max = 0.615/0.790/0.982 ms
PMON> mtd_erase /dev/mtd1
mtd_erase working:
0x03100000nand_erase: attempt to erase a bad block at page 0x00006200
0x03f60000nand_erase: attempt to erase a bad block at page 0x00007ec0
0x07200000
mtd_erase work done!
PMON> devcp tftp://192.168.99.209/rootfs.yaffs2img /dev/mtd1 yaf nw
37982208
Skip bad block 0x03100000
53391360
Skip bad block 0x03f60000
74547264PMON> set append 'root=/dev/mtdblock1 console=ttyS2,115200 rootfstype=yaffs2'PMON> reboot 智龙2.0可以重新刷PMON和debian, xieyug2012 发表于 2016-1-8 09:04
智龙2.0可以重新刷PMON和debian,
我的意思是智龙的 NAND flash 因为操作不当出现了坏块, 查询了下资料, 了解到这种坏块是由于在写入 yaffs2 文件系统前, 没有执行 mtd_erase 导致的, 也就说并不是真的坏了, 而是由于误操作被系统标识为坏块了, 应该是可以恢复的.
不过暂时还没搞清楚如何用命令恢复, 尤其是目前智龙把闪存分了3个区域, MTD0存放Linux 内核, MTD1存放 rootfs, MTD2 是用户区域, 我现在只是 MTD1 出现了坏块, 希望能在不影响其他两个分区的情况下恢复 MTD1 中的坏块.
这方面的知识了解得不多, 正在慢慢查 HexFire 发表于 2016-1-8 15:57
我的意思是智龙的 NAND flash 因为操作不当出现了坏块, 查询了下资料, 了解到这种坏块是由于在写入 yaffs ...
那好吧,我就不添乱了。:lol 理论上说flash随着写次数的增加坏块会逐渐增多,yaffs文件系统会平均每一个存储块被写的机会,另外坏块会被标记出来以便写数据的时候绕过它。 http://git.oschina.net/openloongson/smart_loong_docs/tree/master/,用这里的文件系统试试,也许是文件本身错了
页:
[1]