最近学51单片机,关于单片机的各种存储器,我迷茫啊,ROM ,RAM ,FLASH ROM,求高人解释

有人这样解释:常规上ROM是用来存储固化程序的,RAM是用来存放数据的。由于FLASH ROM比普通的ROM读写速度快,擦写方便,一般用来存储用户程序和需要永久保存的数据。譬如说,现在家用的电子式电度表,它的内核是一款单片机,该单片机的程序就是存放在ROM里的。电度表在工作过程中,是要运算数据的,要采集电压和电流,并根据电压和电流计算出电度来。电压和电流时一个适时的数据,用户不关心,它只是用来计算电度用,计算完后该次采集的数据就用完了,然后再采集下一次,因此这些值就没必要永久存储,就把它放在RAM里边。然而计算完的电度,是需要永久保存的,单片机会定时或者在停电的瞬间将电度数存入到FLASH里。
这种解释对不对?那固化程序和用户程序什么区别?我自己开发的单片机程序应该是用户程序吧?什么是固化程序呢?请高人详细解疑答惑......感谢!

1.单片机就是
一个CPU
+ROM(flash,相当于BIOS+硬盘)
+RAM(相当于内存条)
+外设(A/D、D/A、其他驱动器)

2.程序分系统管理程序和应用程序
系统管理程序相当于监控功能与接口调用(如bios和微软系统),但不是必须,完善的系统才有
应用程序指你编写的(一般经过编译系统编译,就把所有的都带上了,所以不要系统也可以运行 )
其实计算机无非就是一个从某个地址开始运行的“无限状态机”!!!OS+应用程序构成了无限状态。

而如果没有应用程序,则本质上OS是一个基于消息的大循环(所有操作系统都不例外)
没有用OS的时候,你开发的单片机程序是一个操作系统+应用程序的混合物!
固化就是用各种办法写入到非易失存储器(EPROM、ROM、FLASH、电阻排等等)的过程
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-06-23
|ROM:只读存储器,我们也可以叫光盘为ROM
RAM:可重写存储器。
以上是存储器的分类,与你怎么使用无关。
FLASH ROM,也是可以重写的,但是也叫做ROM,这是使用习惯造成的。
RAM 一般用于CPU的缓存,必须有
ROM 一般用于存储代码与数据 ,所以FLASH ROM,也是可以重写的,但是也叫做ROM。
单片机的程序都是固化在ROM里面的,固化的程序分为操作系统程序与用户程序。
----------------------
原创,希望有帮助。
第2个回答  2011-06-23
有人这样解释:常规上ROM是用来存储固化程序的,RAM是用来存放数据的。
由于FLASH ROM比普通的ROM读写速度快,擦写方便,一般用来存储用户程序和需要永久保存的数据。
-------
这个说法,要是把“固化”改成“固定”,就好理解多了。
为什么叫固定呢?因为ROM不怕停电,停电后再上电,内容不会丢失。
这样,自己开发的单片机程序应该是“固定程序”,应该存入到ROM。
怎样把自己的程序写入ROM呢,另外还专门有一个写入程序。
这个写入程序,应该称为“固化”程序,它一般是存在电脑的硬盘里面。
-------
FLASH ROM,是近几年得到广泛应用的芯片,它和早期的ROM一样,不怕掉电,所以可以存放“固定”程序,又因为它便于改写,所以也可存放临时的数据。本回答被提问者和网友采纳
第3个回答  2011-06-23
这种解释……科普性质吧,不严格深究的话,大体上算是正确。
按此列出的电度表例子中,所谓固化程序就是用户程序。
就概念而言,固化程序一般是指极少修改、在上电或复位后最先运行的程序块,例如Bootloader;用户程序指实现具体的应用功能、可能频繁修改的程序块。例如某类型单片机中同时包含有Boot ROM和Flash,我们可以说其Boot ROM存储的就是固化程序,而Flash就是用于存储用户程序。Boot ROM在上电后可以运行片内Flash中的用户程序,也可以通过外部接口(数据总线/以太网/USB/SPI等)将外部的用户程序加载到片内Flash/片内RAM/片外RAM中运行。
第4个回答  2011-06-23
“固化程序”只是一个动作过程,就是把你自己设计的“用户程序”写入到ROM中固定的过程!