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