keil c報錯:*** ERROR L107: ADDRESS SPACE OVERFLOW
已有 1812 次閱讀2016-8-26 00:57
|
ERROR
【ADDRESS SPACE OVERFLOW】
//----AT89C52-----//
地址空間溢出,簡而言之就是RAM空間不夠用,通常是由于全局變量過多引起:
解決方法一:
在部分變量定義時加上 [idata]。(系統默認尋址是0-128字節直接尋址區,加上 idata后可增加128-256的間接尋址區)
解決方法二:
在部分只讀變量定義時增加關鍵字[code]
解決方法三:(慎)
在部分變量定義時添加關鍵字[xdata],需要注意的是這個區域的數據不穩定,在一些需要經常改變的變量中用此關鍵詞定義可能出現程序異常。
解決方法四:
減少全局變量或其大小,可通過減少全局變量,將int型變量在允許情況下改成char型,或把char型改成bit型,以減少全局變量所占空間。
注:------------
網上有人說可通過更改keil所用模式來解決,即可將<small>改為<compact>、<large>來解決,但自己試了下發現程序沒有任何變化,所以這種方法覺得待驗證,當然也有可能是自己錯了,也歡迎大家指正。