进入shell
输入命令
dmesg |grep "bad block"
或者使用
dmesg | grep nand
admin@RT-AC86U:/jffs/.koolshare# dmesg |grep "bad block"
nand_read_bbt: bad block at 0x000000a60000
admin@RT-AC86U:/jffs/.koolshare# dmesg | grep nand
nand_read_bbt: bad block at 0x000000a60000
Creating 11 MTD partitions on "brcmnand.0":
bcm63xx_nand ff801800.nand: timeout waiting for command 0x1
bcm63xx_nand ff801800.nand: intfc status f80000e0
返回的内容中
bad block at 0x000000a60000
就是坏块的位置。
如果没有坏块,则不会有相应的bak block信息返回。不过一般NAND Flash有几个坏块也属于正常现象。闪存很难避免坏块,所以嵌入式系统在启动时会把坏块的地址加到坏块表里,这样就不会读写坏块的地址,这是系统本身已经考虑到的问题,而且坏块会随着频繁读写在使用过程中产生,避免不了的。