前言
在嵌入式开发中,大家都会涉及到操作内存,例如烧录程序、断电记忆读写FLASH、堆栈使用。本文主要讲解,这些常用的ROM RAM FLASH到底有什么区别,使用时需要注意些什么
ROM RAM FLASH含义
ROM:只读内存,最早的PROM,只能编程一次,无法重复写入,所以较为只读内存,后面发展出紫外线照射下可写可擦的EPROM,但由于擦写麻烦又发展出了EEPROM,电可擦的ROM。
RAM:随机存储器,可按字节读写,读写速度块,但有缺点,掉电会丢失数据。
FLASH:可擦可写。断电不丢失数据;EEPROM的一种,操作的最小内存大小为扇区/block,不同厂商叫法不一致,又分为NAND FLASH,NOR FLASH。
为了更好的区分和使用这几种存储介质,可以看下图:
经过上述框图的分类,大家应该对这几种内存的基本特性有所了解,下面叙述下,实际工作中这些内存是如何使用以及注意事项。
内存使用说明及注意事项
ROM:嵌入式中常用的主控芯片,都带有片内ROM、RAM;有的芯片说自己片内FLASH多大,实际说的是nor flash,也是ROM的一种;ROM一般用于存储我们的boot、应用程序、OTA升级包、应用内存区(用于保存要断电记忆的数据)、加密区等等。
注意事项:FLASH由于本身存储介质的特性,在高低温下、电压不稳时、以及超过擦写寿命后,擦写FLASH会有可能发生擦写错误的情况;由于FLASH操作的最小单元为扇区,那出现过擦现象时,首先此扇区的数据会丢失,另外由于存储介质