sdram:主要用于程序执行时的程序存储、执行或计算,类似内存。 
nor flash:适合小容量的程序或数据存储,类似小硬盘;
nand flash:适合大容量数据存储,类似硬盘;
inand flash:是SanDisk公司研发的存储芯片,可以简单的看成SD卡或MMC卡芯片化。

Nor flash的有自己的地址线和数据线,可以采用类似于memory的随机访问方式,在nor flash上可以直接运行程序,所以nor flash可以直接用来做boot,采用nor flash启动的时候会把地址映射到0x00上。

Nand flash是IO设备,数据、地址、控制线都是共用的,需要软件去控制读取时序,所以不能像nor flash、内存一样随机访问,不能EIP(片上运行),因此不能直接作为boot。

NANDFlash启动: NANDFlash控制器自动把nandflash存储器的前4K载到Steppingstone(内部SRAM缓冲器),并把0x00000000S设置为内部SRAM的起始地址,cpu从内部SRAM的0x00000000开始启动,这个过程不需要程序干涉。(cpu会自动从NAND flash中读取前4KB的数据放置在片内SRAM里(s3c2440是soc),同时把这段片内SRAM映射到nGCS0片选的空间(即0x00000000)。cpu是从0x00000000开始执行,也就是NAND flash里的前4KB内容。因为NAND FLASH连地址线都没有,不能直接把NAND映射到0x00000000,只好使用片内SRAM做一个载体。通过这个载体把nandflash中大代码复制到RAM(一般是SDRAM)中去执行)。程序员要完成的工作是把最核心的代码放在nandflash的前4K中。4K代码要完成S3C2440的核心配置以及启动代码(U-boot)的剩余部分拷贝到SDRAM中。 这4K的启动代码需要将NANDFlash中的内容复制到SDRAM中执行。NANDFlash的前4K空间放启动代码,SDRAM速度较快,用来执行主程序的代码。ARM一般从ROM或Flash启动完成初始化,然后将应用程序拷贝到RAM,然后跳到RAM执行。
NORflash启动:支持XIP即代码直接在NOR Flash上执行,无需复制到内存中。这是由于NORFlash的接口与RAM完全相同,可随机访问任意地址数据。NORflash速度快,数据不易失,可作为存储并执行起到代码和应用程序的存储器,norflash可像内存一样读操作,但擦初和写操作效率很低,远不及内存,一般先在代码的开始部分使用汇编指令初始化外接的的内存部件(外存SDRAM),最后跳到外存中继续执行。对于小程序一般把它烧到NANDflash中,借助cpu内部RAM(SRAM)直接云行。 nor flash被映射到0x00000000地址(就是nGCS0,这里就不需要片内SRAM来辅助了,所以片内SRAM的起始地址还是0x40000000). 然后cpu从0x00000000开始执行(也就是在Norfalsh中执行)。 NORflash速度快,数据不易失,可作为存储并执行起到代码和应用程序的存储器,norflash可像内存一样读操作,但擦初和写操作效率很低,价格很昂贵。SDRAM和nandflash的价格比较适中。根据这些特点,一些人产生了这样一种想法:外部nandflash中执行启动代码,SDRAM中执行主程序。NANDFlash控制器自动把nandflash存储器的前4K载到Steppingstone(内部SRAM缓冲器),并把0x00000000S设置为内部SRAM的起始地址,cpu从内部SRAM的0x00000000开始启动,这个过程不需要程序干涉。这4K的启动代码需要将NANDFlash中的内容复制到SDRAM中执行。NANDFlash的前4K空间放启动代码,SDRAM速度较快,用来执行主程序的代码。ARM一般从ROM或Flash启动完成初始化,然后将应用程序拷贝到RAM,然后跳到RAM执行。

总结: Arm的启动都是从0地址开始,所不同的是地址的映射不一样。在arm开电的时候,要想让arm知道以某种方式(地址映射方式)运行,不可能通过你写的某段程序控制,因为这时候你的程序还没启动,这时候arm会通过引脚的电平来判断。   
1、当引脚OM0跟OM1有一个是高电平时,这时地址0会映射到外部nGCS0片选的空间,也就是Norflash,程序就会从Norflash中启动,arm直接取Norflash中的指令运行。

2、当OM0跟OM1都为低电平,则0地址内部bootbuf(一段4k的SRAM)开始。系统上电,arm会自动把NANDflash中的前4K内容考到bootbuf(也就是0地址),然后从0地址运行。这时NANDFlash中的前4K就是启动代码(他的功能就是初始化硬件然后在把NANDFlash中的代码复制到RAM中,再把相应的指针指向该运行的地方)为什么会有这两种启动方式,关键还是两种flash的不同特点造成,

NOR FLASH容量小,速度快,稳定性好,输入地址,然后给出读写信号即可从数据口得到数据,适合做程序存储器。NAND FLASH 总容量大,但是读写都需要复杂的时序,更适合做数据存储器。这种不同就造成了NORflash可以直接连接到arm的总线并且可以运行程序,而NANDflash必须搬移到内存(SDRAM)中运行。

在实际的开发中,一般可以把bootloader烧入到Norflash,程序运行可以通过串口交互,进行一定的操作,比如下载,调试。这样就很可以很方便的调试你的一些代码。Norflash中的Bootloader还可以烧录内核到Norflash等等功能

关于为什么NAND Flash不能直接运行程序的说明:

Nand Flash的控制、地址、数据都通过I/O口发送,管脚复用,这样做做的好处是,可以明显减少NAND FLASH的管脚数目,将来如果设计者想将NAND FLASH更换为更高密度、更大容量的,也不必改动电路板。
 NAND FLASH不能够执行程序,本人总结其原因如下 :
