半导体存储器
一、
分为两部分存储器
①RAM(随机存储器)
而RAM又包含DRAM和SRAM
DRAM又可分成SDRAM和DDR SDRAM
②ROM(只读存储器)
ROM又可细分为 :固定ROM(掩模ROM)、PROM、EPROM、EEPROM、Flash ROM
而Flash ROM又可分为NOR Flash ROM和NAND Flash ROM
从内容和定义上了解存储器
存储器从数据存储特点上可以分为挥发性存储器(也就是易失性存储器)和非挥发性存储器(也就是非易失性存储器)
挥发性存储器(也就是易失性存储器):也就是当系统关机断电后,数据将不会被保存,所有存储在挥发性存储器里的数据将全部丢失
非挥发性存储器(也就是非易失性存储器):断电数据依然被保留
按存储器读写特性又可以分为:随机存储器(RAM)
和只读存储器(ROM)
RAM也可以称为读写存储器
同时 RAM又分为:
静态存储器(SRAM)
动态存储器(DRAM)
而ROM分为
①固定ROM(也称为掩模ROM)(只读存储器)
②PROM:只能编程一次(所以称为只能编程一次的ROM)
③EPROM :需要利用紫外线擦除后才能再次编程,所以称为紫外线擦除ROM
④EEPROM:电擦除可编程ROM
⑤Flash ROM:也称为快闪ROM
二、
而我们最常使用的stm32fzet6里的zet6芯片自带
64k字节的SRAM以及512K的内部FLASH
而开发板上还有
外扩 SRAM:IS62WV51216,1M 字节
外扩 SPI FLASH:W25Q128,16M 字节
足够大供大家使用
而如果大家还是觉得不够大的话 可以插上stm32的外扩SD卡
一般SD容量可达128G
三、
平常我们编程时那些变量是存储在哪里的呢?
大家应该都知道了RAM是分动态存储区和静态存储区的
静态存储器是在我们整个程序执行完后才会把里面的数据释放
而动态存储器是当部分函数执行完后定义在函数里的变量就会被释放
而当我们编程时有 c语言一个特殊的关键字提供给我们static来让我们把变量存储在静态存储区里
其实当我们编程时我们定义的那些全局变量都是自动随机分配到静态存储器里的不需要我们特殊定义
而我们定义的局部变量就不一样了 ,局部变量如果不特殊定义,一般是存储在动态存储器里的,即定义在某个函数里,该函数执行完后里面定义的局部变量就会被释放
四、
我们平常下载程序下载到芯片的哪里呢?
flash即(也就是)ROM
下载到flash里的:
①代码
②程序定义的常量
③已初始化的非0全局变量,当程序初始化时会拷贝到RAM中去
下载到RAM里的:
静态存储器:
①已初始化的全局变量
②特殊定义的局部变量(static)
动态存储器:
①已初始化的局部变量