分享

KEIL C 出现ADDRESS SPACE OVERFLOW的解决办法

 心不留意外尘 2016-05-30
http://www.cnblogs.com/whut-xxxy/archive/2011/07/07/2099982.html
2011

用KEIL选用small模式编译一个程序时老时出错,信息如下。

*** ERROR L107: ADDRESS SPACE OVERFLOW
... ...
Program Size: data=217.6 xdata=0 code=5314
Target not created

芯片我选的是AT89C52,RAM有256呀,怎么会OVERFLOW呢?
但是如果编译模式选用Compact或large时就一切正常。
... ...
Program Size: data=110.6 xdata=111 code=5914
"test" - 0 Error(s), 22 Warning(s).

--------------------------------------------------------------- 
另外的可能性:
比如全局变量中定义的过多如下所示:
uchar xpos,ypos;
uchar disbac;
uchar coma1,comb1,comc1,coma2,comb2,comc2;
uchar map[35];
uchar buff[35];
局变量是不是用得太多了,另外用的是什么单片机,RAM总共有多大,定义变量的时候
一定要注意变量是定义在那个区域的,系统默认为直接寻址DATA区,但DATA区只有128个字节,很容易用完和溢出的,
51单片机超出128个字节的RAM区定义变量的时候一定要要变里前面加IDATA,
这样表明这个变量是定义在IDATA区的,IDATA区是128到256之间的间接寻址RAM区.
建意你在全局变量和数组前都加在IDATA.

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多