首页 > 生活常识 >

rom是什么存储器(单片机ROM,RAM都是干啥的?)

100次浏览     发布时间:2024-08-07 12:31:16    


常规上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既可以从里面读出数据,又可以往里面写入数据,掉电后数据不保存,这是条永恒的真理,始终记挂在心。

相关文章
物业为什么不让封阳台原因(物业不让“封阳台”)
生活常识 2025-04-02
发财树为什么叶子打蔫(发财树有“6怕”,避开不黄叶不烂根)
生活常识 2025-04-02
木地板为什么会有缝隙怎么处理(实木地板都会出现缝隙吗?)
生活常识 2025-04-01
为什么led灯一直闪(LED灯光频闪带来的危害不可不知)
生活常识 2025-04-01
台湾茶为什么好喝(简单梳理一下台湾茶)
生活常识 2025-04-01
白掌为什么花变绿了(白掌开花之后变绿?)
生活常识 2025-04-01
为什么新娘出嫁要打伞(无法解释的玄学规律: 1、结婚时用的红伞)
生活常识 2025-04-01
为什么蹲马桶会腿麻(为什么“蹲厕所”时间久了会腿麻?)
生活常识 2025-03-31
铝为什么贵(市场铝价的走高,是原料短缺还是资金炒作)
生活常识 2025-03-31
为什么要收物业费(物业收取的物业费是用来干什么的?)
生活常识 2025-03-31
文竹为什么发黄(养文竹千万别做这3件“傻事”,容易黄叶)
生活常识 2025-03-31
火车没到站为什么会停(“为什么列车有时会临时停车?)
生活常识 2025-03-31
贷款搭桥是什么意思(过桥贷款过河拆桥?)
生活常识 2025-03-30
信用卡有什么等级(信用卡一般年费是多少?要看卡片等级种类)
生活常识 2025-03-30
办车险是要问什么(投保车险需要注意什么?)
生活常识 2025-03-30
什么是半年计息(金融借款合同纠纷之利息、罚息、复利的计算)
生活常识 2025-03-30
管理者的基本素质和方法(平易近人,管理者必备的素质要求)

网站内容来自网络,如有侵权请联系我们,立即删除!
Copyright © 内百科 鲁ICP备2023048205号-2