简述ROM、RAM和FLASH的区别

一、ROM、FLASH 和 RAM 都是存储器件,以下是它们之间的区别:

1. ROM(Read-Only Memory,只读存储器):ROM是一种只读的存储器,无法被写入新的数据或者修改原有数据,只有在制造时进行编程,通常用于存储启动代码和固化程序,例如BIOS、固件等。

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

PROM(Programmable Read-Only Memory,可编程只读存储器)、EPROM(Erasable,可擦除可编程只读存储器)、EEPROM(Electrically,电可擦除可编程只读存储器)。它们与ROM的关系在于:都是存储器,都能够永久保存在其中存储的数据。但与 ROM 不同的是:它们可以被编程多次,也可以被擦除。

  1. PROM 是一种只能被编程一次的存储器,用于存储在制造过程中不需要经常修改的程序。 在制造时是未编程的,用户需要使用专门的设备将数据编程到 PROM 中,之后就无法修改。PROM的读取速度相对于 ROM 要快。

  2. EPROM 可以被擦除并重新编程多次,可以通过使用紫外线照射擦除其存储的内容。EPROM 的擦写操作比较耗时,在擦写操作前必须将其存储的内容备份,以便在重新编程之后将数据恢复到 EPROM 中。

  3. EEPROM 可以被电擦除,也可以重新编程多次。它的擦写操作速度比 EPROM 要快,而且不需要紫外线进行擦除。EEPROM 可以被编程、擦写和读取,所以被广泛应用于存储上电后程序和数据。

2. RAM(Random Access Memory,随机存取存储器):RAM是计算机中临时存储数据的存储器,用于存放如操作系统、运行程序等等。RAM与ROM和Flash的区别在于,它不是只读存储器,而且存储的数据也可以进行修改。它可以被读写,具有更快的读写速度,但是它是一种易失性存储器,即当电源关闭时,存储在RAM中的数据也就丢失了。 

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

3. FLASH:Flash是一种电子存储设备。它类似于EEPROM,但Flash的操作是以块进行的,而EEPROM的操作逐个字节进行。因此,相对于EEPROM,Flash比较快且密度更高。

Flash通常用于存储用户程序和需要永久保存的数据。。Flash是非易失性存储器,由于具有较长的寿命和更大的存储容量,所以也常用于移动设备和其他嵌入式应用。

例如,现在家用的电子式电度表,它的内核是一款单片机,该单片机的程序存放在ROM中,而电度表工作过程中采集的电压和电流的数据放在RAM中,通过电压电流数据计算出的电度就存放在Flash中。

综上,ROM、Flash和RAM都是不同类型的存储器件,各自具有其特点和应用场景。

二、ROM,RAM和FLASH在单片中的运作原理

三、ROM中包含所有的程序内容,在MCU上电时,CPU开始从第1行代码处执行指令。这里所做的工作是为整个程序的顺利运行做好准备,或者说是对RAM的初始化(注:ROM是只读不写的),工作任务有几项

一参考文章:ROM, FLASH和RAM的区别 - 知乎 (zhihu.com)

二、三内容:(15条消息) 单片机中的ROM,RAM和FLASH的作用_小白study的博客-CSDN博客

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值