• / 3
  • 下载费用:10 金币  

NAND坏块的处理.doc

关 键 词:
NAND坏块的处理.doc
资源描述:
自己从第一次接触 Nandflash 到现在也有将近两年的时间了,从刚开始的无从下手到现在的略知一二。回过头来看自己的学习历程,积累了很多无论你如何 Google 和泡坛子都学习不到的经验。现在拿出来分享给大伙,算是对集体智慧的一种回馈吧。首先说一下 Nandflash 本身的一些缺陷和优势:优势:1,速度快。这个貌似没啥可说的,对于现在动辄上 G 的芯片容量,速度是必要的基础。2,便宜。虽然赶不上硬盘,但是在嵌入式设备里面绝对是性价比杠杠的。3,没了。除了傻快傻便宜,真没嘛优势。劣势:1,可靠性不高。这里所说的可靠性分为两个方面,第一是芯片出厂的时候就伴随着一定概率的缺陷。你们懂得,我说的是坏块。这个缺陷会令很多初入此行的孩纸们丢掉工作,后面会详细说。第二个是芯片使用过程中的不稳定,当然还是在说会产生坏块的问题。。。2,不能片上运行程序。由于无法直接寻址,所以就不可能做到片上运行程序。这是很多网络上文章经常提到的一点,实际上对生活影响不大。因为现在内存便宜的很,一般的家用嵌入式设备对内存没有这么苛刻的要求。3,芯片操作复杂。不同于 norflash,nandflash 没有这么容易操作。我说的操作主要是指不通过驱动程序直接靠编程完成对于 flash 的存取。但是我还是要说上面的话:实际上对于生活影响不大。因为目前大部分的民用嵌入式设备都有操作系统,一般为 linux。linux 为 flash 设备提供了 mtd 驱动层,我们对于 flash的操作都被抽象成了统一的接口甚至是设备符号,无需关心底层实现。下面来说说实际使用时候的一些心得体会:一,什么样 nandflash 分区大小是合理的?考虑到业务的需要,一般我们不会将整个芯片完全当作一个整体来使用。就如同你使用电脑的时候不会只给硬盘分一个区一样。主要是为了防止对分区进行改动或者重新烧录的时候会丢失全部的数据。而如何分区才是合理的呢?我归纳主要有以下几点需要注意:1,任意一个分区的大小不要超过操作系统所能操作内存的 2/3。比如你有 128M 内存,linux 可以支配其中的 96M,那请不要将 nandflash 的分区设计为大于 64M。这样的考虑主要是因为,如果未来你需要升级这个分区,尤其是通过网络升级这个分区。如果你的升级方式不是增量式的,那么你必须有一段与 flash 分区大小一致内存空间用来存放镜像。这个时候假设你的flash 分区为 96M,那么你将不可能完成更新。因为你没有足够的内存空间。除非实时解压缩实时烧录,风险很高。2,分区一定要给坏块留出足够的空间。我最早接触到 nandflash 的时候就犯了这个错误, uboot 大小200k,我给它划分的空间为 256k,结果遭遇坏块,上下移动都没有空间,非常杯具。拿目前嵌入式系统比较常用的 128M nandflash,他没产生一个坏块,空间损失 128k。也就是说,如果你设计分区大小为 512k,遭遇两个坏块,实际空间只有 256k 了。通过大量设备生产后所统计出来的结果,一般 nandflash 出厂的坏块基本不会超过 4 块。位置不固定。所以我的推荐是,如果你的某些分区容量较小,比如设计使用容量为 512k,请划分该分区为 1M 以避免坏块。如果分区容量较大,比如 60M,请划分 64M。这样比较合理。3,如果被划分的分区将会使用文件系统,比如 Yaffs 之类,请不要划分的过小。比如你有一个分区用来存储配置文件,你认为只需要 3M 就可以解决问题。但实际上你会发现,这个分区只要一 mount 上,就已经被占用了 2M,因为文件系统自己会规划出来一部分区域。你自己能操作的空间只剩下 1M 了,与设计目标产生巨大的冲突。请适当调整大小,并同时参考 2 号建议。二,如何对 nandflash 分区进行合理的规划?这里所说的规划指 flash 要如何进行逻辑上的区分,比如要分几个区等。这个问题说起来比较复杂,因为不同的应用有不同的设计目标。有些提供可能简单的分两个区甚至不分区就能解决问题,而有些可能会很复杂。这里我拿我所经手的项目举例子:项目为 iptv 机顶盒,使用 linux 操作系统,使用 uboot 作为引导程序。我的分区如下:1M,uboot1M,uboot-config3M,kernel32M,rootfs16M,backup-rootfs64M,apps5M,configuboot 如果升级失败,将会带来灾难性的后果。但是有些 uboot 启动的参数需要被动态的更改,所以必须要把 uboot 存储参数的部分与 uboot 分离。所以 uboot 被分为两个区分别存储。kernel 无需多说,由于附带的驱动较多 3M 是一个合理的数值。rootfs 指 linux 所依赖的根文件系统。包括 bus
展开阅读全文
  微传网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
0条评论

还可以输入200字符

暂无评论,赶快抢占沙发吧。

关于本文
本文标题:NAND坏块的处理.doc
链接地址:https://www.weizhuannet.com/p-9852717.html
微传网是一个办公文档、学习资料下载的在线文档分享平台!

微传网博客

网站资源均来自网络,如有侵权,请联系客服删除!

 网站客服QQ:80879498  会员QQ群:727456886

copyright@ 2018-2028 微传网络工作室版权所有

     经营许可证编号:冀ICP备18006529号-1 ,公安局备案号:13028102000124

收起
展开