51单片机的RAM地址空间溢出解决方法说明

资料大小: 0.11 MB

所需积分: 1

下载次数:

用户评论: 0条评论,查看

上传日期: 2019-07-18

上 传 者: 发烧友他上传的所有资料

资料介绍

标签:编译器(384)51单片机(2365)RAM(399)

  在51系列中data,idata,xdata,pdata的区别:

  data: 固定指前面0x00-0x7f的128个RAM,可以用acc直接读写的,速度最快,生成的代码也最小。

  idata: 固定指前面0x00-0xff的256个RAM,其中前128和data的128完全相同,只是因为访问的方式不同。idata是用类似C中的指针方式访问的。汇编中的语句为:mox ACC,@Rx.(不重要的补充:c中idata做指针式的访问效果很好)。

  xdata: 外部扩展RAM,一般指外部0x0000-0xffff空间,用DPTR访问。

  pdata: 外部扩展RAM的低256个字节,地址出现在A0-A7的上时读写,用movx ACC,@Rx读写。这个比较特殊,而且C51好象有对此BUG,建议少用。但也有他的优点,具体用法属于中级问题,这里不提。

  RAM解决方案

  1.右键单击Target选择“Options for Target‘Target1’”就会出来一个框,在memory model中选择compact:variables in pdata 就可以了。

  “Keil Cx51编译器提供三条编译模式控制命令:SMALL,COMPACT,LARGE,它们对变量存储器空间的影响如下。

  SMALL:所有变量都被定义在8051单片机的片内RAM中,对这种变量的访问速度最快。另外,堆栈也必须位于片内RAM中,而堆栈的长度是很重要的,实际栈长取决与不同函数的嵌套深度。采用SMALL编译模式与定义变量时指定data存储器类型具有相同效果。

  COMPACT:所有变量被定义在分页寻址的片外XRAM中,每一页片外XRAM的长度为256字节。这时对变量的访问是通过寄存器间接寻址(MOVX @R0,MOVX @R1)进行的,变量的低8位地址由R0和R1确定,变量的高8位地址由P2口确定。采用这种模式时,必须适当改变配置文件STARTUP.A51中的参数:PDATASTART和PDATALEN;同时还必须对uVision2的“OpTIons选项/BL51 Locator 标签页/Pdata框”中键入合适的地址参数,以确保P2口能输出所需要的高8位地址。采用COMPACT编译模式与定义变量时指定 pdata存储器类型具有相同效果。

  LARGE:所有变量被定义在片外XRAM中(最大可达64KB),使用数据指针DPTR来间接访问变量(MOVX @DPTR),这种编译模式对数据访问的效率最低,而且将增加程序的代码长度。采用LARGE编译模式与定义变量时指定xdata存储器类型具有相同效果。

用户评论

查看全部 条评论

发表评论请先 , 还没有账号?免费注册

发表评论

用户评论
技术交流、我要发言! 发表评论可获取积分! 请遵守相关规定。
上传电子资料

下载排行

本周

  1. 如何使用单片机实现Web服务器的设计
  2. 如何使用Proteus虚拟终端51单片机实现串口发送和接收字符串的仿真
  3. 如何使用51单片机实现数据采集卡的设计
  4. Eagle7725摄像头的STM32的MDK工程详细说明
  5. 使用单片机设计一个智能酒驾检测系统的详细资料说明
  6. 如何使用51单片机设计一个数字闹钟系统
  7. 使用51单片机设计一个倒计时秒表的详细资料说明

本月

  1. 单片机的详细资料概述
  2. 如何使用单片机实现红外遥控LED灯的控制系统的设计
  3. 如何使用单片机实现Web服务器的设计
  4. 使用STM32单片机实现无人机的源代码和原理图资料合集
  5. 如何使用51单片机实现数据采集卡的设计
  6. STM32的加密库资料合集免费下载
  7. 如何使用Proteus虚拟终端51单片机实现串口发送和接收字符串的仿真
  8. 使用单片机实现喇叭播放音乐和LCD液晶显示的资料详细说明
  9. 使用单片机实现一氧化碳检测系统的设计资料说明
  10. 单片机最小硬件系统是如何组成的

总榜

  1. 单片机C语言程序设计实训100例——基于8051 Proteus仿真
  2. 51单片机学习资料打包
  3. 单片机超级精华包
  4. 网上学单片机(入门篇)
  5. 电子工程师基本知识结构
  6. Keil uVision3下载 (破解版带注册机+中文版)
  7. 《C51单片机及C语言知识点必备秘籍》电子发烧友网创新系列电子书
  8. 单片机C语言程序设计实训100例——基于8051 Proteus仿真
  9. 51单片机c语言超强学习资料
  10. PIC单片机应用常见问答