“第015课 Nor Flash”的版本间的差异
Baiwen root(讨论 | 贡献) (创建页面,内容为“<categorytree mode=all style="float:right; clear:right; margin-left:1ex; border:1px solid gray; padding:0.7ex; background-color:white;">ARM裸机加强版</categoryt...”) |
Baiwen root(讨论 | 贡献) |
||
第1行: | 第1行: | ||
− | <categorytree mode=all | + | = 第001节_Nor Flash原理及硬件操作 = |
+ | Nor Flash的连接线有地址线,数据线,片选信号读写信号等,Nor Flash的接口属于内存类接口,Nor Flash可以向内存一样读,但是不能像内存一样写,需要做一些特殊的操作才能进行写操作,读只需像内存一样读很简单。Nor Flash原理图如图: | ||
+ | [[File:chapter15_lesson1_001.png|800px]] | ||
+ | |||
+ | == Flash介绍 == | ||
+ | 常用的Flash类型有Nor Flash和NAND Flash两种。Nor Flash由Intel公司在1988年发明,以替代当时在市场上占据主要地位的EPROM和E2PROM。NAND Flash由Toshiba公司在1989年发明。两者的主要差别如下表: | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! - !! Nor !! NAND | ||
+ | |- | ||
+ | | XIP(代码可以直接运行) || Yes || no | ||
+ | |- | ||
+ | | 性能(擦除) || 非常慢(5s) || 快(3ms) | ||
+ | |- | ||
+ | | 性能(写) || 慢 || 快 | ||
+ | |- | ||
+ | | 性能(读) || 快 || 快 | ||
+ | |- | ||
+ | | 可靠性 || 较高,位反转的比例小于NAND Flash的10% || 比较低,位反转比较常见,必须有校验措施,比如TNR必须有坏块管理措施 | ||
+ | |- | ||
+ | | 可擦除次数 || 10000 ~ 100000 || 100000 ~ 1000000 | ||
+ | |- | ||
+ | | 生命周期 || 低于NAND Flash的10% || 是Nor Flash的10倍以上 | ||
+ | |- | ||
+ | | 接口 || 与RAM接口相同 || I/O接口 | ||
+ | |- | ||
+ | | 易用性 || 容易 || 复杂 | ||
+ | |- | ||
+ | | 主要用途 || 常用于保存代码和关键数 || 用于保存数据 | ||
+ | |- | ||
+ | | 价格 || 高 || 低 | ||
+ | |} | ||
+ | Nor Flash支持XIP,即代码可以直接在Nor Flash上执行,无需复制到内存中。这是由于NorF lash的接口与RAM完全相同,可以随机访问任意地址的数据。Nor Flash进行读操作的效率非常高,但是擦除和写操作的效率很低,另外,Nor Flash的容量一般比较小。NAND Flash进行擦除和写操作的效率更高,并且容量更大。一般而言,Nor Flash用于存储程序,NAND Flash用于存储数据。基于NAND Flash的设备通常也要搭配Nor Flash以存储程字。 | ||
+ | Flash存储器件由擦除单元(也称为块)组成,当要写某个块时,需要确保这个块己经 | ||
+ | 被擦除。Nor Flash的块大小范围为64kB、128kB:NAND Flash的块大小范围为8kB,64kB,擦/写一个Nor Flash块需4s,而擦/写一个NAND Flash块仅需2ms。Nor Flash的块太大,不仅增加了擦写时间,对于给定的写操作,Nor Flash也需要更多的擦除操作——特别是小文件,比如一个文件只有IkB,但是为了保存它却需要擦除人小为64kB—128kB的Nor Flash块。 | ||
+ | Nor Flash的接口与RAM完全相同,可以随意访问任意地址的数据。而NAND Flash的 | ||
+ | 接口仅仅包含几个I/O引脚,需要串行地访问。NAND Flash一般以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存储器件的可靠性需要考虑3点:位反转、坏块和可擦除次数。所有Flash器件都遭遇位反转的问题:由于Flash固有的电器特性,在读写数据过程中,偶然会产生一位或几位数据错误(这种概率很低),而NAND Flash出现的概率远大于Nor Flash,当位反转发生在关键的代码、数据上时,有可能导致系统崩溃。当仅仅是报告位反转,重新读取即可:如果确实发生了位反转,则必须有相应的错误检测/恢复措施。在NAND Flash上发生位反转的概率史高,推荐使用EDC/ECC进行错误检测和恢复。NAND Flash上面会有坏块随机分布在使用前需要将坏块扫描出来,确保不再使用它们,否则会使产品含有严重的故障。NAND Flash每块的可擦除次数通常在100000次左右,是Nor Flash的10倍。另外,因为NAND Flash的块大小通常是NorF lash的1/8,所以NAND Flash的寿命远远超过Nor Flash。 | ||
+ | 嵌入式Linux对Nor、NAND Flash的软件支持都很成熟。在Nor Flash上常用jffs2文 | ||
+ | 件系统,而在NAND Flash常用yaffs文件系统。在更底层,有MTD驱动程序实现对它们的读、写、擦除操仵,它也实现了EDC/ECC校验。 | ||
+ | |||
+ | = 第002节_Nor Flash编程_识别 = | ||
+ | |||
+ | |||
+ | |||
+ | = 第003节_Nor Flash编程_擦写读 = | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ='''查看《《所有章节目录》》'''= | ||
+ | |||
+ | <categorytree mode=all background-color:white;">ARM裸机加强版</categorytree> | ||
+ | [[Category:ARM裸机加强版 ]] | ||
+ | |||
[[Category:ARM裸机加强版 ]] | [[Category:ARM裸机加强版 ]] |
2018年1月18日 (四) 11:51的版本
目录
第001节_Nor Flash原理及硬件操作
Nor Flash的连接线有地址线,数据线,片选信号读写信号等,Nor Flash的接口属于内存类接口,Nor Flash可以向内存一样读,但是不能像内存一样写,需要做一些特殊的操作才能进行写操作,读只需像内存一样读很简单。Nor Flash原理图如图:
Flash介绍
常用的Flash类型有Nor Flash和NAND Flash两种。Nor Flash由Intel公司在1988年发明,以替代当时在市场上占据主要地位的EPROM和E2PROM。NAND Flash由Toshiba公司在1989年发明。两者的主要差别如下表:
- | Nor | NAND |
---|---|---|
XIP(代码可以直接运行) | Yes | no |
性能(擦除) | 非常慢(5s) | 快(3ms) |
性能(写) | 慢 | 快 |
性能(读) | 快 | 快 |
可靠性 | 较高,位反转的比例小于NAND Flash的10% | 比较低,位反转比较常见,必须有校验措施,比如TNR必须有坏块管理措施 |
可擦除次数 | 10000 ~ 100000 | 100000 ~ 1000000 |
生命周期 | 低于NAND Flash的10% | 是Nor Flash的10倍以上 |
接口 | 与RAM接口相同 | I/O接口 |
易用性 | 容易 | 复杂 |
主要用途 | 常用于保存代码和关键数 | 用于保存数据 |
价格 | 高 | 低 |
Nor Flash支持XIP,即代码可以直接在Nor Flash上执行,无需复制到内存中。这是由于NorF lash的接口与RAM完全相同,可以随机访问任意地址的数据。Nor Flash进行读操作的效率非常高,但是擦除和写操作的效率很低,另外,Nor Flash的容量一般比较小。NAND Flash进行擦除和写操作的效率更高,并且容量更大。一般而言,Nor Flash用于存储程序,NAND Flash用于存储数据。基于NAND Flash的设备通常也要搭配Nor Flash以存储程字。 Flash存储器件由擦除单元(也称为块)组成,当要写某个块时,需要确保这个块己经 被擦除。Nor Flash的块大小范围为64kB、128kB:NAND Flash的块大小范围为8kB,64kB,擦/写一个Nor Flash块需4s,而擦/写一个NAND Flash块仅需2ms。Nor Flash的块太大,不仅增加了擦写时间,对于给定的写操作,Nor Flash也需要更多的擦除操作——特别是小文件,比如一个文件只有IkB,但是为了保存它却需要擦除人小为64kB—128kB的Nor Flash块。 Nor Flash的接口与RAM完全相同,可以随意访问任意地址的数据。而NAND Flash的 接口仅仅包含几个I/O引脚,需要串行地访问。NAND Flash一般以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存储器件的可靠性需要考虑3点:位反转、坏块和可擦除次数。所有Flash器件都遭遇位反转的问题:由于Flash固有的电器特性,在读写数据过程中,偶然会产生一位或几位数据错误(这种概率很低),而NAND Flash出现的概率远大于Nor Flash,当位反转发生在关键的代码、数据上时,有可能导致系统崩溃。当仅仅是报告位反转,重新读取即可:如果确实发生了位反转,则必须有相应的错误检测/恢复措施。在NAND Flash上发生位反转的概率史高,推荐使用EDC/ECC进行错误检测和恢复。NAND Flash上面会有坏块随机分布在使用前需要将坏块扫描出来,确保不再使用它们,否则会使产品含有严重的故障。NAND Flash每块的可擦除次数通常在100000次左右,是Nor Flash的10倍。另外,因为NAND Flash的块大小通常是NorF lash的1/8,所以NAND Flash的寿命远远超过Nor Flash。 嵌入式Linux对Nor、NAND Flash的软件支持都很成熟。在Nor Flash上常用jffs2文 件系统,而在NAND Flash常用yaffs文件系统。在更底层,有MTD驱动程序实现对它们的读、写、擦除操仵,它也实现了EDC/ECC校验。