aah怎么读(aah怎么读)

来源:韦东山嵌入式专栏_ARM裸机增强Wiki教程作者:韦东山(本文字数:2682,阅读时长:4分钟)Nor Flash的连接线包括地址线、数据线、片选信号、读

来源:韦东山嵌入式专栏_ARM裸机增强Wiki教程

aah怎么读(aah怎么读)插图

作者:韦东山

(本文字数:2682,阅读时长:4分钟)

Nor Flash的连接线包括地址线、数据线、片选信号、读写信号等。Nor Flash的接口属于存储器接口。Nor Flash可以像内存一样读取,但不能像内存一样写入。需要做一些特殊操作才能写。读起来就像记忆一样简单。

flash示意图如下:

Flash简介

有两种常见的闪存类型:Nor闪存和NAND闪存。

Nor Flash是英特尔公司在1988年发明的,用来取代当时市场上占主导地位的EPROM和E2PROM。东芝公司在1989年发明的NAND Flash。两者之间的主要区别如下:

Nor Flash支持XIP,即代码可以直接在Nor Flash上执行,不需要复制到内存中。这是因为NorF lash的接口和RAM一模一样,可以随机访问任意地址的数据。Nor Flash读取的效率很高,但是擦除和写入的效率很低。另外Nor Flash的容量一般都比较小。闪存的擦写效率更高,NAND闪存容量更大。一般来说,Nor Flash用来存储程序,NAND Flash用来存储数据。基于NAND闪存的设备通常与Nor闪存配对来存储程序字。

闪存设备由擦除单元(也称为块)组成。当要写入一个块时,必须确保该块已经被擦除。Nor闪存的块大小为64kB和128kB,而NAND闪存的块大小为8kB和64kB。擦除/写入Nor闪存模块需要4秒,而擦除/写入NAND闪存模块只需2毫秒。Nor Flash的块大小太大,不仅增加了擦除时间,而且对于给定的写操作需要更多的擦除操作——尤其是小文件。比如一个文件只有IkB,但是为了保存,需要擦除大小为64 KB-128 KB的Nor Flash块。

Nor Flash的接口和RAM一模一样,可以任意访问任意地址的数据。而NAND Flash的接口只包含很少的I/O引脚,需要串行访问。一般来说,NAND以512字节进行闪存和写入。这使得Nor Flash适合运行程序,而NAND Flash更适合存储数据。

同样容量,NAND Flash更小。对于空要求严格的系统,NAND Flash可以节省更多空。市面上Nor Flash的容量通常是IMB~4MB(也有32MB Nor Flash),NAND Flash的容量是8MB~512MB。容量的差异也使得Nor Flash多用于存储程序,NAND Flash多用于存储数据。

对于闪存器件的可靠性,要考虑三点:位反转、坏块和可擦除次数。所有的Flash设备都会遇到位反转的问题:由于Flash固有的电学特性,在读写数据的过程中偶尔会出现一个或几个数据错误(这种概率很低),而NAND Flash的概率远高于Nor Flash。当关键代码和数据发生位倒置时,可能会导致系统崩溃。当只报告了位反转时,可以重新读取:如果确实发生了位反转,则必须采取相应的错误检测/恢复措施。NAND闪存中的位反转概率很高,因此建议使用EDC/ECC进行错误检测和恢复。NAND Flash上在使用前会有随机分布的坏块,扫描出坏块确保不被再次使用,否则产品会出现严重故障。NAND Flash的可擦除次数通常在10万次左右,是Nor Flash的10倍。此外,由于NAND Flash的块大小通常是NorF Flash的1/8,因此NAND Flash的寿命远远大于NorF lash。

嵌入式Linux对Nor和NAND Flash有成熟的软件支持。Nor Flash中常用Jffs2文件系统,NAND Flash中常用yaffs文件系统。在较低层,MTD驱动程序可以读取、写入和擦除它们,并且它还可以验证EDC/ECC。

Nor Flash的操作

我们用u-boot来体验一下Nor Flash的操作(开发板设置Nor boot,进入u-boot)。

1).使用OpenJTAG将UBOOT烧录到Nor Flash。

那么我们怎么用u-boot来操作呢?

Nor Flash手册中会有一个命令表,如图所示:

以下是一些简单的例子:

复位:将F0写入任意地址。

读取ID:许多Nor Flash可以配置为16位(字)和8位(字节)的位宽。对于我们使用的jz2440开发板,位宽是16位。ID怎么读?

根据上图,将AA写入Nor Flash的地址555,55写入2AA的地址,90写入555的地址。然后,您可以读取ADI地址和DDI数据。

示例1

读取数据:

在u-boot上执行:md.b 0

结果(与我们烧录的数据完全相同):

:ea14f09fe514f09fe514f09fe5................:14f09fe514f09fe514f09fe514f09fe5................:6001f833c001fff833`..3...3..3...:e002fff833efbeadde...3...3..3....

可以得出结论,u-boot可以像读内存一样读nor flash。

示例2

读取ID(参考Nor手册)

往地址555H写入AAH(解锁)往地址2AAH写入55H(解锁)往地址555H写入90H(命令)读0地址得到厂家ID(C2H)读1地址得到设备ID(22DAH或225BH)退出读ID状态:给任意地址写F0H就可以了。

下图显示了2440和Nor Flash之间的简单连接图:

240的A1接Nor的A0,所以2440发送的地址是Nor Flash接收的地址左移一位。例如:2440(555h < & lt;1)地址,Nor Flash可以接收这个555H的地址。

比较Nor Flash、2440和U-BOOT中的以下操作,如下表所示:

1).当它被执行时

md.w 0 1

结果(输出制造商ID):

:00c2…(00c2 … (00c2是制造商ID)

2).当它被执行时

md.w 2 1

结果(输出设备ID):

:2249 I & # 34;(2249是设备ID)

3).执行时

mw.w 0 f0

退出读取ID的状态,

4).执行:

md.b 0

结果::17。(我读取的是Nor Flash地址0的数据)

点击“了解更多”阅读站内更多信息。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。

作者:美站资讯,如若转载,请注明出处:https://www.meizw.com/n/127990.html

发表回复

登录后才能评论