历史上的今天
今天是:2024年11月04日(星期一)
2020年11月04日 | 51单片机中的ROM和RAM分别是什么?
2020-11-04 来源:51hei
众所周知,51 内部的存储器分为数据存储器 RAM 和程序存储器 ROM。以 AT89c51 为例,其中有 128 字节随机存储器(又称数据储存器 RAM)和 4K 字节的只读存 储器(又称程序存储器 ROM)。
先说说这个 4K 字节的程序存储器或者说只读存储器,我们写的程序经过编译器 编译成机器码都是存在这个区域,所以称为程序存储器;但单片机上电执行的时 候,此区域内的数据只能读取而不能写入,他的只读存储器的名称从这而来。
89c51 的 ROM 采用的是 FPEROM(Flash Programmable and Erasable Read Only
Memory),具体工艺我也不太清楚,号称可以擦写 1000 次,也就是说你每天写
30 次,一个多月就报废了。
在说说 128 字节的随机存储器或者说数据存储器,程序运行过程中,一些中间变 量存储在这个地方,也能从这个地方获取需要运算的值,所以称之为随机存储器, 也称为数据存储器。个人觉得相当于计算机的内存,掉电丢失。
看看 MSC-51 指令就知道,所有的数据移动指令都是对 RAM 区操作的,就是因为 无法改变 ROM。
51 内部的存储器在物理上可分为 4 个区域:片内 ROM,片外 ROM,片内 RAM 和片外 RAM。从逻辑上可分为三个区域,64KB 片内外统一编址的程序存储器(ROM),
128 字节或 256 字节的片内数据存储器(RAM),64KB 片外数据存储器(RAM)。
对应的 keil 编译器关键字为:
data : 片内数据存储器(RAM)低 128 字节(51 系列片内只有 128 字节,52 系列有 256 字节)
bdata: 可位寻址的片内 RAM 以上两种类型可以快速的存取数据,常用来放临时性的传递变量或使用频率较高 的变量。
idata : 片内数据存储器(RAM)256 字节
xdata: 片外数据存储器 64KB
pdata: 片外数据存储器低 256 字节
code: 64KB 程序存储器(如果变量定义在这个空间,后面就不能修改了,如果 有语句改变它的值,编译器就会报错。)
此外,C51 还有三种存储模式(这是在开发环境里面设置的):SMALL, COMPACT,
LARGE
SMALL 模式下,如果不做特别说明,参数及局部变量默认为 data 型,放在片内 RAM128 字节内,访问迅速。由于内部的 RAM 有限,如果变量过多,会导致频 繁的使用寄存器,而使代码变的冗长。此时栈也在片内的 RAM,栈长很关键, 因为栈长依赖于不同函数的嵌套层数。
COMPACT:不做特别说明,参数及局部变量默认为 pdata,栈空间在内部 RAM。
LARGE:参数及局部变量默认为 xdata,使用 DPTR 来寻址。访问效率低,此外这 种数据指针不能对称操作。
全局变量会根据定义的类型或者存储的模式分配在相应的存储区内,有固定的地 址,如果全局变量过多则会导致占用太多内存,处理速度变慢。
史海拾趣
|
因为有时候用户可能翻页的速度很快 我必须速度准备好图片,但是有时候图片实在太大了 需要等待很久(比如说一秒) 目前IPHONE 在滑动过快的时候 是显示一张比较模糊的图片,不晓得是怎么实现的 大家有什么好方法 进来talk talk… 查看全部问答> |
|
boot.hv是放在HIVE BOOT SECTION ;END BOOT SECTION之间的,在系统启动的时候实现加载! 那么,在注册表中的其它部分是怎么确认分别归属于default.hv和user.hv的, 是不是有什么标签? … 查看全部问答> |
|
-------首先要谢谢EEWorld和SEED对我的信任,给了我这个难得试用的机会。对于规模较小的公司来说,设计完整,做工精炼的开发板都是一项不小的开销,何况是对于工程师个人。所以EEWorld和SEED能提供这样的试用机会,我十分高兴也很兴奋。第二,说说 ...… 查看全部问答> |
|
我用STM207,写EEPROM时会导致CPU复位,,不知是何故,, 只要把串口通讯线接上, 一写EEPROM就会死机复位,,,. 拔掉好像不死,,,,怎么会这样,,,,哪位高人请指点指点… 查看全部问答> |
|
红色部分用IAR编译的时候提示 undefined,换成绿色的却没有问题?? void NVIC_Configuartion(void) { NVIC_InitTypeDef NVIC_InitStructure; /*Config the NVIC Preemption Priority Bits*/ NVIC_PriorityGrou ...… 查看全部问答> |




