linux nand 页大小,Linux MTD下获取Nand flash各个参数的过程的详细解析

本文详细介绍了Linux MTD中如何获取Nand Flash的型号及参数,包括术语解释如Program、Datasheet、Erasize、Writesize等。通过nand_get_flash_type函数解析,揭示了如何确定页大小、块大小和硬件特性,并提到Nand Flash的数据结构和操作,如Page Register、Chip和Plane的概念。此外,还讨论了坏块标记的位置和检测方法。

下面是Linux MTD中,获取nand

flash型号,各个参数,以及硬件特性的函数,其实也就是

nand_get_flash_type,下面对其详细解析:

【看此文之前,一些有必要先解释的术语】

1.Program(编程):此处的编程,不是写软件,写代码,而是对于硬件来说的,可以理解为对硬件编程,只不过其工具是硬件内部的逻辑,而不是你用的软件。对Nand

Flash的编程,本质上就是实现写操作,将数据写到Nand

Flash里面去,所以对于nand

flash,可以简单的理解为

program编程=write写(数据)。

2.Datasheet(数据手册):这个词,本来没啥好说的,接触多了,自然就知道了。但是对于和我类似,最开始接触的时候,就是没搞懂这个词的具体含义。其中文翻译,一般称作,数据手册,意思就是,一个关于描述硬件各个硬件特性,参数以及/或者如何操作,如何使用的文档。

3.Erasesize / Writesize:这个是Linux

MTD中,关于块大小和页大小的别名,第一次见到的时候,把我搞糊涂了,后来才慢慢明白的。因为,nand 操作的写基本单位页,所以,writesize,对应的就是pagesize,页大小。而擦除操作的基本单位是blocksize,块大小,所以也叫它erasesize。在此简单提一下这几个名词,方便和我遇到类似问题的朋友。

4.Spare Area / Redundant

Area / OOB:nand

flash中每一页对应一块区域,用于存放校验的ECC数据和其他一些信息,比如上层文件系统放的和自己文件系统相关的数据。这个区域,在Linux

MTD相关系统中,被称作oob(out of

band),可以翻译为带外,也就是nand

flash的一个页,可以称作一个band,band之外,对应的就是指那个多出来的,特殊的区域了。而nand

flash的datasheet中,一般成为spare

area,可译为空闲区域,另外,在ID的含义解释中也叫做redundant

area,可译为冗余区域,归根结底,都是一个含义。不要被搞糊涂了就好。

5.Page Register(页寄存器):nand

flash硬件中的一块地方,名字叫做register,实际就是一个数据缓存,一个buffer,用于存放那些从flash读出来或者将要写入到flash中的。其实叫做页缓存,更合适,更容易明白其含义。此页寄存器的大小=页大小+

oob 大小,即pagesize+oob,对于常见的页是2KB的,此页寄存器就是2KB+

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值