51单片机(stc12系列) 想知道单片机的内存到底是如何分配的?

2024-11-24 00:48:39
推荐回答(2个)
回答1:

51单片机哪有内存?
1.程序在EPROM里,flash是扩展的存储器,不是直接寻址,不能用来运行程序,通常存放字库临时数据,报告之类的东西。
2. 程序运行时的数据(静态变量,自动变量之类)在RAM里。
3. RAM,就是程序运行时用到的数据存在里面(这些数据程序不运行就不存在),说白里就是静态变量,自动变量这些。。。SRAM是静态存储器,和RAM只是物理原理上的不通,对于编程者用途是一样的。。。
4. 单片机的FLASH很多只是类似U盘的功能NAND flash,不具备随机存取的能力,也不能运行程序,一些不常用的或数据比量较大的比如字库,或者运行报告(比如程序要记账,定时有人员要查账之类的),运行参数之类的会考虑在这里放。。。
还有单片机因为简单速度慢,程序是放在EPROM里,一些其他芯片会放在NOR FLASH里,如果非常高速的芯片,会有较大的RAM,程序会在RAM里运行,比如计算机内存,就属于RAM,现在大多数电脑都是4G内存。。。RAM最大特点是断电数据消失,但存取速度最快,高速的处理器都会考虑程序和运行时的数据都放在外部RAM里。。。

回答2:

  1. 程序储存器就是FLASH,这个你的理解是对的。

  2. 这里你说的数据是什么数据?这个要明确。STC里所谓的EEPROM,实际就是FLASH,从非易失性角度来说也勉强能用。因为用了FLASH来模拟EEPROM功能所以也就有扇区这个概念了。

  3. 普通变量一般都存在RAM里..。这里你说的RAM,SRAM那应该是内部RAM跟外部RAM了。SRAM速度比较慢,容量大,所以一般需要变量数据量大的时候使用SRAM.STC里超过了AT单片机规格部分的RAM一般都是用外部RAM访问的方法来访问。

  4. 是的,只有FLASH。。但是如果你需要保存的非易失性数据量不大你可以一个扇区存一个字节。这样就可以实现字节擦写了。就相当于EEPROM。