Keil 報錯 ERROR L107: ADDRESS SPACE OVERFLOW

解決思路一:
1、單片機自身的RAM不夠,但程序使用的變量太多,注意全局變量和局部變量的合理使用,刪除一些沒有必要的變量就可以了;
2、Keil沒有注冊,只能編譯2k大小的程序。
解決思路二:
本錯誤,經翻譯可知是內存溢出,因此,我們可以通過改變Keil的編譯模式,改為Large模式就可以編譯成功。
知識擴述:small模式下未指存儲類型的變量默認為data型,即直接尋址,只能訪問低128字節(jié),但是這128字節(jié)也不是全為我們的程序所有,寄存器R0-R7必須映射到低RAM,要占去8個字節(jié),如果使用寄存器切換,占用的字節(jié)更多。所以可以使用的data區(qū)最大為120字節(jié),超出120字節(jié),就必須使用idata型,即間接尋址,另外堆棧至少要占用一個字節(jié),所以,我們最多只能使用127個字節(jié)。

標簽: