遇到Nand Flash坏块怎么处理?

转载:https://blog.csdn.net/MENGHUANBEIKE/article/details/87182824

Nand Flash存储器是Flash存储器的一种,为固态大容量内存的实现提供了廉价有效的解决方案。NAND存储器具有容量较大,改写速度快等优点,适用于大量数据的存储,如嵌入式产品中包括数码相机、记忆卡、体积小巧的U盘等。

1989年,东芝公司发表了Nand Flash结构,强调降低每比特的成本,更高的性能,并且像磁盘一样可以通过接口轻松升级。经过十几年的发展,NAND应用越来越广泛,但是大多数工程师却仍然不知道关于NAND应用的一些难点:分区、ECC纠错、坏块管理等。只有真正了解NAND特性的工程师,才能在应用上得心应手,不会被Nand Flash所绊倒。

分区

定义分区的实质是定义数据会如何写入NAND Flash,不同内容的数据写到对应的地址中。一般用户会有多个区,比如boot、kernel、fs、user等分区。

分区的描述:分区的地址范围(起始块、结束块),镜像文件大小(Image Size)。

分区的数据存储:镜像文件是从分区的起始块开始存放,如果分区中有坏块,将使用坏块处理策略替换坏块,直到镜像文件结束,如果分区中不够好块存放镜像文件,则烧录失败。

如下图是跳过坏块的镜像文件分区烧写示意图:

 

ECC(错误更正)算法

ECC 存在于NAND 每页的备用区(Spare Area)中,它允许外部系统发现主区的数据是否有误。在大多数情况下,ECC 算法可以纠正误码,NandFlash在使用中也可能会出现坏块,所以ECC是非常有必要的。

不同的用户会可能会使用不同的ECC算法,一般来说ECC算法由处理器供应商提供,如果编程器软件中无这个ECC算法,则需要用户提供ECC算法源代码。

如果用户不使用调入文件,而是使用读母片的方式烧录,并且无动态数据,则可以不考虑ECC算法,因为母片中的备用区已计算好ECC,直接将母片的备用区拷贝至其他芯片即可。

坏块管理

坏块处理策略定义了在遇到坏块时算法应该如何处理,基本的坏块处理策略有:跳过坏块、替换表(预留块区Reserve BlockArea,RBA)等等,下面分别对几种坏块处理方案进行说明。

1、硬拷贝

硬拷贝其实就是遇到坏块什么都不处理,不管好块还是坏块直接烧写按顺序烧写数据,即使校验数据不一致也不报错,这是最简单、直接的处理方法,但是只能适用于数据不需管理的方案;

 

2、跳过坏块

跳过坏块就是烧录数据时,遇到坏块即跳过此坏块,将数据顺延烧到下一个好块,这样可以保证所有的数据都能烧写到NAND存储空间中,但是并不知道数据究竟烧到了哪一位;

3、替换表

此方法是将NAND存储空间中预留出一些块作为保留块,当遇到坏块时,在预留的保留块中选一个块来替换坏块,将原来写到坏块的数据写到替换块中;

4、BBT(Bad block table)

此方法核心是跳过坏块,但是跳过后需要在NAND闪存指定位置写入一个坏块表(Bad block table),下图是BBT的结构图。

NAND应用需要注意的点大致整理如上,实际使用中会有灵活的应用方案,需要熟知NAND特性、编程器原理的工程师才能设计出合适的方案加以运用。

  • 1
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
FATFS是一个用于嵌入式系统中的文件系统,而NAND Flash是一种闪存存储器。在使用FATFS和NAND Flash组合的过程中,可能会遇到坏块的问题。 NAND Flash是一种基于电子存储的闪存技术,与传统的磁盘驱动器不同,它是以页(Page)为单位进行读写操作的。而坏块则是由于长时间使用或其他因素导致NAND Flash中存在某些页的数据读写错误或擦除失败的现象。 当FATFS在使用NAND Flash的过程中遇到坏块时,可能会导致文件读写失败、数据丢失或无法正常访问文件等问题。因此,我们需要对坏块进行管理和处理。 针对NAND Flash坏块处理方法有以下几种: 1. 坏块检测与标记:对于新的NAND Flash,我们可以在初始化时进行坏块检测和标记,将坏块的信息存储到特定的位置,以便在后续的文件访问中进行屏蔽。 2. 坏块替换与映射:当文件系统进行数据写入时,如果发现目标页是坏块,则会对该页进行替换,将数据写入到一个正常的页中,并在一个特定的映射表中记录其对应关系。 3. 坏块回收与擦除:当NAND Flash中存在大量坏块时,可以进行坏块回收与擦除操作。通过特定的算法,将有效数据移到其他可用的页中,并进行擦除操作以恢复新的可用空间。 综上所述,FATFS和NAND Flash组合使用时可能会遇到坏块的问题。我们需要采取相应的方法来进行坏块检测、标记、映射、回收和擦除等处理,以确保文件系统的稳定性和可靠性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值