产品选型

单片机ram和rom 单片机ROM,RAM都是干啥的?

小编 2024-10-06 产品选型 23 0

单片机ROM,RAM都是干啥的?

常规上ROM是用来存储固化程序的,RAM是用来存放数据的。譬如说,现在家用的电子式电度表,它的内核是一款单片机,该单片机的程序就是存放在ROM里的。电度表在工作过程中,是要运算数据的,要采集电压和电流,并根据电压和电流计算出电度来。电压和电流时一个适时的数据,用户不关心,它只是用来计算电度用,计算完后该次采集的数据就用完了,然后再采集下一次,因此这些值就没必要永久存储,就把它放在RAM里边。然而计算完的电度,是需要永久保存的,单片机会定时或者在停电的瞬间将电度数存入到FLASH里。

--ROM存放指令代码和一些固定数值,程序运行后不可改动;RAM用于程序运行中数据的随机存取,掉电后数据消失..

code就是指将数据定义在ROM区域,具只读属性,例如一些LED显示的表头数据就可以定义成code存储在ROM。

ROM:(Read Only Memory)程序存储器

在单片机中用来存储程序数据及常量数据或变量数据,凡是c文件及h文件中所有代码、全局变量、局部变量、’const’限定符定义的常量数据、startup.asm文件中的代码(类似ARM中的bootloader或者X86中的BIOS,一些低端的单片机是没有这个的)通通都存储在ROM中。

RAM:(Random Access Memory)随机访问存储器

用来存储程序中用到的变量。凡是整个程序中,所用到的需要被改写的量,都存储在RAM中,“被改变的量”包括全局变量、局部变量、堆栈段。

程序经过编译、汇编、链接后,生成hex文件。用专用的烧录软件,通过烧录器将hex文件烧录到ROM中(究竟是怎样将hex文件传输到mcu内部的ROM中的呢?),因此,这个时候的ROM中,包含所有的程序内容:无论是一行一行的程序代码,函数中用到的局部变量,头文件中所声明的全局变量,const声明的只读常量,都被生成了二进制数据,包含在hex文件中,全部烧录到了ROM里面,此时的ROM,包含了程序的所有信息,正是由于这些信息,“指导”了CPU的所有动作。

可能有人会有疑问,既然所有的数据在ROM中,那RAM中的数据从哪里来?什么时候CPU将数据加载到RAM中?会不会是在烧录的时候,已经将需要放在RAM中数据烧录到了RAM中?

要回答这个问题,首先必须明确一条:ROM是只读存储器,CPU只能从里面读数据,而不能往里面写数据,掉电后数据依然保存在存储器中;RAM是随机存储器,CPU既可以从里面读出数据,又可以往里面写入数据,掉电后数据不保存,这是条永恒的真理,始终记挂在心。

单片机知识 存储器RAM和ROM

定义:

RAM:随机存取存储器(Random Access Memory,缩写:RAM),也叫主存,是与CPU直接交换数据的内部存储器。它可以随时读写(刷新时除外),而且速度很快,通常作为操作系统或其他正在运行中的程序的临时数据存储介质。

ROM:只读存储器(Read-Only Memory,ROM)以非破坏性读出方式工作,只能读出无法写入信息。信息一旦写入后就固定下来,即使切断电源,信息也不会丢失,所以又称为固定存储器。

在单片机的内部结构中,很多人分不清楚RAM和ROM的区别在哪里,甚至经常将它们两个搞混,所以今天我们就来深入了解下这两者之间有什么区别,具体的功能特征是什么。

我们知道单片机主要作用就是对信息数据的处理,而在处理数据的过程中,需要一个“容器”来存放这些数据。这个容器就是存储器。存储器的物理实质是一组(或多组)具备数据输入/输出和数据存储功能的集成电路,用于充当设备缓存或保存同定的程序及数据。存储器按存储信息功能的不同,可分为只读存储器ROM和随机存储器RAM。

如何区分RAM和ROM呢?举个例子,我们在购物平台买电脑或手机时商家会列出多种版本,有8GB+256GB 、12GB+512GB、16GB+240GB等多种版本可选择,而这里面的8GB+256GB就是我们说的存储器RAM和ROM的储存容量。我们只需记住一点,不论是手机和电脑,容量比较小的那个一定是RAM,而容量大的那个则是ROM。