1、NAND FLASH本身是连接到了控制器上而不是系统总线上。CPU启动后是要取指令执行的,如果是SROM、NOR FLASH 等之类的,CPU 发个地址就可以取得指令并执行,NAND FLASH不行,因为NAND FLASH 是管脚复用,它有自己的一套时序,这样CPU无法取得可以执行的代码,也就不能初始化系统了。
 2、NAND FLASH是顺序存取设备,不能够被随机访问,程序就不能够分支或跳转,这样你如何去设计程序。

NOR Flash、NAND Flash和iNAND Flash的不同点相关推荐

  1. ROM PROM EPROM EEPROM FLASH(NAND、NOR)

    ROM PROM EPROM EEPROM FLASH(NAND.NOR) 个人理解: FLASH似乎与EEPROM关系较大 现在的内存使用的是SDRAM(DDR2.DDR3) U盘.内存卡使用的是f ...

  2. SPI Flash/Nor Flash/Nand Flash

    目前嵌入式系统中常用的Flash有Nor和Nand两种,SPI Flash是两者中的一种,只是对外接口使用SPI串行接口而已.SPI Flash默认情况下我们指定的是Nor Flash.早起的Nor ...

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

    1.NOR flash NOR flash数据线和地址线分开,可以实现ram一样的随机寻址功能,可以读取任何一个字节.但是擦除仍要按块来擦. 2.NAND flash NAND flash数据线和地址 ...

  4. SPI FLASH NAND FLASH 和NOR FLASH 的关系

    前言:     在嵌入式开发中,如uboot的移植,kernel的移植都需要对Flash 有基本的了解.下面细说一下标题中的中Flash中的关系 一,Flash的内存存储结构     flash按照内 ...

  5. MTD层次、MTD设备驱动接口、Nor Flash/Nand Flash驱动

    Flash设备驱动及接口分为4层:设备节点,MTD设备层.MTD原始设备层(属于内核的子系统)和硬件驱动层 块设备与文件系统的关系: (1)MTD+MTDblock+fat (2)MTD+NFTL+f ...

  6. Flash开发 NAND,NOR和 Flash区别

    NOR和NAND是现在市场上两种主要的非易失闪存技术.Intel于1988年首先开发出NOR flash技术,彻底改变了原先由EPROM和EEPROM一统 天下的局面.紧接着,1989年,东芝公司发表 ...

  7. html flash 动画效果代码大全,flash动作代码大全

    flash动画代码中的flash动作代码大全 一.几种Action命令 1.影片的播放与停止: Play( )://播放命令 stop( )://停止命令 2.改变Frame流向命令 gotoAndP ...

  8. 自带flash的浏览器_解决Flash插件已被屏蔽的问题(谷歌、火狐、IE、Edge)

    病症,浏览器界面中显示 adobe flash player 已被屏蔽: 作为产品运营,作为经常必须可能要接触到Flash/Html5视频应用的人来员:作为曾开发过flash产品的我来说,这题,我会. ...

  9. 谷歌浏览器flash崩溃怎么办 Google Chrome flash崩溃解决方法

    核心提示:最近在使用谷歌chrome浏览器时,不一会儿就提示Shockwave flash停止运行的问题 谷歌浏览器flash崩溃怎么办 Google Chrome flash崩溃解决方法 最近在使用 ...

  10. [转]我的FLASH情结2010——浅谈FLASH WEB GAME与创业(下)

    我的FLASH情结2010--浅谈FLASH WEB GAME与创业 ★前端与美术的配合 →老闪客们应该都知道,FLASH这款软件在历史很长一段时间内都是用来做动画的,闪客和美术在这段时间内本就是同根 ...

最新文章

  1. ECCV 2020最佳论文讲了啥?作者为ImageNet一作、李飞飞高徒邓嘉
  2. UA MATH523A 实分析3 积分理论 概念与定理整理
  3. word里的多级列表和项目编号是什么区别?
  4. [云炬python3玩转机器学习]5-2最小二乘法a和b推导
  5. “工业互联网平台“将成为工业制造企业的标配
  6. 知乎超高赞:见识多的人,平时都在看些什么?
  7. ulead gif animator_搞笑GIF趣图:这风看来很大啊,今天回不来家了7
  8. 过磅系统_集团公司首个过磅计量及销售结算新系统上线试运行
  9. 11、web端主要应用在哪些领域?
  10. ECC椭圆曲线加密算法原理 | 比特币加密算法
  11. V-5-4 配置Horizon View Server
  12. ubuntu使用笔记一
  13. 同一个字体,不同平台完全不同
  14. MYSQL入门(一)
  15. html img标签的alt属性和title属性(说明)
  16. 装饰器python与python装饰器
  17. oracle函数笔记
  18. NB6612电机驱动与C8T6连接配置双电机
  19. 【decode()】
  20. Vue + Spring Boot 项目实战(三):前后端结合测试(登录页面开发)

热门文章

  1. ray 渲染基本使用流程
  2. Lambda表达式实现机制的分析
  3. HP ProLiant DL380 Gen9 升级到 ESXi 7.0 U3
  4. jQuery mobile ——制作表单
  5. Day11:股市风险
  6. PR更改视频画布大小。PR剪裁视频。PR导出视频时的适应视屏大小都是啥意思啊?
  7. pscp新机器提示Store key in cache? 重装后提示Update cached key?的解决方案
  8. 区块链数据库SunlightDB BI智能标签
  9. Python实现简易搜索引擎
  10. 马科维茨投资组合理论