|
發(fā)布時間: 2018-9-22 10:07
正文摘要:誰知道51單片機(jī)編程編譯時空間溢出咋解決呀,而且我用的是STC12C5A60S2芯片,其存儲空間不是很大的嗎,我才用了一點點咋就溢出了 |
花開半夏 發(fā)表于 2018-10-13 16:57 請問樓主,c51地址空間溢出怎么解決的? |
謝謝各位大神,溢出問題已解決![]() |
| 嵌入式系統(tǒng)的內(nèi)存資源是很有限的,特別是51系統(tǒng),分成了BDATA,DATA,IDATA,XDATA,使用的時候要引起注意,最好的DATA段也是最應(yīng)該節(jié)約的,因為該段可以直接尋址,而R0~R7,BDATA段都在該區(qū)段內(nèi),使得僅有的128個字節(jié)更加緊張,能用IDATA段的盡量用IDATA段,像數(shù)組本來就不需要直接尋址的,建議放在IDATA段。但是要注意的是必須留出足夠的堆棧空間。 |
|
程序全局或者靜態(tài)變量估計有點多,建議把數(shù)組前面加個CODE,放在程序區(qū)里去. 點擊"options for target"(就是第一次編譯要生成HEX那個按鈕),然后點選target標(biāo)簽,下面有兩個下拉菜單,標(biāo)題分別是Memory mode 和 Code Rom size,前者是RAM大小,后者是ROM,分別可以改為大中小,你更改下RAM設(shè)置再試試編譯. |
| 參與人數(shù) 1 | 黑幣 +50 | 收起 理由 |
|---|---|---|
|
| + 50 | 回帖助人的獎勵! |
| 你這個是變量太多了,在定義變量的前面加上xdata |
Powered by 單片機(jī)教程網(wǎng)