RAM就是我们平时说的运行内存,它根据存储单元的工作原理不同可分为静态随机存储器(SRAM)和动态随机存储器(DRAM),如芯海8位单片机CSU8RP3216中就内置128字节的静态数据存储器(SRAM)。因RAM具有随时可读写的功能,所以通常作为操作系统或其他正在运行中的程序的临时数据存储介质,又因为它切断电源后不会保存数据,所以又被称易失性存储器。

RAM的功能特点如下:

随机存取 :随机存取指的是当存储器中的数据被读取或写入时,所需要的时间与这段信息所在的位置或所写入的位置无关。相对的,读取或写入顺序访问(Sequential Access)存储设备中的信息时,其所需要的时间与位置就会有关系。它主要用来存放操作系统、各种应用程序、数据等。

易失性: 当切断电源后,RAM里面所储存的数据也将随之消失。所以它一般用来暂时储存程序、数据和中间结果,如果要长期保存数据的话需要将数据写入一个长期的储存设备中。

对静电敏感 :与其他的集成电路一样,RAM对环境的静电荷也非常敏感。静电会干扰存储器内电容器的电荷,引致数据流失,甚至烧坏电路。故此触碰随机存取存储器前,应先用手触摸金属接地。

访问速度 :现代的随机存取存储器几乎是所有访问设备中写入和读取速度最快的,存取延迟和其他涉及机械运作的存储设备相比,也显得微不足道。

需要刷新 :现代的随机存取存储器依赖电容器存储数据。电容器充满电后代表1(二进制),未充电的代表0。由于电容器或多或少有漏电的情形,若不作特别处理,数据会渐渐随时间流失。刷新是指定期读取电容器的状态,然后按照原来的状态重新为电容器充电,弥补流失了的电荷。需要刷新正好解释了随机存取存储器的易失性。

和RAM相比,ROM在断电以后保存在上面的数据不会自动消失,可以长时间断电保存。它的特点表现为只能读出而不能写入信息,通常在电脑主板的ROM里面固化一个基本输入/输出系统,称为BIOS(基本输入输出系统)。其主要作用是完成对系统的加电自检、系统中各功能模块的初始化、系统的基本输入/输出的驱动程序及引导操作系统。

相关问答

单片机 flash 和ram / ROM 的不同-ZOL问答

单片机的ROM,叫只读程序存储器,是FLASH存储器构成的,如U盘就是FLASH存储器。所以,FLASH和ROM是同义的。单片机的程序,就是写到FLASH中了。而RAM是随机读/写存...

单片机ram 数据是从 rom 中调出的吗?

不是,ram是读写存储器,rom是只读存储器。不是,ram是读写存储器,rom是只读存储器。

单片机 ROM RAM EEPROM FLASH 有什么关系和不同?-ZOL问答

关系为:它们都是单片机系统的存储器区别主要是他们的用途不同:现在的单片机,RAM主要是做运行时数据存储器,FLASH主要是程序存储器,EEPROM主要是用以在程序运行...

ram 单片机 的区别?

1.RAM和单片机是不同的电子元件,在处理方式、作用等方面存在区别。2.RAM,即“随机访问存储器”,是指计算机内部一种用于临时存储数据或指令的存储器件,使用随...

8051 单片机 rom和ram 最大容量?

8051单片机片内ROM最大容量是64K字节,片内RAM最大容量是256字节。有些新研制的51单片机还在片内增加了扩展RAM,目前最大容量已达8K字节。对于这种新研制的51...

8051 单片机RAM和ROM 是统一编址的么 - 158****4882 的回答 - 懂得

8051ROM和RAM地址各自独立,可以重叠所以都可以扩展到0000H~FFFFH。不是。是独立的不是,它们是各自独立的

51 单片机 如何访问外部 ROM 及外部 RAM ?

访问外部ROM指令为MOVC,比如:CLRAMOVPDTR,#1000HMOVCA,@A+DPTR访问外部RAM指令为MOVX,比如:MOVDPTR,#2000HMOVXA,@D...

单片机 的物理存储器分别为?

物理存储器有RAM和ROM物理存储器有RAM和ROM

单片机 内部由哪几部分构成?各部分电路的主要功能是什么?_作业帮

[最佳回答]单片微型计算机是制作在一块集成电路芯片上的计算机,简称单片机.它包括微处理器(CPU),用RAM构成的数据存储器,用ROM构成的程序存储器,定时/计数器,...

单片机 芯片之间的区别?

单片机芯片和普通芯片之间存在显著的区别。1.功能不同:单片机芯片是集成电路芯片,通过超大规模集成电路技术将CPU、RAM、ROM、多种I/O和中断系统等功能集成...

猜你喜欢