0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

什么是nor flash方式打开电源 浅谈nor flash原理及应用

ss 作者:工程师谭军 2018-09-19 10:42 次阅读

本文主要是关于nor flash的相关介绍,并着重对nor flash打开电源方式及原理应用进行了详尽的阐述。

nor flash

nor flash是现在市场上两种主要的非易失闪存技术之一。Intel于1988年首先开发出NOR Flash 技术,彻底改变了原先由EPROM(Erasable Programmable Read-Only-Memory电可编程序只读存储器)和EEPROM(电可擦只读存储器Electrically Erasable Programmable Read - Only Memory)一统天下的局面。紧接着,1989年,东芝公司发表了NAND Flash 结构,强调降低每比特的成本,有更高的性能,并且像磁盘一样可以通过接口轻松升级。NOR Flash 的特点是芯片内执行(XIP ,eXecute In Place),这样应用程序可以直接在Flash闪存内运行,不必再把代码读到系统RAM中。NOR 的传输效率很高,在1~4MB的小容量时具有很高的成本效益,但是很低的写入和擦除速度大大影响到它的性能。NAND的结构能提供极高的单元密度,可以达到高存储密度,并且写入和擦除的速度也很快。应用NAND的困难在于Flash的管理需要特殊的系统接口。通常读取NOR的速度比NAND稍快一些,而NAND的写入速度比NOR快很多,在设计中应该考虑这些情况。

flash闪存是非易失存储器,可以对称为块的存储器单元块进行擦写和再编程。任何flash器件的写入操作只能在空或已擦除的单元内进行,所以大多数情况下,在进行写入操作之前必须先执行擦除。NAND器件执行擦除操作是十分简单的,而NOR则要求在进行擦除前先要将目标块内所有的位都写为0。由于擦除NOR器件时是以64~128KB的块进行的,执行一个写入/擦除操作的时间为5s,与此相反,擦除NAND器件是以8~32KB的块进行的,执行相同的操作最多只需要4ms。执行擦除时块尺寸的不同进一步拉大了NOR和NAND之间的性能差距,统计表明,对于给定的一套写入操作(尤其是更新小文件时),更多的擦除操作必须在基于NOR的单元中进行。这样,当选择存储解决方案时,设计师必须权衡以下的各项因素。l 、NOR的读速度比NAND稍快一些。2、 NAND的写入速度比NOR快很多。3 、NAND的4ms擦除速度远比NOR的5s快。4 、大多数写入操作需要先进行擦除操作。5 、NAND的擦除单元更小,相应的擦除电路更少。此外,NAND的实际应用方式要比NOR复杂的多。NOR可以直接使用,并可在上面直接运行代码;而NAND需要I/O接口,因此使用时需要驱动程序。不过当今流行的操作系统对NAND结构的Flash都有支持。此外,Linux内核也提供了对NAND结构的Flash的支持。

什么是nor flash方式打开电源

flash闪存是非易失存储器,可以对称为块的存储器单元块进行擦写和再编程。任何flash器件的写入操作只能在空或已擦除的单元内进行,所以大多数情况下,在进行写入操作之前必须先执行擦除。NAND器件执行擦除操作是十分简单的,而NOR则要求在进行擦除前先要将目标块内所有的位都写为0。

norflash的启动方式

电子产品如果没有了电,就跟废品没什么区别,是电赋予了他们生命,然而程序则是他们的灵魂。

小时候一直很好奇,一个个死板的电子产品为什么一上电以后就能够工作了呢?为什么一个小小芯片就能够运行我们编写的程序呢?一个开发板从刚上电到整个操作系统能够运行起来是怎么办到的呢?这些东西困扰了好久,参考了好多资料现在才慢慢弄明白其中一些原理。

