找回密码
 注册
关于网站域名变更的通知
查看: 102|回复: 0
打印 上一主题 下一主题

单片机中的ROM和RAM是什么

[复制链接]
  • TA的每日心情

    2019-11-20 15:16
  • 签到天数: 1 天

    [LV.1]初来乍到

    跳转到指定楼层
    1#
     楼主| 发表于 2024-3-27 11:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

    EDA365欢迎您登录!

    您需要 登录 才可以下载或查看,没有帐号?注册

    x
    众所周知,51 内部的存储器分为数据存储器 RAM 和程序存储器 ROM。以 AT89c51 为例,其中有 128 字节随机存储器(又称数据储存器 RAM)和 4K 字节的只读存 储器(又称程序存储器 ROM)。

      x0 B! m- `5 c. ]1 W  m
    先说说这个 4K 字节的程序存储器或者说只读存储器,我们写的程序经过编译器 编译成机器码都是存在这个区域,所以称为程序存储器;但单片机上电执行的时 候,此区域内的数据只能读取而不能写入,他的只读存储器的名称从这而来。

    3 i, Z2 \8 v% _) d, z% [* J. G
    89c51 的 ROM 采用的是 FPEROM(Flash Programmable and Erasable Read Only
    Memory),具体工艺我也不太清楚,号称可以擦写 1000 次,也就是说你每天写
    30 次,一个多月就报废了。
    . L6 ?. U" R. h) H8 `
    在说说 128 字节的随机存储器或者说数据存储器,程序运行过程中,一些中间变 量存储在这个地方,也能从这个地方获取需要运算的值,所以称之为随机存储器, 也称为数据存储器。个人觉得相当于计算机的内存,掉电丢失。

    2 u7 ~, K" ?6 E* Q0 r, o' p& E$ z3 s
    看看 MSC-51 指令就知道,所有的数据移动指令都是对 RAM 区操作的,就是因为 无法改变 ROM。

    + y4 B/ Z% S  ^4 y3 H
    51 内部的存储器在物理上可分为 4 个区域:片内 ROM,片外 ROM,片内 RAM 和片外 RAM。从逻辑上可分为三个区域,64KB 片内外统一编址的程序存储器(ROM),
    128 字节或 256 字节的片内数据存储器(RAM),64KB 片外数据存储器(RAM)。
    5 J( m8 [/ e# q# i
    对应的 keil 编译器关键字为:
    data : 片内数据存储器(RAM)低 128 字节(51 系列片内只有 128 字节,52 系列有 256 字节)
    bdata: 可位寻址的片内 RAM 以上两种类型可以快速的存取数据,常用来放临时性的传递变量或使用频率较高 的变量。
    idata : 片内数据存储器(RAM)256 字节
    xdata: 片外数据存储器 64KB
    pdata: 片外数据存储器低 256 字节
    ' R- d9 k6 k' `2 \) q* g& K

    : u0 z: N; b( L
    code: 64KB 程序存储器(如果变量定义在这个空间,后面就不能修改了,如果 有语句改变它的值,编译器就会报错。)
    7 n) e  v; X1 F
    此外,C51 还有三种存储模式(这是在开发环境里面设置的):SMALL, COMPACT,
    LARGE

    1 f( Q( G6 G- s
    SMALL 模式下,如果不做特别说明,参数及局部变量默认为 data 型,放在片内 RAM128 字节内,访问迅速。由于内部的 RAM 有限,如果变量过多,会导致频 繁的使用寄存器,而使代码变的冗长。此时栈也在片内的 RAM,栈长很关键, 因为栈长依赖于不同函数的嵌套层数。
    0 A) r& ?) @4 U" Z  N& W
    COMPACT:不做特别说明,参数及局部变量默认为 pdata,栈空间在内部 RAM。
    7 Z  ]& C7 b5 z. g8 W! F
    LARGE:参数及局部变量默认为 xdata,使用 DPTR 来寻址。访问效率低,此外这 种数据指针不能对称操作。
    * q# E+ C  c5 e4 {1 v$ L% s9 C
    全局变量会根据定义的类型或者存储的模式分配在相应的存储区内,有固定的地 址,如果全局变量过多则会导致占用太多内存,处理速度变慢。

    6 i/ |' [  C# R! S3 r* }# f) M5 F* r& N
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-6-20 20:08 , Processed in 0.078125 second(s), 23 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表