ROM(Read Only Memory)只读存储器
ROM又称只读存储器,它是一种只能读出事先所存的数据的固态半导体存储器。只能读出信息而无法写入信息,信息一旦写入后就固定下来,即使切断电源,数据也不会丢失,所以又称固定存储器。ROM所存数据通常是装入整机前写入的,整机工作过程中只能读出,不想随机存储器随意改写存储内容。结构简单,常用于存储各种固化程序和数据。
MASK POM掩膜编程的只读存储器
MASK ROM中存储的信息有生产厂家在掩膜工艺中吸入。内容固定,掉电后信息依旧存在,信息一次写入后就不能修改。
PROM(Programmable ROM)可编程只读存储器
PROM称为可编程只读存储器,允许用户通过专用的设备(编程器)一次性写入自己所需要的信息,一般可编程一次,PROM出厂时各个存储单元皆为1或0。
PROM种类较多,需要用电或光照的方法来编写与存放的程序和信息,但仅仅只能编写一次,第一次写入的信息就被永久性的保存下来。
EPROM(Erasable Programmable Read Only Memory)可编程可擦除只读存储器
EPROM可以多次编程,是一种以读为主的可写可读的存储器,用户可以根据自己将自己的内容去擦除ROM。EPROM比PROM跟家灵活,但是采用MOS管,速度较慢。其需先通过紫外线灯方法将原存的信息擦除,然后用写入器重新写入信息。
EEPROM(Electrically Erasable Programmable Read-Only Memory)电可擦除可编程只读存储器
EEPROM是一种随时可写入而无需擦除原先内容的存储器,其写操作比读操作时间要长得多。修改时只需使用普通的控制、地址和数据总线。
RAM(Random Access Memory)随机访问存储器
RAM也叫主存,是与CPU直接交换数据的内部存储器。可以随时读写,速度很快。通过作为操作系统或其他正在运行中的程序的临时数据存储介质。RAM工作时,可以随时从任何一个指定的地址写入或读出数据。但是,RAM有数据易失性,一旦断电所存储的数据将随之丢失。RAM在计算机和数字系统中用来暂时存储程序、数据和中间结果。
SRAM静态随机存储器
静态随机存储器 SRAM 的存储单元以锁存器来存储数据,见图 23-4。这种电路结构不 需要定时刷新充电,就能保持状态(当然,如果断电了,数据还是会丢失的),所以这种存 储器被称为“静态(Static)”RAM。
DSAM动态随机存储器
动态随机存储器 DRAM 的存储单元以电容的电荷来表示数据,有电荷代表 1,无电荷 代表 0,见图 23-2。但时间一长,代表 1 的电容会放电,代表 0 的电容会吸收电荷,因此 它需要定期刷新操作,这就是“动态(Dynamic)”一词所形容的特性。
FLASH(FLASH EEPROM)存储器
Flash存储器又称闪存,是EEPROM的一种,结合了ROM和RAM的长处,不仅具备电可擦除(EEPROM)的性能,还不断电丢失数据同时可以快速读取数据。与EEPROM的区别是,FLASH按扇区(block)操作,EEPROM按照字节操作。FLASH常常用于程序存储器。
在STM32中的体现
在stm32以及各类单片机芯片的数据手册中,都会包含FLASH以及SRAM的大小信息。
FLASH存放编写好的程序
SRAM,程序的变量以及堆栈的开销都用到了它。
在Keil中进行编译时,会出现以下信息
其中:
code:是程序中代码所占字节大小
RO-data:程序只读的变量,指的是带const以及已初始化的字符串等
RW-data:已初始化的可读写全局/静态变量
ZI-data:未初始化的可读写全局/静态变量
程序所占FLASH空间大小=Code+RO-data+RW-data
程序固定占用RAM大小=RW-data+ZI-data