我们现在接触的大多数电子产品都是使用数字电路设计出来的,数字电路的精髓就是两个数字:0和1,这两个数字千变万化的组合创造了计算机世界的缤纷多彩,不管是cpu、内存还是其他外设都是通过0和1的变化来进行记录、交互以及计算。硬件是怎么操作这两个数字以及这两个数字是怎么控制硬件工作的,这里不进行讨论,那都是一些二极管、三极管、与非门、信号放大取样编码等等知识,所以这里将对一个个功能完整的芯片,从上电以后,他们通过电信号完成各种操作的过程进行解析。如果有玩过单片机的同学应该知道,一个cpu加上一个电源,然后外接一个外部晶振就能够做成一个最小系统了,单片机就能够在他可怜的64k或者128k内存中运行起来了,这些简单的控制芯片虽然有它的存在价值,但是它不能满足日益复杂的计算需求,所以需要更快的运算速度以及更大的运行内存,因此我们会用到更复杂的处理器,比如mips、arm等。下面将使用arm s3c2440 处理器分析上电启动的过程。

作为一个嵌入式产品,它的多样性让它更具有可玩性,以及更容易适应不同的需求,它不像我们的PC启动方式相对比较单一(ROM启动),arm启动方式有从norfalsh启动、nandflash启动、SD卡启动和UBS启动等,但是他们的启动原理都是大同小异的。

开始之前,先理清几个概念:

SDRAM(Synchronous Dynamic Random Access Memory):同步动态随机存取存储器,同步是指Memory工作需要步时钟,内部的命令的发送与数据的传输都以它为基准;动态是指存储阵列需要不断的刷新来保证数据不丢失;随机是指数据不是线性依次存储,而是由指定地址进行数据读写,简单的说,它就是cpu使用的外部内存,即我们常说的内存条。

SRAM是英文Static RAM的缩写,它是一种具有静止存取功能的内存,不需要刷新电路即能保存它内部存储的数据,速度比SDRAM快,一般用作高速缓冲存储器(Cache)。

norflash:非易失闪存,是一种外部存储介质,芯片内执行(XIP,eXecute In Place),这样应用程序可以直接在flash闪存内运行,不必再把代码读到系统RAM中,由于它有地址总线,cpu可以直接从norflash中取指,直接从FLASH中运行程序,但是工艺复杂,价格比较贵,容量较小(1~4M),NOR的传输效率很高

nandflash:它也是非易失闪存(掉电不丢失)的一种,但是它虽然有数据总线,但是没有地址总线,所以cpu不能直接从nandflash中取指运行,由于它价格便宜,所以常常用来存储大量数据,和我们常说的硬盘类似。

下面将解析nandflash启动和norflash启动两种方式(arm s3c2440),其他启动方式将在uboot代码部分分析。

一、 Nandflash启动

首先必须把一个正确的bootload烧写到nandflash的最低位置,即从0x000开始烧写。当我们选择从nandflash启动开发板的时候,开发板就会启动连接nandflash的电路结构,当开发板一上电的时候,Nand Flash控制器会自动的把Nand Flash上的前4K数据搬移到CPU的内部RAM中(SRAM-cache),这个内部RAM我们通常称作stepping stone,同时把这段片内SRAM映射到nGCS0片选的空间(即0x00000000),CPU从内部RAM的0x00000000位置开始启动(执行),这个过程不需要程序干涉的。

这个过程就是启动过程的stage1,它将nandflash的前4看内容拷贝到stepping stone中,然后从stepping stone的第一条指令开始执行,这4k内容里面的指令将会完成以下几个动作:

1.硬件设备初始化

2. 加载U-Boot第二阶段代码到SDRAM空间

3. 设置好栈

4. 跳转到第二阶段stage2代码入口

从下图我们可以看到,板子重置以后,内存的映射关系。从图中可以看到以下几点:

1.刚开始bank0~bank5是只能映射SROM的,而bank6和bank7才能够接SDRM,而且每个bank最大接128M的SDRM,所以决定了S3C2440的最大可外接SDRAM是256M;

2.从图中我们可以看到bank6的起始地址是0x3000_0000, 所以我们在执行stage1的第二个动作(加载U-Boot第二阶段代码到SDRAM空间)时,需要将uboot代码放到0x3000_000~0x4000_0000区间内(SDRAM内),才能从SDRAM中正常执行stage2;

3.当没有选择从nandflash启动时,Boot internal SRAM(4k)的起始地址是0x4000_0000, 当选择从nandflash启动时,Boot internal SRAM(4k)的起始地址是0x00, 因为我们的开发板没有外接SROM,所以bank1~bank5都是空闲的,而bank0的位置将被Boot internal SRAM(4k)替代,也就是说bank0的前4k就是stepping stone(起步石),板子上电以后,在nandflash的启动模式下,S3C2440在硬件上会完成下图中的地址映射,并自动将nandflash中的前4k拷贝到stepping stone中,并从stepping stone的开始地址(0x00)获取到第一条指令并执行。

