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

Keil C51编译错误:address space overflow

xjtudll13年前 (2012-05-15)技术心得35930

近日在使用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://www.xjtudll.cn/Exp/233/

标签: keil51C
分享给朋友:

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

NodeMCU无限打印:wifi_event_monitor_handle_event_cb is called

NodeMCU一直输出: wifi event monitor handle event cb is called wifi event monitor handle event cb is called wifi event monitor handle event cb is ca...

老单单据上下查,某些字段在上下查出来的界面看不到

https://vip.kingdee.com/questions/55600564193023233/answers/55600565182629120 问题描述: 例如:将外购入库上的【保管】字段显示在序时簿界面,但是在采购发票序时簿上查外购入库单的界面看不到【保管】,查询起来不方便。 解决方案...

ios宏: 判断是否是retina屏,是否iPad,设备判断(4,5,5s,6等)

#define IS_IPAD (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) #define IS_IPHONE (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) #def...

光耦,大有用处

光耦,百度百科是这样说的:耦合器(optical coupler,英文缩写为OC)亦称光电隔离器,简称光耦,是开关电源电路中常用的器件。耦合器以光为媒介传输电信号。它对输入、输出电信号有良好的隔离作用,所以,它在各种电路中得到广泛的应用。目前它已成为种类最多、用途最广的光电器件之一。光耦合器一般由三...

Word中如何定位

Word中如何定位

文章来源:http://cuiyingfeng.blog.51cto.com/43841/61155 大家在日常工作中经常会接触word文档,在使用编辑时基本上会遇到如下两个问题: 1、我从目录中选择一个条目,跳入正文,现在想返回目录重新选择条目 2、我修改了一个地方,在浏览了这篇文档一部分内...

浅析电波表——美国WWVB码

浅析电波表——美国WWVB码

参考文献: http://www.nist.gov/pml/div688/grp40/wwvb.cfm http://tf.nist.gov/stations/wwvbtimecode.htm http://en.wikipedia.org/wiki/WWVB 一、WWVB码简介 WWVB与WWV...

发表评论

访客

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