进入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有几个坏块也属于正常现象。闪存很难避免坏块,所以嵌入式系统在启动时会把坏块的地址加到坏块表里,这样就不会读写坏块的地址,这是系统本身已经考虑到的问题,而且坏块会随着频繁读写在使用过程中产生,避免不了的。

最后修改:2021 年 01 月 15 日
如果觉得我的文章对你有用,请随意赞赏