经过上面的分析后,我们可以将上面两图合并成下图所示:

前面说了nandflash启动过程中第一个代码搬移,下面将解析第二个代码搬移,这4k代码首先会设置cpu运行模式,关看门狗,设置时钟,关中断,初始化内存,初始化nandflash,设置堆栈,然后将整个bootload搬运到SDRAM中,并跳转到SDRAM中执行。

基本过程如下图所示:

关于4k代码的执行过程将会在后面详细解释,而且在新的uboot-2015中,这4k代码是由uboot_spl.bin完成的,下面将基于uboot-2015.10 列出uboot从上电到启动内核的整个过程进行概述:

二、norflash启动

其实理解了nandflash的启动方式,norflash的启动也就好理解多了,首先需要知道的是norflash是可以在片上执行代码(XIP)的,也就是说,我们只需要将bootload烧写到norflash的开始地址,当开发板上电以后,从内存映射图可以知道,nor flash会被映射到0x00000000地址(就是nGCS0,这里就不需要片内SRAM来辅助了,所以片内SRAM的起始地址还是0x40000000,不会改变),然后cpu从0x00000000开始执行(也就是在Norfalsh中执行)整个uboot,直到引导内核启动。

从norflash启动可以省事多了,不仅如此,我们自己编写的裸机程序需要调试,一般也是直接烧写到norflash中进行的,因为只要我们将编译好的可执行文件放到norflash的开始,开发板上电以后就会从norflash的第一条指令开始取指执行,我们后面写裸机程序的调试就是用这种方式进行的。

从norflash启动虽然从开发的角度会很方便(其实也方便不了多少),但是从产品的角度却增加了它的成本,毕竟norflash还是相对较贵的,我们明明只要一块nandflash就足够启动整个开发板了,就没必要在产品中添加一块norflash了,只要代码改改就能省下不少成本,何乐不为。而且nandflash对产品是必不可少的,因为后面还要存放内核和文件系统,起码需要几十兆的空间,用norflash来存储也不现实。

也许你会想,能不能只用norflash,不用nandflash和SDRAM行不行呢,毕竟norflash即可以存储,也可以运行程序的啊,从理论来说是可以的,但是了解一下他们的市场价格、运行速度和工作原理,应该就会知道答案了。

结语

关于nor flash的相关介绍就到这了,如有不足之处欢迎指正。

相关阅读推荐:NAND flash和NOR flash的区别详解

相关阅读推荐:详细剖析NorFlash和NandFlash的区别

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 存储器
    +关注

    关注

    38

    文章

    7119

    浏览量

    161911
  • NOR flash
    +关注

    关注

    2

    文章

    82

    浏览量

    22860
