NAND FLASH特性说明
1.NAND FLASH 的特殊性。
1)存在坏块。由于NAND生产工艺的原因,出厂芯片中会随机出现坏块。坏块在出厂时已经被初始化,并在特殊区域中标记为不可用,在使用过程中如果出现坏块,也需要进行标记。
2) 易出现位反转。NAND FLASH更易出现位反转的现象,如果位反转出现在关键文件上,会导致系统挂机。所以在使用NAND FLASH的同时,建议使用ECC/EDC算法确保可靠性。
3) 存在Spare Area。正因为NAND FLASH有着上面的两项特殊的地方,Spare Area就扮演作存放坏块标志,ECC值以及芯片信息和文件信息的作用。
4) 多维的空间结构。NAND FLASH一般由block、page、Main Area、Spare Area等结构组成。所以在有的文件系统中就衍生出各种分区信息和扇区信息等。
2.NAND FLASH 烧录的复杂性。
1)处理坏块。由于NAND存在坏块,导致地址空间不是连续的。所以正确的处理坏块是保证NAND FLASH烧录后能够正常运行的关键。从大的方面来说,处理坏块常用的最有效的主要为两种方法:a.跳过;b.保留替代。也有部分客户为了使用方便,并没有把坏块处理的概念引入,直接在坏块上写过,这种方法虽然简单,但容易产生很多不稳定的因素。
2)计算ECC。ECC/EDC算法具有查错,纠错的功能,并且在NAND FLASH使用的大多数环境,需要带有ECC算法的。目前广泛使用的为Samsung的汉明码(Hamming code),分为512Byte和256W两种。还有功能更为强大的4-bit ECC 和Computer ECC。由于ECC算法比较多,每个算法个体又具有比较强的可变性(位组织,分段计算等),而且在Spare Area存放的位置也不能统一,所以无法做成统一的算法。
3)启动代码区检查(Boot Check)。在启动区的代码要求存放在NAND FLASH对应块中是没有坏块的,一旦坏块出现,程序在NAND 中启动就会失败。用户可以定制启动代码检查并报错功能。
4)定位烧录。NAND FLASH在配合CPU一起运行的过程中,一些代码或者文件是需要从一个确定的地址读入运行的。所以在烧录过程中,烧录文件为多个,或者由多个文件合成的烧录档案,需要进行分区并且定位烧录,这种方式我们称之为分区模式(Partition),用户可以结合其ECC, Boot Check 等功能,向我们公司定制。
5)非标准坏块标志。一些客户为其系统的保密性,公司内部技术的兼容性,将坏块标志放在非标准的位置,或者使用非0xFF作为好块标志并带有其他意义(如只读)。如有这样的情况,请给予说明并定制算法。
6)其他烧录确认标志和文件的分区信息。
NAND FLASH特性说明的更多相关文章
- NAND FLASH的容量、特性、市场和应用
NAND Flash的容量 一直到2006年,MLC芯片的容量每年都成倍数增长:由于NAND Flash的制程升级的挑战越来越大,所以NAND Flash之后的容量成倍增长所需要的时间也在不断增加 ...
- 痞子衡嵌入式:串行NAND Flash的两大特性导致其在i.MXRT FlexSPI下无法XiP
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是串行NAND Flash的两大特性导致其在i.MXRT FlexSPI下无法XiP. 在嵌入式世界里,当我们提起XiP设备(支持代码原地 ...
- u-boot移植总结(三)(转)S3C2440对Nand Flash操作和电路原理(基于K9F2G08U0A)
S3C2440对Nand Flash操作和电路原理(基于K9F2G08U0A) 转载自:http://www.cnblogs.com/idle_man/archive/2010/12/23/19153 ...
- WinCE NAND flash - FAL
http://blog.csdn.net/renpine/article/details/4572347 http://msdn.microsoft.com/en-US/library/ee48203 ...
- STM32学习笔记——FSMC 驱动大容量NAND FLASH [复制链接]
本文原创于观海听涛,原作者版权所有,转载请注明出处. 近几天开发项目需要用到STM32驱动NAND FLASH,但由于开发板例程以及固件库是用于小页(512B),我要用到的FLASH为1G bit的大 ...
- NAND FLASH 原理
NAND FLASH 原理 http://www.360doc.com/content/12/0522/21/21412_212888167.shtml 闪存保存数据的原理: 与DRAM以电容作为存储 ...
- 块设备驱动之NAND FLASH驱动程序
转载请注明出处:http://blog.csdn.net/ruoyunliufeng/article/details/25240909 一.框架总结 watermark/2/text/aHR0cDov ...
- 怎么看时序图--nand flash的读操作详解(转载)
出处:http://blog.chinaunix.net/uid-28852942-id-3992727.html这篇文章不是介绍 nand flash的物理结构和关于nand flash的一些基本知 ...
- NOR flash和NAND flash区别,RAM 和ROM区别
ROM和RAM指的都是半导体存储器,ROM是Read Only Memory的缩写,RAM是Random Access Memory的缩写.ROM在系统停止供电的时候仍然可以保持数据,而RAM通常都是 ...
随机推荐
- js——DOM操作(一)
DOM:Document Object Model 文档对象模型 文档:html页面 文档对象:页面中元素 文档对象模型:定义 为了能够让程序(js)去操作页面中的元素 DOM会把文档看作是一棵树 ...
- 跨域文件crossdomain.xml在weblogic上的部署
1.新建一个ROOT文件夹,把crossdomain.xml拷贝到这个文件夹下. 2.在ROOT文件夹下新建一个WEB-INF文件夹 3.在WEB-INF文件夹下建立一个weblogic.xml文件, ...
- 为什么getline()后要两次回车????(将输入的字符串按单词倒序输出)
#include<iostream>#include<string>#include<algorithm>using namespace std;int main( ...
- mfc分个窗口,设置分割条不可移动
最近要做一个项目,做界面时遇到了这个问题,找了好多资料,终于解决了,在此记录一下,希望对有需要的人有所帮助.好了,不多说了,具体的处理如下: 新建一个类CFixSplitterWnd继承CSplitt ...
- leetcode Maximum Depth of Binary Tree python
# Definition for a binary tree node. # class TreeNode(object): # def __init__(self, x): # self.val = ...
- Linux学习之head命令
head 与 tail 就像它的名字一样的浅显易懂,它是用来显示开头或结尾某个数量的文字区块,head 用来显示档案的开头至标准输出中,而 tail 想当然尔就是看档案的结尾. 1.命令格式: hea ...
- Spark 算子
0.parallelize 1.map 2.mapValues 3.flatMap 4.mapPartitions 5.mapPartitionsWithIndex 6.filter 7.reduce ...
- Android 调用系统通讯录
这个过程有三步:1)许可向你的应用程序的manifest中添加读取通讯录数据的许可 <uses-permission android:name="android.permission ...
- 学习zepto.js(原型方法)
学习zepto.js(原型方法)[1] 转载 新的一周,新的开始,今天来学习一下zepto里边的原型方法,就是通过$.进行调用的方法,也是可以通过$.fn进行扩展的方法: $.camelCase(): ...
- Flink资料(1)-- Flink基础概念(Basic Concept)
Flink基础概念 本文描述Flink的基础概念,翻译自https://ci.apache.org/projects/flink/flink-docs-release-1.0/concepts/con ...