加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

mini2440 tq2440 vivi uboot 去除nandflash坏块

发布时间:2020-12-15 07:14:42 所属栏目:百科 来源:网络整理
导读:我们在学习嵌入式的工程中,最多的方式莫过于买一家公司的开发板。 跟着它们的教程以及网上的相关博客进行实验学习。 随着烧写次数的增加,我们开发板的nand ?flash中就会出现或多或少的坏块,也就是bad block。 坏块少对于你的系统运行没有任何影响,顶多是

我们在学习嵌入式的工程中,最多的方式莫过于买一家公司的开发板。

跟着它们的教程以及网上的相关博客进行实验学习。

随着烧写次数的增加,我们开发板的nand ?flash中就会出现或多或少的坏块,也就是bad block。

坏块少对于你的系统运行没有任何影响,顶多是影响心情罢了。但是如果坏块太多的话,就可能影响你

根文件系统的正常挂载启动。

先来说说bad block是怎么来的吧。

其实跟硬盘一样,nand flash 也会存在坏的扇区,需要纠错码(EEC)来维持数据。nand器件

中的坏块是随机分布的,几乎每个nand都会存在坏块。以前也曾经有过消除坏块的努力,但是发现

成品率太低,代价太高。根本不划算。因此,nand器件需要对介质进行扫描以发现坏块,并标记为

不可用。也就是我们所看到的 bad ?block

软件通过扫描块可以确定区块的好坏。但是有些时候,nand 器件产生的坏块并不是真的物理器件上的损坏。

仅仅是由于电源电压不稳,外界电磁干扰,连线接触不好,多次烧写等等的 原因,导致nand 器件中的某些块的数据

发生了改变,那么该块就被标记为了坏块。

消除这样的坏块也是有一定方法的。

在uboot 中

存在这样一个命令

nand scrub的命令,强制性的把坏块标志去除

在vivi

中需要重新分区

FriendlyARM>??????????part show?
mtdpart info. (4 partitions)?
name??????????????offset????????size????????flag?
------------------------------------------------?
vivi????????????: 0x00000000????0x00040000???? 0 256k?
param?????????? : 0x00020000????0x00020000???? 0 ? 128k?
kernel??????????: 0x00060000????0x00500000???? 0 ? ?4M+640K?
root????????????: 0x00560000????0x3fa80000???? 0 ? 59M


后面的大小是我自己算出来的,让大家看的直观一点。

计算方法,就是将上面的数据转换成十进制的然后除以1024

得到的就是就是K,在除以1024得到的就是M

接着执行重新分区命令

bon part 0 384k 4736k 59M ?

这样就可以把那些假的坏块去掉了。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读