收藏 人收藏

    评论

    相关推荐

    什么是串行Nor Flash?串行Nor Flash的结构和参数特性

    引言:串行Nor Flash是一类使用比较多的存储器件,在特殊应用场景中具有不可替代的地位,本节是数字存储器件系列第一节,介绍串行Nor Flash的结构和参数特性。
    的头像 发表于 09-05 10:09 1828次阅读
    什么是串行<b class='flag-5'>Nor</b> <b class='flag-5'>Flash</b>?串行<b class='flag-5'>Nor</b> <b class='flag-5'>Flash</b>的结构和参数特性

    NAND FlashNOR Flash的差别

    NAND FlashNOR Flash 的差别在哪儿呢?从字面意思上看, NAND = not AND(与非),NOR = not OR(或非),也有可能是NMOS AND/OR
    发表于 09-11 16:59 2181次阅读
    NAND <b class='flag-5'>Flash</b>和<b class='flag-5'>NOR</b> <b class='flag-5'>Flash</b>的差别

    NAND FLASHNOR FLASH的技术对比

    目前,NOR FLASH和NAND FLASH是市场上主要的非易失性闪存技术,但是据我了解,还是有很多工程师分不清NAND FLASHNOR
    发表于 10-01 14:05 522次阅读
    NAND <b class='flag-5'>FLASH</b>与<b class='flag-5'>NOR</b> <b class='flag-5'>FLASH</b>的技术对比

    NOR Flash主要厂商及产品

    据集邦咨询2020第一季NOR Flash厂商市占数据,NOR Flash营收市占第一是旺宏,其制程在业界相对领先,目前采用55nm制程生产,月产能约在20K左右。由于该公司
    的头像 发表于 11-08 09:26 2.5w次阅读

    旺宏并行串行NOR Flash对比参考指南

    并行NOR Flash每次传输多个bit位的数据,而串行NOR Flash每次传输一个bit位的数据。并行NOR
    发表于 03-09 16:06 49次下载

    旺宏串行NOR Flash简介

    串行NOR Flash介绍,串行NOR Flash分类、串行NOR Flash选型以及串行
    发表于 03-10 14:52 30次下载

    nand nor flash区别

    nand nor flash区别    NOR和NAND是现在市场上两种主要的非易失闪存技术。Intel于1988年首先开发出NOR
    发表于 06-30 16:29 1174次阅读

    NOR FLASH的原理及应用

    VDRF256M16是珠海欧比特公司自主研发的一种高速、大容量的NOR FLASH,可利用其对大容量数据进行高速缓存。文中介绍了该芯片的结构和原理,并同时给出了一个系统中大容量、高速数据传输要求
    发表于 10-15 12:20 23次下载
    <b class='flag-5'>NOR</b> <b class='flag-5'>FLASH</b>的原理及应用

    NOR flashflash有什么不一样?

    Nor Flash的接口和RAM完全相同,可以随机访问任意地址的数据,在其上进行读操作的效率非常高,但是擦除和写操作的效率很低,另外,Nor Flash的容量一般比较小,通常,
    的头像 发表于 10-07 15:39 1.1w次阅读

    NAND FlashNOR Flash的区别

    1.1接口差别NOR Flash带有SRAM接口,有足够的地址引脚来寻址,可以直接和CPU相连,CPU可以直接通过地址总线对NOR Flash进行访问,可以很容...
    的头像 发表于 12-14 22:48 1653次阅读

    NOR falsh、NAND flash、SDEMMC、QSPI flash、SPI flash

    1、NOR flashNOR flash数据线和地址线分开,可以实现ram一样的随机寻址功能,可以读取任何一个字节。但是擦除仍要按块来擦。2、NAND flashNAND flash数据线和地址
    发表于 12-02 12:21 30次下载
    <b class='flag-5'>NOR</b> falsh、NAND <b class='flag-5'>flash</b>、SDEMMC、QSPI <b class='flag-5'>flash</b>、SPI <b class='flag-5'>flash</b>

    NOR Flash和NAND FLASH的区别是什么

    使用FlashMemory作为存储介质。 根据硬件上存储原理的不同,Flash Memory主要可以分为NOR Flash和NAND FLASH两类。主要的差异如下所示: NAND
    发表于 01-25 17:25 6w次阅读
    <b class='flag-5'>NOR</b> <b class='flag-5'>Flash</b>和NAND <b class='flag-5'>FLASH</b>的区别是什么

    NAND FlashNOR Flash的区别

    1.1接口差别NOR Flash带有SRAM接口,有足够的地址引脚来寻址,可以直接和CPU相连,CPU可以直接通过地址总线对NOR Flash进行访问,可以很容...
    发表于 01-26 17:12 13次下载
    NAND <b class='flag-5'>Flash</b>和<b class='flag-5'>NOR</b> <b class='flag-5'>Flash</b>的区别

    为什么Nor Flash可以实现XIP,而Nand flash就不行呢?

    为什么Nor Flash可以实现XIP,而Nand flash就不行呢? Flash存储器是一种常用的非易失性存储器,广泛应用于各种电子设备中。它们的价值在于它们可以快速读取和写入数据
    的头像 发表于 10-29 16:32 776次阅读

    NAND FlashNOR Flash的区别

    NAND FlashNOR Flash是两种常见的闪存类型。
    的头像 发表于 11-30 13:53 870次阅读
    NAND <b class='flag-5'>Flash</b>和<b class='flag-5'>NOR</b> <b class='flag-5'>Flash</b>的区别