当前位置:首页 > 技术心得 > 正文内容

Keil C51编译错误:address space overflow

xjtudll14年前 (2012-05-15)技术心得41540

近日在使用Keil的时候,遇到了一个问题:address space overflow。程序最初编译的时候没这问题,当我增加一段代码后,出现了这个问题。经网上搜索,发现根本原因是:data只能是RAM中的前128个,变量超过128个时会出现ADDRESS SPACE OVERFLOW

  解决办法:  

1、将一些变量定义成idataxdata

  2、将keil的编译模式设置成Large

附录1Keil C51 dataidataxdata等区别 

1data:固定指前面0x00-0x7f128RAM,可以用acc直接读写的,速度最快,生成的代码也最小。
2idata:固定指前面0x00-0xff256RAM,其中前128data128完全相同,只是因为访问的方式不同。idata是用类似C中的指针方式访问的。汇编中的语句为:mox ACC,@Rx.(不重要的补充:cidata做指针式的访问效果很好)
 
3xdata:外部扩展RAM,一般指外部0x0000-0xffff空间,用DPTR访问。
4 pdata:外部扩展RAM的低256个字节,地址出现在A0-A7的上时读写,用movx ACC,@Rx读写。这个比较特殊,而且C51好象有对此BUG,建议少用。

 

clip_image002

附录二、Keil C51编译模式SmallCompactLarge区别

 

1Small模式

  所有缺省变量参数均装入内部RAM,优点是访问速度快,缺点是空间有限,只适用于小程序。

2Compact模式

所有缺省变量均位于外部RAM区的一页(256Bytes),具体哪一页可由P2口指定,在STARTUP.A51文件中说明,也可用pdata指定,优点是空间较Small为宽裕,速度较Small慢,较large要快,是一种中间状态。

3large模式
所有缺省变量可放在多达64KB的外部RAM区,优点是空间大,可存变量多,缺点是速度较慢。

  提示:存储模式在C51编译器选项中选择。

 

扫描二维码推送至手机访问。

版权声明:本文由鸟的天空发布,如需转载请注明出处。

本文链接:http://xjtudll.cn/Exp/233/

标签: keil51C
分享给朋友:

“Keil C51编译错误:address space overflow” 的相关文章

MSP430复位电路

MSP430复位电路

复位电路有啥好讲的?很多人可能都这样认为。简单的阻容复位,相信大伙都知道如何使用。一直以来,我也是这么认为的。后来在利尔达的一款MSP430F449开发板上看到其复位电路,看到电路上多了个1N4148二极管,这个二极管的作用我一度认为是起保护作用的,直到最近在网上看到一个网友的精彩说明,才知道二极管...

NPOI导出Excel表 如何实现短日期格式

https://q.cnblogs.com/q/43888/ 问题: 因为导出EXCEL 档日期格式永远都是 2012-11-22 14:51:11 ,而我们希望结果永远只是 2012-11-22, 我修改完的代码如下: case "System.DateTime": //...

Multisim仿真过慢

Multisim仿真过慢

在用Multisim仿真的时候,有时候会仿真过慢,实际等了半天,而传递函数才走了几秒而已,有时候要看最后稳定的结果,得等N长时间,这个是无法忍受的。这个问题实际上是所有Spice类软件的通病,如果你按照软件的默认设置的话,有些仿真进程就是很慢。 解决办法: 修改仿真的步进值。如图(以中文版为例)...

水晶报表 如何通过代码隐藏控件

水晶报表 如何通过代码隐藏控件

右击要设置的对象控件,点击“设置对象格式”,调出格式编辑器。点击“抑制显示”后面的编辑图标(见图红框处)。 在代码输入处输入以下代码: if  条件语句    then   true else &n...

美如画R4固件更新方法及下载地址

    去年购入了一台美如画R4 Wifi版本,用到今年,遥控器挂了,按了没反应,无奈在某宝上买了美如画R4的遥控器,买回来,发现用不了。查了查,才知道,遥控器有两个版本的,两个色键和四个色键的,我买的是四个色键的,而原配是两个色键的。那么,不能用了么?网上搜了搜,只要...

获取NSImage图片的准确大小

问题: NSImage加载图片的时候无法准确获得图片的大小 测试代码: NSImage *image = [NSImage imageNamed:@"image"]; NSLog(@"%f, %f", image.size.width, image.size....

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。