找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 7573|回復(fù): 9
收起左側(cè)

ERROR L107: ADDRESS SPACE OVERFLOW keil編譯單片機程序錯誤

[復(fù)制鏈接]
ID:183159 發(fā)表于 2017-4-22 10:35 | 顯示全部樓層 |閱讀模式
keil編譯提示錯誤:ERROR L107: ADDRESS SPACE OVERFLOW
我用的是STC89c52的芯片 但我感覺程序也沒多大啊  我實驗了一下,我原本定義了四個char 型數(shù)組 去掉一個再編譯就沒問題 不去掉就顯示如圖那樣 ,這個芯片我查了官方的手冊,顯示是8k flash 523字節(jié)的ram 感覺應(yīng)該不會超出? 就多了一個char 型數(shù)組就超出了嗎?而且無論這個數(shù)組是全局變量還是局部變量都編譯不通過,我按網(wǎng)上說的是512字節(jié)的ram空間不夠了然后 memory model里選擇large variables in xdata  可以編譯 但下載后沒反應(yīng)
回復(fù)

使用道具 舉報

ID:183159 發(fā)表于 2017-4-22 13:20 | 顯示全部樓層
我知道怎么解決了
回復(fù)

使用道具 舉報

ID:1 發(fā)表于 2017-4-22 15:36 | 顯示全部樓層
xujing 發(fā)表于 2017-4-22 13:20
我知道怎么解決了

樓主能分享下怎么解決的嗎?
回復(fù)

使用道具 舉報

ID:183159 發(fā)表于 2017-4-22 16:52 | 顯示全部樓層
admin 發(fā)表于 2017-4-22 15:36
樓主能分享下怎么解決的嗎?

這是編譯成功的 Program Size: data=107.1 xdata=0 code=2156
這是編譯不成功的 Program Size: data=125.1 xdata=0 code=2176
我這個芯片手冊說是512字節(jié)的ram,我的keil 4 中默認設(shè)置small:variables in DATA的
默認定義的變量都存儲在直接尋址區(qū)也就是前128字節(jié),我按網(wǎng)上說的設(shè)置成large:variables in XDATA,程序可以編譯,但下載后沒反應(yīng),所以只能刪掉一個數(shù)組了。我之前找到可以在定義的變量的前面加idata指定放在間接尋址區(qū),我下課回去再試試 。
回復(fù)

使用道具 舉報

ID:157057 發(fā)表于 2017-4-22 17:03 | 顯示全部樓層
增加idata 即可。
回復(fù)

使用道具 舉報

ID:157057 發(fā)表于 2017-4-22 17:05 | 顯示全部樓層
其實哈有一個辦法,增加官方的元件庫,也可以解決。
回復(fù)

使用道具 舉報

ID:183159 發(fā)表于 2017-4-22 17:13 | 顯示全部樓層
fefen0 發(fā)表于 2017-4-22 17:05
其實哈有一個辦法,增加官方的元件庫,也可以解決。

我加了stc的芯片 編譯結(jié)果還是這樣 我現(xiàn)在有點懷疑官方手冊上的512字節(jié)ram是怎么分配的
回復(fù)

使用道具 舉報

ID:157057 發(fā)表于 2017-4-22 17:53 | 顯示全部樓層
xujing 發(fā)表于 2017-4-22 17:13
我加了stc的芯片 編譯結(jié)果還是這樣 我現(xiàn)在有點懷疑官方手冊上的512字節(jié)ram是怎么分配的

還要看你的KEIL版本。
回復(fù)

使用道具 舉報

ID:99130 發(fā)表于 2017-7-3 21:02 | 顯示全部樓層
編譯時選的型號問題,換一個容量大的單片機就可以解決。
回復(fù)

使用道具 舉報

ID:217098 發(fā)表于 2017-7-4 20:38 | 顯示全部樓層
看你的KEIL版本
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表