我使用 nandtest 实用程序来测试闪存。经测试,闪存数据损坏。第一个闪存卡数据被此命令损坏:
nandtest /dev/mtd3
然后,我从 git 看到了 nandtest 的 C 资源,我发现这个调用应该对我有用:
nandtest -k /dev/mtd3
但是,闪存数据又被损坏了。这是 nandtest 调用的输出:
ECC corrections: 26
ECC failures : 696
Bad blocks : 0
BBT blocks : 0
00100000: reading...
1 bit(s) ECC corrected at 00100000
001a0000: reading...
1 bit(s) ECC corrected at 001a0000
00f40000: reading...
2 bit(s) ECC corrected at 00f40000
01d40000: reading...
1 bit(s) ECC corrected at 01d40000
02300000: reading...
ECC failed at 02300000
02ac0000: reading...
1 bit(s) ECC corrected at 02ac0000
03e60000: reading...
1 bit(s) ECC corrected at 03e60000
065a0000: reading...
1 bit(s) ECC corrected at 065a0000
06e60000: reading...
1 bit(s) ECC corrected at 06e60000
0b560000: reading...
1 bit(s) ECC corrected at 0b560000
0c040000: reading...
2 bit(s) ECC corrected at 0c040000
0cc40000: reading...
1 bit(s) ECC corrected at 0cc40000
0cd80000: reading...
1 bit(s) ECC corrected at 0cd80000
0ce40000: reading...
1 bit(s) ECC corrected at 0ce40000
0da00000: reading...
1 bit(s) ECC corrected at 0da00000
0daa0000: reading...
1 bit(s) ECC corrected at 0daa0000
0f160000: reading...
ECC failed at 0f160000
0f5e0000: reading...
ECC failed at 0f5e0000
0f840000: reading...
ECC failed at 0f840000
14080000: reading...
1 bit(s) ECC corrected at 14080000
15460000: reading...
1 bit(s) ECC corrected at 15460000
15ae0000: reading...
1 bit(s) ECC corrected at 15ae0000
15e40000: reading...
1 bit(s) ECC corrected at 15e40000
161a0000: reading...
2 bit(s) ECC corrected at 161a0000
17740000: reading...
1 bit(s) ECC corrected at 17740000
17900000: reading...
1 bit(s) ECC corrected at 17900000
1a540000: reading...
1 bit(s) ECC corrected at 1a540000
1a860000: reading...
1 bit(s) ECC corrected at 1a860000
1aee0000: reading...
1 bit(s) ECC corrected at 1aee0000
1b4e0000: checking...
Finished pass 1 successfully
有谁知道,为什么调用 nandtest 实用程序会损坏我卡上的数据?有什么方法可以调用 nandtest 实用程序来确保没有损坏的数据?