精华内容
下载资源
问答
  • 【MPC5744P】Flash 结构、启动原理以及内存映射

    千次阅读 热门讨论 2018-12-21 15:23:39
    与大部分的MCU相同,MPC5744P的Flash、...MPC5744P Flash结构如下:               0x00000000-0x003FFFFF --   reserved           0x00400000-0...

    与大部分的MCU相同,MPC5744P的Flash、RAM以及外设都映射到内存地址中了。以下为映射地址范围:

     

    MPC5744P Flash结构如下:              
    0x00000000-0x003FFFFF --   reserved          
    0x00400000-0x00403FFF --   16KB,UTest NVM block      
    0x00404000-0x007FFFFF --   Reserved          
    0x00800000-0x00817FFF --   96KB,Data flash memory block    
      0x00800000-0x00803FFF  16KB,EEPROM-low block0,RWW_P:0,BlockSize:16 KB    
      0x00804000-0x00807FFF  16KB,EEPROM-low block1,RWW_P:0,BlockSize:16 KB    
      0x00808000-0x0080FFFF  32KB,EEPROM-mid block0,RWW_P:2,BlockSize:32 KB    
      0x00810000-0x00817FFF  32KB,EEPROM-mid block1,RWW_P:3,BlockSize:32 KB    
                       
    0x00818000-0x00FFFFFF --   6MB,Used 416KB,Small and medium flash memory blocks
        Small:                  
      0x00F98000-0x00F9BFFF 16KB,low flash memory block 2(boot location 0),RWW_P:1,BlockSize:16KB
      0x00F9C000-0x00F9FFFF 16KB,low flash memory block 3(boot location 1),RWW_P:1,BlockSize:16KB
                       
        Medium:                
      0x00FA0000-0x00FAFFFF 64KB,high flash memory block 0(boot location 2),RWW_P:4 BlockSize:64KB
      0x00FB0000-0x00FBFFFF 64KB,high flash memory block 1(boot location 3),RWW_P:4 BlockSize:64KB
      0x00FC0000-0x00FCFFFF 64KB,high flash memory block 2 ,RWW_P:4,BlockSize:64KB  
      0x00FD0000-0x00FDFFFF 64KB,high flash memory block 3 ,RWW_P:5,BlockSize:64KB  
      0x00FE0000-0x00FEFFFF 64KB,high flash memory block 4 ,RWW_P:5,BlockSize:64KB  
      0x00FF0000-0x00FFFFFF 64KB,high flash memory block 5 ,RWW_P:5,BlockSize:64KB  
                       
    0x01000000-0x01FFFFFF --   16MB,Used 2048KB,Large flash memory blocks  
        Large:                  
      0x01000000-0x0103FFFF 256KB,flash memory block 0(boot location 4),RWW_P:6,BlockSize:256 KB
      0x01040000-0x0107FFFF 256KB,flash memory block 1(boot location 5),RWW_P:6 BlockSize:256 KB
      0x01080000-0x010BFFFF 256KB,flash memory block 2(boot location 6),RWW_P:6 BlockSize:256 KB
      0x010C0000-0x010FFFFF 256KB,flash memory block 3(boot location 7),RWW_P:6 BlockSize:256 KB
      0x01100000-0x0113FFFF 256KB,flash memory block 4,RWW_P:7 BlockSize:256 KB    
      0x01140000-0x0117FFFF 256KB,flash memory block 5,RWW_P:7 BlockSize:256 KB    
      0x01180000-0x011BFFFF 256KB,flash memory block 6,RWW_P:7 BlockSize:256 KB    
      0x011C0000-0x011FFFFF 256KB,flash memory block 7,RWW_P:7 BlockSize:256 KB    
                       
    0x02000000-0x089FFFFF --   106MB,Reserved        
    0x08A00000-0x08FFFFFF --   6MB,Used 416KB,Mirror Small and medium flash memory blocks
    0x09000000-0x09FFFFFF --   16MB,Used 2048KB,Mirror Large flash memory blocks
    0x0A000000-0x3FFFFFFF --   Reserved          
                       
    MPC5744P RAM结构如下:                
    0x40000000-0x4005FFFF --   384KB,System RAM        
    0x40060000-0x4007FFFF --   Reserved System RAM      
    0x40080000-0x4FFFFFFF --   Reserved          
                       
    MPC5744P Local Memory结构如下            
    0x50000000-0x5000FFFF --   Reserved          
    0x50010000-0x507FFFFF --   Reserved          
    0x50800000-0x5080FFFF --   64KB,Used 64KB,D-MEM CPU0      
    0x50810000-0xF7FFFFFF --   Reserved          
                       
    其它外设:                
    0xF8000000-0xFFFFBFFF --   other          
    0xFFFFC000-0xFFFFFFFF --   16KB,Boot Assist Module(BAM)    

     

    Flash有几种分类方式。

    方式一:EEPROM、Small、Medium、Large Flash。

    方式二:Low、Medium、High、First256K、Second256K。

    其中上述方式二涉及到Lock与Select,关系到Flash的擦除和编程。

     

    MPC5744P Flash编程:

    MPC5744P数据存储为字节模式,即32位数据存储会占用4个地址

    对Flash编程时,需要多个步骤:

    1、解锁对应的Block

    2、选择对应的Block

    3、擦除对应的Block

    4、编程对应的Block

    5、加锁对应的Block

    Block对应列表如下:

    LOW--not program, partition 0 and 1        
    0x00800000-0x00803FFF --   16KB,EEPROM-low block0, RWW_P:0  
    0x00804000-0x00807FFF --   16KB,EEPROM-low block1, RWW_P:0  
    0x00F98000-0x00F9BFFF --   16KB,low flash memory block2, RWW_P:1
    0x00F9C000-0x00F9FFFF --   16KB,low flash memory block3, RWW_P:1
                     
    MID , partition 2 and 3            
    0x00808000-0x0080FFFF --   32KB,EEPROM-mid block0, RWW_P:2  
    0x00810000-0x00817FFF --   32KB,EEPROM-mid block1, RWW_P:3  
                     
    HIGH, , partition 4 and 5            
    0x00FA0000-0x00FAFFFF --   64KB,high flash memory block0, RWW_P:4
    0x00FB0000-0x00FBFFFF --   64KB,high flash memory block1, RWW_P:4
    0x00FC0000-0x00FCFFFF --   64KB,high flash memory block2, RWW_P:4
    0x00FD0000-0x00FDFFFF --   64KB,high flash memory block3, RWW_P:5
    0x00FE0000-0x00FEFFFF --   64KB,high flash memory block4, RWW_P:5
    0x00FF0000-0x00FFFFFF --   64KB,high flash memory block5, RWW_P:5
                     
    256K--all used              
    0x01000000-0x0103FFFF --   256KB,256k flash memory block0, RWW_P:6
    0x01040000-0x0107FFFF --   256KB,256k flash memory block1, RWW_P:6
    0x01080000-0x010BFFFF --   256KB,256k flash memory block2, RWW_P:6
    0x010C0000-0x010FFFFF --   256KB,256k flash memory block3, RWW_P:6
    0x01100000-0x0113FFFF --   256KB,256k flash memory block4, RWW_P:7
    0x01140000-0x0117FFFF --   256KB,256k flash memory block5, RWW_P:7
    0x01180000-0x011BFFFF --   256KB,256k flash memory block6, RWW_P:7
    0x011C0000-0x011FFFFF --   256KB,256k flash memory block7, RWW_P:7

    具体编程实例下一篇再讲述。

     

     

    MPC5744P启动原理:

    首先介绍以下MCU启动原理,为Bootloader打基础。

    MPC5744P启动方式比较奇特,支持2类方式启动:

    1、Single Chip(SC)-从第一个可启动flash块启动
               2、Serial Boot(SBL)-从SCI或CAN下载启动代码,然后运行,也就是BAM启动

    BAM启动:           

    通过BAM启动(单芯片启动模式由硬件管理,BAM不参与),BAM在以下情况运行:
               1、Force Alternate Boot(FAB)引脚选择为串行启动
               2、硬件在所有flash中的启动块中没有找到一个合法的Boot ID

               以上有一个以上条件成立,则芯片在0xFFFF_C000处抓取代码进而BAM启动。

               FAB引脚 配合 ABS(Aletrnate Boot Selector)引脚使用
               

    FAB

    ABS 2,0

    Boot ID  Boot Mode
    1 0 0 -- Serial Boot SCI
    1 0 1 -- Serial Boot CAN
    0 -- Valid SC
    0 -- Not Found Static Mode

     

     

     

     

     

     

    SC启动:

    单芯片启动时,会先从低到高搜索每一个Boot location,每一个Boot Location第一个地址为RCHW(Reset Configuration Half-Word),若RCHW的BOOT_ID区域包含0x5A,则此块可作为启动分区,第一个Boot Location起始处为启动地址偏移4个地址(每4个地址为一个32bits数据)。

    例如代码从0x00FA0000处,Boot location0处启动,则对应RCHW为,0x00FA0000:0x005A0000,实际会从0x00FA0004处执行第一个代码,例如下面执行了跳转指令,跳转到了0x01000000。

    具体设置flash地址方法为修改xxx_flash.ld文件.

    展开全文
  • Nand Flash内存结构分析 /*  *硬件平台:韦东山嵌入式Linxu开发板(S3C2440.v3)  *软件平台:运行于VMware Workstation 12 Player下UbuntuLTS16.04_x64 系统,  *参考资料:K9F2G08U0C datasheet,...

    Nand Flash内存结构分析

    • 硬件平台:韦东山嵌入式Linxu开发板(S3C2440.v3)
    • 软件平台:运行于VMware Workstation 12 Player下UbuntuLTS16.04_x64 系统
    • 参考资料:K9F2G08U0C datasheet,http://blog.chinaunix.net/uid-28834618-id-3620422.html
    • 源码仓库:https://gitee.com/d_1254436976/Embedded-Linux-Phase-1


    一、芯片图分析

    在这里插入图片描述
    对于我们所使用的这块K9F2G08U0C芯片,通过电路与原理图可以知道如下信息:
      1、I/O线只有8条,位宽位8位(bit0-bit7)
      2、1 Nand Flash = 2048 Blocks = 2112Mbits = 256MB = 2Gb
      3、1 Block   = 64 Pages = 132KB
      4、1 Page    = 2112 B = 2KB(datafield)+ 64B(OOB)

    二、Page分析

      在CPU进行读、写、擦除操作时,只关心数据,不需要看OOB,这里就没有画出OOB区
    在这里插入图片描述
    1 Page = 2112 B = 2KB(datafield)+ 64B(OOB)
    2112B -1 = 1000 0011 1111‬,共12bits,对应上图的A[11:0]
      结论一:1st与2nd Cycle发出的是一个Page中,该列与该Page第一个列的相对地址,即图中对应的0,1,2…2047列

    三、Block分析

      在CPU进行读、写、擦除操作时,只关心数据,不需要看OOB,这里就没有画出OOB区
    在这里插入图片描述
    1 Block = 64 Pages = 132KB
    64 = 11 1111‬,共6bits,对应图中的A[12:17]
      结论二:3rd Cycle发出对应的是:一个Block中,该Page与该Block第一个Page的相对地址,即上图所画的0,1,2…63 Page

    四、Device分析

    在这里插入图片描述
    1 Device = 2048 Blocks = 2112Mbits = 256MB = 2Gb
    2048 = 111 1111 1111,共11bits,对应图中的A[18:28]
      结论三:3rd Cycle的A[18:19],4th Cycle的A[20:27]与5th的A[28]对应:一个Device中,该Block与该Device第一个Block的相对地址,即上图所画的0,1,2…2047Block。

    五、读、写、擦除操作分析

      对于flash的读写都是以一个page开始的,而擦写则是以一个block为单位的。按照这种组织方式形成三类地址
      Column Address:列地址——对应结论一的A[0:7]
      Page Address:   页地址——对应结论二的A[8:17]
      Block Address: 块地址——对应结论三的A[18:28]

    1、读写操作

      读写都是以一个page为单位,加上由于自身位反转的特性,所以我们写入的数据操大于2048Bytes时,也是可以成功写入。
    下面使用上一篇文章中所编写写操作程序进行分析:

    void nand_write(unsigned int addr,unsigned char *buf,int len);
    void do_write_nand_flash(void)
    {
    	unsigned int addr;
    	unsigned char str[100];
    	/* 获取地址 */
    	printf("Enter the address of sector to write: ");
    	addr = get_uint();
    
    	/* 获取写入信息 */
    	printf("Enter the address to write: ");
    	gets(str);
    
    	nand_write(addr,str,strlen(str)+1);
    	printf("writing ...\n\r");
    }
    

      unsigned char str[100] 这一个参数,是用来存储我们所写入到Nand Flash的数据,数据类型为:unsigned char,即对于字符数组中,每一位str[n]的数据大小都为1Byte。即是1个Page中一列可以存储的数据大小
    通过运行截图可以印证:
    在这里插入图片描述

    2、擦除操作

      擦写则是以一个block为单位的,这个可通过时序图与具体程序运行进行验证:
    时序图中,发送的地址只有Row Address,即结论三中的地址
    在这里插入图片描述
    具体运行程序截图:
    在这里插入图片描述

      可以发现,当我们擦除地址为0x100100中的数据时,会擦除0x100000对应的块的数据。

    展开全文
  • 内存flash

    2017-05-26 11:33:46
    在计算机的组成结构中,有一个很重要的部分,就是存储器。存储器是用来存储程序和数据的部件,对于计算机来说,有了存储器,才有记忆功能,才能保证正常工作。存储器的种类很多,按其用途可分为主存储器和辅助存储器...
    1.什么是内存
         什么是内存呢?在计算机的组成结构中,有一个很重要的部分,就是存储器。存储器是用来存储程序和数据的部件,对于计算机来说,有了存储器,才有记忆功能,才能保证正常工作。存储器的种类很多,按其用途可分为主存储器和辅助存储器,主存储器又称内存储器(简称内存),辅助存储器又称外存储器(简称外存)。外存通常是磁性介质或光盘,像硬盘,软盘,磁带,CD等,能长期保存信息,并且不依赖于电来保存信息,但是由机械部件带动,速度与CPU相比就显得慢的多。内存指的就是主板上的存储部件,是CPU直接与之沟通,并用其存储数据的部件,存放当前正在使用的(即执行中)的数据和程序,它的物理实质就是一组或多组具备数据输入输出和数据存储功能的集成电路,内存只用于暂时存放程序和数据,一旦关闭电源或发生断电,其中的程序和数据就会丢失。

    2.内存工作原理:
    内存是用来存放当前正在使用的(即执行中)的数据和程序,我们平常所提到的计算机的内存指的是动态内存(即DRAM),动态内存中所谓的'动态',指的是当我们将数据写入DRAM后,经过一段时间,数据会丢失,因此需要一个额外设电路进行内存刷新操作。

    具体的工作过程是这样的:一个DRAM的存储单元存储的是0还是1取决于电容是否有电荷,有电荷代表1,无电荷代表0。但时间一长,代表1的电容会放电,代表0的电容会吸收电荷,这就是数据丢失的原因;刷新操作定期对电容进行检查,若电量大于满电量的1/2,则认为其代表1,并把电容充满电;若电量小于1/2,则认为其代表0,并把电容放电,藉此来保持数据的连续性。 

    ROM也有很多种,PROM是可编程的ROM,PROM和EPROM(可擦除可编程ROM)两者区别是,PROM是一次性的,也就是软件灌入后,就无法修改了,这种是早期的产品,现在已经不可能使用了,而EPROM是通过紫外光的照射擦出原先的程序,是一种通用的存储器。另外一种EEPROM是通过电子擦出,价格很高,写入时间很长,写入很慢。

    从一有计算机开始,就有内存。内存发展到今天也经历了很多次的技术改进,从最早的DRAM一直到FPMDRAM、EDODRAM、SDRAM等,内存的速度一直在提高且容量也在不断的增加。

    3.ROM和RAM指的都是半导体存储器
    1)ROM是Read Only Memory的缩写
         是一种半导体内存,其特性是一旦储存资料就无法再将之改变或删除。通常用在不需经常变更资料的电子或电脑系统中,资料并且不会因为电源关闭而消失。
         只能读出事先所存数据的固态半导体存储器。英文简称ROM。ROM所存数据,一般是装入整机前事先写好的,整机工作过程中只能读出,而不像随机存储器那样能快速地、方便地加以改写。ROM所存数据稳定 ,断电后所存数据也不会改变;其结构较简单,读出较方便,因而常用于存储各种固定程序和数据。除少数品种的只读存储器(如字符发生器)可以通用之外,不同用户所需只读存储器的内容不同。
         为便于使 用和大批 量 生产 ,进一步发展了可编程只读存储器(PROM)、可擦可编程序只读存储器(EPROM)和电可擦可编程只读存储器(EEPROM)。EPROM需用紫外光长时间照射才能擦除,使用很不方便。20世纪 80 年代制出的 EEPROM ,克服了EPROM的不足,但集成度不高 ,价格较贵。于是又开发出一种新型的存储单元结构同 EPROM 相似的快闪存储器 。其集成度高、功耗低 、体积小 ,又能在线快速擦除 ,因而获得飞速发展,并有可能取代现行的硬盘和软盘而成为主要的大容量存储媒体。大部分只读存储器用金属-氧化物-半导体(MOS)场效应管制成。

    2)RAM是Random Access Memory的缩写。
       又称为随机存取存储器;存储单元的内容可按需随意取出或存入,且存取的速度与存储单元的位置无关的存储器。这种存储器在断电时将丢失其存储内容,故主要用于存储短时间使用的程序。

    简单地说,在计算机中,RAM 、ROM都是数据存储器。RAM 是随机存取存储器,它的特点是易挥发性,即掉电失忆。ROM 通常指固化存储器(一次写入,反复读取),它的特点与RAM 相反。ROM又分一次性固化、光擦除和电擦除重写两种类型。 
         
         ROM在系统停止供电的时候仍然可以保持数据,而RAM通常都是在掉电之后就丢失数据,典型的RAM就是计算机的内存。 

    4.RAM分为两大类:
    1)一种称为静态RAM(Static RAM/SRAM),SRAM速度非常快,是目前读写最快的存储设备了,但是它也非常昂贵,所以只在要求很苛刻的地方使用,譬如CPU的一级缓冲,二级缓冲。

    2)另一种称为动态RAM(Dynamic RAM/DRAM),DRAM保留数据的时间很短,速度也比SRAM慢,不过它还是比任何的ROM都要快,但从价格上来说DRAM相比SRAM要便宜很多,计算机内存就是DRAM的。 

    DRAM分为很多种,常见的主要有FPRAM/FastPage、EDORAM、SDRAM、DDR RAM、RDRAM、SGRAM以及WRAM等,这里介绍其中的一种DDR RAM。

    DDR RAM(Date-Rate RAM)也称作DDR SDRAM,这种改进型的RAM和SDRAM是基本一样的,不同之处在于它可以在一个时钟读写两次数据,这样就使得数据传输速度加倍了。这是目前电脑中用得最多的内存,而且它有着成本优势,事实上击败了Intel的另外一种内存标准-Rambus DRAM。在很多高端的显卡上,也配备了高速DDR RAM来提高带宽,这可以大幅度提高3D加速卡的像素渲染能力。 

    5.再不明白的请看例子:
    举个例子,手机软件一般放在EEPROM中,我们打电话,有些最后拨打的号码,暂时是存在SRAM中的,不是马上写入通过记录(通话记录保存在EEPROM中),因为当时有很重要工作(通话)要做,如果写入,漫长的等待是让用户忍无可忍的。
    FLASH存储器又称闪存,它结合了ROM和RAM的长处,不仅具备电子可擦除可编程(EEPROM)的性能,还不会断电丢失数据同时可以快速读取数据(NVRAM的优势),U盘和MP3里用的就是这种存储器。在过去的20年里,嵌入式系统一直使用ROM(EPROM)作为它们的存储设备,然而近年来Flash全面代替了ROM(EPROM)在嵌入式系统中的地位,用作存储Bootloader以及操作系统或者程序代码或者直接当硬盘使用(U盘)。 

    目前Flash主要有两种NOR Flash和NADN Flash。

    NOR Flash的读取和我们常见的SDRAM的读取是一样,用户可以直接运行装载在NOR FLASH里面的代码,这样可以减少SRAM的容量从而节约了成本。

    NAND Flash没有采取内存的随机读取技术,它的读取是以一次读取一块的形式来进行的,通常是一次读取512个字节,采用这种技术的Flash比较廉价。用户不能直接运行NAND Flash上的代码,因此好多使用NAND Flash的开发板除了使用NAND Flah以外,还作上了一块小的NOR Flash来运行启动代码。 

    一般小容量的用NOR Flash,因为其读取速度快,多用来存储操作系统等重要信息,而大容量的用NAND FLASH,最常见的NAND FLASH应用是嵌入式系统采用的DOC(Disk On Chip)和我们通常用的'闪盘',可以在线擦除。目前市面上的FLASH 主要来自Intel,AMD,Fujitsu和Toshiba,而生产NAND Flash的主要厂家有Samsung和Toshiba。





    追加:计算机硬件组成部分

    主要分为五个部分:

    1. 控制器(Control):是整个计算机的中枢神经,其功能是对程序规定的控制信息进行解释,根据其要求进行控制,调度程序、数据、地址,协调计算机各部分工作及内存与外设的访问等。

    2. 运算器(Datapath):运算器的功能是对数据进行各种算术运算和逻辑运算,即对数据进行加工处理。

    3. 存储器(Memory):存储器的功能是存储程序、数据和各种信号、命令等信息,并在需要时提供这些信息。

    4. 输入(Input system):输入设备是计算机的重要组成部分,输入设备与输出设备合称为外部设备,简称外设,输入设备的作用是将程序、原始数据、文字、字符、控制命令或现场采集的数据等信息输入到计算机。常见的输入设备有键盘、鼠标器、光电输入机、磁带机、磁盘机、光盘机等。

    5. 输出(Output system):输出设备与输入设备同样是计算机的重要组成部分,它把外算机的中间结果或最后结果、机内的各种数据符号及文字或各种控制信号等信息输出出来。微机常用的输出设备有显示终端CRT、打印机、激光印字机、绘图仪及磁带、光盘机等。

     

    cpu=控制器+运算器

    主板=I/O总线,输入输出系统

    存储器=内存+硬盘

    I/O设备:键盘,鼠标,扫描仪,显示器等等

     

    展开全文
  • 内存flash区别

    千次阅读 2019-05-25 13:25:33
    在计算机的组成结构中,有一个很重要的部分,就是存储器。存储器是用来存储程序和数据的部件,对于计算机来说,有了存储器,才有记忆功能,才能保证正常工作。存储器的种类很多,按其用途可分为主存储器和辅助存储器...

    1.什么是内存

    • 什么是内存呢?在计算机的组成结构中,有一个很重要的部分,就是存储器。存储器是用来存储程序和数据的部件,对于计算机来说,有了存储器,才有记忆功能,才能保证正常工作。存储器的种类很多,按其用途可分为主存储器和辅助存储器,主存储器又称内存储器(简称内存),辅助存储器又称外存储器(简称外存)。外存通常是磁性介质或光盘,像硬盘,软盘,磁带,CD等,能长期保存信息,并且不依赖于电来保存信息,但是由机械部件带动,速度与CPU相比就显得慢的多。内存指的就是主板上的存储部件,是CPU直接与之沟通,并用其存储数据的部件,存放当前正在使用的(即执行中)的数据和程序,它的物理实质就是一组或多组具备数据输入输出和数据存储功能的集成电路,内存只用于暂时存放程序和数据,一旦关闭电源或发生断电,其中的程序和数据就会丢失。

    2.内存工作原理

    1. 内存是用来存放当前正在使用的(即执行中)的数据和程序,我们平常所提到的计算机的内存指的是动态内存(即DRAM),动态内存中所谓的'动态',指的是当我们将数据写入DRAM后,经过一段时间,数据会丢失,因此需要一个额外设电路进行内存刷新操作。
    2. 具体的工作过程是这样的:一个DRAM的存储单元存储的是0还是1取决于电容是否有电荷,有电荷代表1,无电荷代表0。但时间一长,代表1的电容会放电,代表0的电容会吸收电荷,这就是数据丢失的原因;刷新操作定期对电容进行检查,若电量大于满电量的1/2,则认为其代表1,并把电容充满电;若电量小于1/2,则认为其代表0,并把电容放电,藉此来保持数据的连续性。 
    3. ROM也有很多种,PROM是可编程的ROM,PROM和EPROM(可擦除可编程ROM)两者区别是,PROM是一次性的,也就是软件灌入后,就无法修改了,这种是早期的产品,现在已经不可能使用了,而EPROM是通过紫外光的照射擦出原先的程序,是一种通用的存储器。另外一种EEPROM是通过电子擦出,价格很高,写入时间很长,写入很慢。
    4. 从一有计算机开始,就有内存。内存发展到今天也经历了很多次的技术改进,从最早的DRAM一直到FPMDRAM、EDODRAM、SDRAM等,内存的速度一直在提高且容量也在不断的增加。

    3.ROM和RAM指的都是半导体存储器

    1. ROM是Read Only Memory的缩写,是一种半导体内存,其特性是一旦储存资料就无法再将之改变或删除。通常用在不需经常变更资料的电子或电脑系统中,资料并且不会因为电源关闭而消失。
    2. 只能读出事先所存数据的固态半导体存储器。英文简称ROM。ROM所存数据,一般是装入整机前事先写好的,整机工作过程中只能读出,而不像随机存储器那样能快速地、方便地加以改写。ROM所存数据稳定 ,断电后所存数据也不会改变;其结构较简单,读出较方便,因而常用于存储各种固定程序和数据。除少数品种的只读存储器(如字符发生器)可以通用之外,不同用户所需只读存储器的内容不同。
    3. 为便于使 用和大批量生产 ,进一步发展了可编程只读存储器(PROM)、可擦可编程序只读存储器(EPROM)和电可擦可编程只读存储器(EEPROM)。EPROM需用紫外光长时间照射才能擦除,使用很不方便。20世纪 80 年代制出的 EEPROM ,克服了EPROM的不足,但集成度不高 ,价格较贵。于是又开发出一种新型的存储单元结构同 EPROM 相似的快闪存储器 。其集成度高、功耗低 、体积小 ,又能在线快速擦除 ,因而获得飞速发展,并有可能取代现行的硬盘和软盘而成为主要的大容量存储媒体。大部分只读存储器用金属-氧化物-半导体(MOS)场效应管制成。
    4. RAM是Random Access Memory的缩写。又称为随机存取存储器;存储单元的内容可按需随意取出或存入,且存取的速度与存储单元的位置无关的存储器。这种存储器在断电时将丢失其存储内容,故主要用于存储短时间使用的程序。
    5. 简单地说,在计算机中,RAM 、ROM都是数据存储器。RAM 是随机存取存储器,它的特点是易挥发性,即掉电失忆。ROM 通常指固化存储器(一次写入,反复读取),它的特点与RAM 相反。ROM又分一次性固化、光擦除和电擦除重写两种类型。 
    6. ROM在系统停止供电的时候仍然可以保持数据,而RAM通常都是在掉电之后就丢失数据,典型的RAM就是计算机的内存。 

    4.RAM分为两大类

    1. 一种称为静态RAM(Static RAM/SRAM),SRAM速度非常快,是目前读写最快的存储设备了,但是它也非常昂贵,所以只在要求很苛刻的地方使用,譬如CPU的一级缓冲,二级缓冲。
    2. 另一种称为动态RAM(Dynamic RAM/DRAM),DRAM保留数据的时间很短,速度也比SRAM慢,不过它还是比任何的ROM都要快,但从价格上来说DRAM相比SRAM要便宜很多,计算机内存就是DRAM的。 
    3. DRAM分为很多种,常见的主要有FPRAM/FastPage、EDORAM、SDRAM、DDR RAM、RDRAM、SGRAM以及WRAM等,这里介绍其中的一种DDR RAM。
    4. DDR RAM(Date-Rate RAM)也称作DDR SDRAM,这种改进型的RAM和SDRAM是基本一样的,不同之处在于它可以在一个时钟读写两次数据,这样就使得数据传输速度加倍了。这是目前电脑中用得最多的内存,而且它有着成本优势,事实上击败了Intel的另外一种内存标准-Rambus DRAM。在很多高端的显卡上,也配备了高速DDR RAM来提高带宽,这可以大幅度提高3D加速卡的像素渲染能力。 

    flash

    • FLASH存储器又称闪存,它结合了ROM和RAM的长处,不仅具备电子可擦除可编程(EEPROM)的性能,还不会断电丢失数据同时可以快速读取数据(NVRAM的优势),U盘和MP3里用的就是这种存储器。在过去的20年里,嵌入式系统一直使用ROM(EPROM)作为它们的存储设备,然而近年来Flash全面代替了ROM(EPROM)在嵌入式系统中的地位,用作存储Bootloader以及操作系统或者程序代码或者直接当硬盘使用(U盘)。 
    • 目前Flash主要有两种NOR FlashNADN Flash
    • NOR Flash的读取和我们常见的SDRAM的读取是一样,用户可以直接运行装载在NOR FLASH里面的代码,这样可以减少SRAM的容量从而节约了成本。
    • NAND Flash没有采取内存的随机读取技术,它的读取是以一次读取一块的形式来进行的,通常是一次读取512个字节,采用这种技术的Flash比较廉价。用户不能直接运行NAND Flash上的代码,因此好多使用NAND Flash的开发板除了使用NAND Flah以外,还作上了一块小的NOR Flash来运行启动代码。 
    • 一般小容量的用NOR Flash,因为其读取速度快,多用来存储操作系统等重要信息,而大容量的用NAND FLASH,最常见的NAND FLASH应用是嵌入式系统采用的DOC(Disk On Chip)和我们通常用的'闪盘',可以在线擦除。目前市面上的FLASH 主要来自Intel,AMD,Fujitsu和Toshiba,而生产NAND Flash的主要厂家有Samsung和Toshiba。

    Nandflash和No人flash最大区别:

    • 容量的大小:Norflash容量小,约有64K~2M,Nandflash,约128M~256G。
    • 因此Norflash一个地址对应一个空间,可直接访问,Nandflash无法直接访问。
    • Nandflash容易有坏块,需要通过软件格式化。
    • 价格上Norflash>Nandflash
    展开全文
  • STM32内存结构总结

    千次阅读 2019-02-11 17:11:14
    STM32内存结构总结 文中引用图片来源与网络 本文由各方面资料整理而成 文章目录STM32内存结构总结0.STM32内存结构图1.要点1.1 两种存储类型: RAM 和 Flash1.2 六类存储数据段: .data/.bss/.text/.constdata/...
  • ...1、msp430的存储结构采用冯.依曼结构,即RAM和Flash在同一个寻址空间内统一编址,没有代码空间和数据空间之分。...2、Flash是以段为为基本结构进行存储的。总体上分三部分:  Flash主存储区: 用于存储程
  • TC297内存结构

    2020-10-14 19:11:46
    主要负责Flash Memory 和 BootRom的控制,并把他们连接到SRI CrossBar. SPB: System Peripheral Bus; SRI: Shared Resource Interconnect; ECC: Error Correction Code; HSM: Hardware Security Module; UCB: User ...
  • flashcache正常运行期间,需要消耗内存内存中有数据结构管理这些cache block,如下所示: order = dmc->size * sizeof(struct cacheblock); struct cacheblock { u_int16_t cache_state; int16_t nr...
  • 内存FLASH的区别

    千次阅读 2015-06-29 00:08:18
    在计算机的组成结构中,有一个很重要的部分,就是存储器。存储器是用来存储程序和数据的部件,对于计算机来说,有了存储器,才有记忆功能,才能保证正常工作。存储器的种类很多,按其用途可分为主存储器和辅助存储器...
  • 1. 内存工作原理 2. Flash工作原理 3. Optane工作原理 4. 对比 5. 总结 ...内存的工作原理及时序介绍 ...内存是PC配件中结构最简单的,但在BIOS中却是最难调的,很多玩家超频都卡在内存
  • 在 Linux 内核中,引入 MTD(内存技术设备) 层为 NOR Flash 和NAND Flash 设备提供统一的接口,使得 Flash 驱动的设计工作大为简化。 1、 Linux Flash 驱动的结构,主要讲解MTD 系统的层次结构和接口。 2、讲解...
  • 目录: 第一章 绪论 1.1 课题来源 1.2 研究背景与意义 1.2.1 Flash介绍 1.2.2 NAND Flash介绍 1.2.3 NAND Flash与NOR Flash比较 ...第二章 NAND Flash结构与原理 2.1 NAND Flash种类 2.1.1 ...
  • Flash内存知识点整理

    2019-07-21 12:27:57
    结构: 是一个浮栅晶体管。(被一个提供比电子电路常用电压还高的电压的电子器件所编程) d.可擦除性: EPROM只能通过强紫外线照射来擦除即删除数据(由于被提供高电压电子器件所编程) e.识别: 通过封装顶部...
  • 1 内部FLASH内存地址定义图 片外OAD同时拥有片上flash memory和片外flash memory device。 内部FLASH包含如下组件 1 interrupt vectors(0x00000-0x01000) 共1页 2 application(0x01000 - 0x0f000)...
  • CC2540 内存结构分析

    2016-11-21 14:25:10
    cc2540有4个存储类型:CODE, DATA, ... CODE代码区的映射方式有两种:第一种是默认的,即CODE地址区域全部映射到FLASH,用于存储代码,如上图;第二种用于从SRAM执行代码,因此部分SRAM存储空间的地址会被映射到CO
  • 在计算机的组成结构中,有一个很重要的部分,就是存储器。存储器是用来存储程序和数据的部件,对于计算机来说,有了存储器,才有记忆功能,才能保证正常工作。存储器的种类很多,按其用途可分为主存储器和辅助存储器...
  • U-boot内存结构

    千次阅读 2010-05-18 13:36:00
    当然这应该也是一般的bootloader的执行方式,大家都差不多,但是各个bootloader的内存规划(栈,堆之类的)也 不太一样,而且u-boot还在内存空间中规划了一些用于存放环境变量和一些数据结构的空间,所以如果不了解...
  • 先拆开来看看,我们以3725为例,注意,路由器不通型号硬件不同,硬件种类和结构也不同;比如flash,同样是cisco的产品中,有些是成卡状的,象CF卡,有些是成条状的;又如内存,有些是类笔记本的小条;有些是类PC的...
  • 在计算机的组成结构中,有一个很重要的部分,就是存储器。存储器是用来存储程序和数据的部件,对于计算机来说,有了存储器,才有记忆功能,才能保证正常工作。存储器的种类很多,按其用途可分为主存储器和辅助存储器...
  • u-boot的内存分布和全局数据结构

    千次阅读 2013-03-10 16:36:54
    当然这应该也是一般的bootloader的执行方式,大家都差不多,但是各个bootloader的内存规划(栈,堆之类的)也 不太一样,而且u-boot还在内存空间中规划了一些用于存放环境变量和一些数据结构的空间,所以如果不了解...
  • 在计算机的组成结构中,有一个很重要的部分,就是存储器。存储器是用来存储程序和数据的部件,对于计算机来说,有了存储器,才有记忆功能,才能保证正常工作。存储器的种类很多,按其用途可分为主存储器和辅助存储器...
  • 总结内存(RAM或ROM)和FLASH存储的真正区别

    千次阅读 多人点赞 2019-07-04 11:31:41
    本文主要向大家介绍了内存(RAM或ROM)和FLASH存储的真正区别,通过具体的分析,让大家能够了解它们,希望对大家学习内存(RAM或ROM)和FLASH存储有所帮助。 1.什么是内存 什么是内存呢?在计算机的组成结构中,有一个很...
  • U-Boot系列之一: S3C2410内存映射结构

    千次阅读 2010-10-22 14:53:00
    这片文章主要介绍S3C2410的内存映射,主要参考2410的用户手册。   我用的板子是基于三星的2410,三星的内存片选有8个bank,这里所谓的bank我开始也不是很清楚,在网上搜了一通也不知所云,但是当我看了 2410的...
  • 在计算机的组成结构中,有一个很重要的部分,就是存储器。存储器是用来存储程序和数据的部件,对于计算机来说,有了存储器,才有记忆功能,才能保证正常工作。存储器的种类很多,按其用途可分为主存储器和辅助存储器...
  • 内存(RAM或ROM)和FLASH存储的真正区别总结 1.什么是内存 什么是内存呢?在计算机的组成结构中,有一个很重要的部分,就是存储器。存储器是用来存储程序和数据的部件,对于计算机来说,有了存储器,才有记忆功能,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 564
精华内容 225
关键字:

内存flash结构