找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

*** ERROR L107: ADDRESS SPACE OVERFLOW keil錯(cuò)誤的解決方法

  [復(fù)制鏈接]
ID:51783 發(fā)表于 2013-7-13 03:31 | 顯示全部樓層 |閱讀模式
今天遇到一個(gè)keil問題,編譯出現(xiàn)下面提示:最后完美解決,把方法分享給51hei論壇的朋友們

*** ERROR L107: ADDRESS SPACE OVERFLOW

SPACE: DATA

SEGMENT: ?DT?_WRITEONECHAR?DS18B20

LENGTH: 0002H

在百度上查了一些資料,說法不一:

       1、單片機(jī)的RAM 不夠,但變量太多,所以刪掉一些不重要的變量就ok了.
       2、KEIL沒有注冊,只能編譯2K的

   錯(cuò)誤是內(nèi)存空間溢出,可以改變KEIL的編譯的模式,改為Large模式來達(dá)到編譯成功。一般 KEIL在small 模式。small 模式下未指存儲(chǔ)類型的變量默認(rèn)為data型,即直接尋址,只能訪問低 128 個(gè)字節(jié),但這 128 個(gè)字節(jié)也不是全為你程序所有,寄存器 R0-R7必須映射到低RAM,要占去 8 個(gè)字節(jié),如果使用寄存組切換,占用的更多。所以可以使用 data 區(qū)最大為 120 字節(jié),超出 120 個(gè)字節(jié)則必須用 idata 顯示的指定為間接尋址,另外堆棧至少要占用一個(gè)字節(jié),所以你最多能使用 127 上字節(jié)。
1.JPG

  如果以上辦法都沒能解決,最后想了一個(gè)辦法,發(fā)現(xiàn)是變量太多的緣故,刪除了幾個(gè)不重要的變量后完美解決了 ERROR L107: ADDRESS SPACE OVERFLOW的問題.

回復(fù)

使用道具 舉報(bào)

ID:367145 發(fā)表于 2018-7-24 12:11 | 顯示全部樓層
我就是這個(gè)問題,程序編譯沒有問題,是正確的。可就是不能產(chǎn)生.hex文件


Rebuild target 'Target 1'
assembling STARTUP.A51...
compiling Text1.c...
linking...
*** ERROR L107: ADDRESS SPACE OVERFLOW
    SPACE:   CODE   
    SEGMENT: ?PR?SHUTTER_CLOCK?TEXT1
    LENGTH:  02E7H
*** ERROR L107: ADDRESS SPACE OVERFLOW
    SPACE:   CODE   
    SEGMENT: ?PR?KEY_SCAN?TEXT1
    LENGTH:  0286H

就是這種問題一大堆
回復(fù)

使用道具 舉報(bào)

ID:330957 發(fā)表于 2018-9-27 15:07 | 顯示全部樓層
我遇到了這個(gè)問題后,我發(fā)現(xiàn)是RAM不夠,一般的話。有data、idata、pdata以及xdata。data的話,就是低128(片內(nèi))字節(jié);idata的話,就是256個(gè)(片內(nèi))字節(jié)。起始data就是idata的一部分。pdata以及xdata是片外RAM的,那就得看單片機(jī)的手冊進(jìn)行操作。例如STC12C5A60S2的話,要用內(nèi)部擴(kuò)展的話,是要用到xdata的,即unsigned char xdata a[256],那么這就去了256個(gè)字節(jié)了。內(nèi)部擴(kuò)張的。
也就是說,當(dāng)你編譯后,發(fā)現(xiàn)data已經(jīng)是大于128了,同時(shí)伴隨著報(bào)錯(cuò)。那你就得使用xdata或者pdata了。

評分

參與人數(shù) 1黑幣 +60 收起 理由
admin + 60 回帖助人的獎(jiǎng)勵(lì)!

查看全部評分

回復(fù)

使用道具 舉報(bào)

ID:43559 發(fā)表于 2015-3-20 18:15 | 顯示全部樓層
遇到同樣問題。感謝分享。
回復(fù)

使用道具 舉報(bào)

