一、存储器特性
1)易失性:掉电数据会丢失,通常指RAM;
RAM分为SRAM、DRAM
SRAM:静态RAM,只要上电数据就不会丢失;
DRAM:动态RAM,需要每隔一段事件刷新数据,否则数据会丢失。电脑内存条DDR
2)非易失性:掉电数据仍然可以保存,通常指ROM。
最初的ROM只读或可写一次然后只读;后来,发展出电可擦除即EEPROM,从此“ROM只读存储器”只是名义上的只读,实际就是可读可写。EEPROM可对指定字节进入擦除写入。
再后来,FLASH闪存出现了,以块为单位擦除,使得存储的数据密度更高,成本更低;
FLASH分为Nor FLASH和Nand FLASH:Nor FLASH可以以字节为单位读取,Nand FLASH是以块为单位读取数据;
STM32的FLASH类型属于NOR FLASH,RAM类型属于SRAM。FLASH一般用于存放代码,RAM一般用于存放数据。FLASH亦可用于存储数据,当使用FLASH存储数据时,对FLASH写会造成总线被占用其它外围外设全部停止工作异常,因此在写FLASH时需要注意对程序的影响。
二、FLASH特性
扇区、块这些专用名词,其实是从早期的软盘、硬盘等存储器发展而来,目的是将一个存储器划分为多个(扇区、块)区域,更方便的编程管理这些存储单元。
1)页(Page)
Flash存储器中一种区域划分的单元,好比一本书中一页(其中包含N个字)。
比如:STM32F1中小容量芯片内部Flash,1K字节为1页,整个Flash分为32页(当然,不同容量的芯片,页数不同)。
2)扇区(Sector)
扇区和页类似,也是一种存储结构单元,只是扇区更常见,大部分Flash主要还是以扇区为最小的单元。
比如:W25Q256芯片以4KB为1扇区。
如上图可看出0000H~00FFH 256字节为一页,1个扇区有16页。
3)块(Block)
块,比扇区更高一个等级,一般1块包含多个扇区。同样,以上图W25Q256芯片为例:1块包含16个扇区。
不同厂家的、不同类型存储器的划分方式不同,有的以页为最小单元,有的以扇区为最小单元,但大部分都以扇区为最小单元,最小单元即指最小擦写单位。注:使用FLASH存储数据时需要注意跨页还有FLASH操作以最小单位的问题。