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總共有多大,定義變量的時候
一定要注意變量是定義在那個區(qū)域的,系統(tǒng)默認為直接尋址DATA區(qū),但DATA區(qū)只有128個字節(jié),很容易用完和溢出的,
51單片機超出128個字節(jié)的RAM區(qū)定義變量的時候一定要要變里前面加IDATA,
這樣表明這個變量是定義在IDATA區(qū)的,IDATA區(qū)是128到256之間的間接尋址RAM區(qū).
建意你在全局變量和數(shù)組前都加在IDATA.
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請
點擊舉報。