ID:43559 發(fā)表于 2015-3-20 19:43 | 顯示全部樓層
     選擇Large模式,編譯是通過了。可是程序不好使了。生成的HEX文件燒錄進(jìn)單片機(jī)也不干活了。又試了下選擇Compact模式編譯,一樣不干活。只有Small模式的hex文件好用。
這個(gè)誰懂?
回復(fù)

使用道具 舉報(bào)

ID:88625 發(fā)表于 2015-8-20 09:41 | 顯示全部樓層
同樣問題,完美解決!謝謝樓主!特地注冊來回復(fù)
回復(fù)

使用道具 舉報(bào)

ID:88990 發(fā)表于 2015-8-28 09:02 | 顯示全部樓層
mybigapple 發(fā)表于 2015-3-20 19:43
選擇Large模式,編譯是通過了?墒浅绦虿缓檬沽。生成的HEX文件燒錄進(jìn)單片機(jī)也不干活了。又試了下選 ...

large模式就是默認(rèn)將所有變量都存于外部RAM,small模式是在內(nèi)部ram。
回復(fù)

使用道具 舉報(bào)

ID:95180 發(fā)表于 2015-11-9 16:23 | 顯示全部樓層
mybigapple 發(fā)表于 2015-3-20 19:43
選擇Large模式,編譯是通過了。可是程序不好使了。生成的HEX文件燒錄進(jìn)單片機(jī)也不干活了。又試了下選 ...

對,我也是遇到這樣的問題了,
回復(fù)

使用道具 舉報(bào)

ID:110050 發(fā)表于 2016-5-14 13:38 | 顯示全部樓層
樓主 棒棒噠
回復(fù)

使用道具 舉報(bào)

ID:121841 發(fā)表于 2016-5-26 21:38 | 顯示全部樓層
謝謝樓主。!
回復(fù)

使用道具 舉報(bào)

ID:104845 發(fā)表于 2016-6-19 09:53 來自手機(jī) | 顯示全部樓層
改成large,連仿真時(shí)候也出錯(cuò),所以還是查找問題吧
回復(fù)

使用道具 舉報(bào)

ID:108662 發(fā)表于 2016-11-5 22:25 | 顯示全部樓層
謝謝樓主提供的方法
回復(fù)

使用道具 舉報(bào)

ID:94867 發(fā)表于 2018-4-16 19:37 | 顯示全部樓層
是的,同一樓所說
回復(fù)

使用道具 舉報(bào)

ID:339025 發(fā)表于 2018-5-27 02:07 | 顯示全部樓層
厲害了,我遇到了
回復(fù)

使用道具 舉報(bào)

ID:372246 發(fā)表于 2018-7-16 03:06 | 顯示全部樓層
謝謝樓主 另外功能沒實(shí)現(xiàn)的可能是程序錯(cuò)誤 多找找吧
回復(fù)

使用道具 舉報(bào)

ID:498649 發(fā)表于 2019-5-23 19:12 | 顯示全部樓層
感謝樓主,問題解決啦
回復(fù)

使用道具 舉報(bào)

ID:720035 發(fā)表于 2020-4-1 10:32 | 顯示全部樓層
受用了  謝謝樓主
回復(fù)

使用道具 舉報(bào)

ID:731626 發(fā)表于 2020-4-17 20:01 | 顯示全部樓層
很不錯(cuò),解決問題了,適用于稍微添加了一點(diǎn)變量時(shí)就突然報(bào)錯(cuò)的情況
回復(fù)

使用道具 舉報(bào)

ID:446775 發(fā)表于 2020-6-19 11:00 | 顯示全部樓層
把變量定義為pdata后,這種辦法是針對于變量較少的情況
回復(fù)

使用道具 舉報(bào)

ID:976892 發(fā)表于 2021-11-24 21:21 | 顯示全部樓層
mybigapple 發(fā)表于 2015-3-20 19:43
選擇Large模式,編譯是通過了?墒浅绦虿缓檬沽。生成的HEX文件燒錄進(jìn)單片機(jī)也不干活了。又試了下選 ...

請問這個(gè)問題解決了嗎?
回復(fù)

使用道具 舉報(bào)

ID:1013070 發(fā)表于 2022-4-3 14:51 | 顯示全部樓層
解決了,謝謝您!
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

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