|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測(cè)控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
c51如何減少占用的內(nèi)存? |
| 作者:greatmenddc 欄目:單片機(jī) |
| 2樓: | >>參與討論 |
| 作者: lihai813 于 2007/5/15 21:16:53 發(fā)布:
堆棧溢出是什么現(xiàn)象? |
|
| 3樓: | >>參與討論 |
| 作者: greatmenddc 于 2007/5/16 12:39:57 發(fā)布:
堆棧溢出我的意思就是堆棧用到了內(nèi)存的最高單元FFH,還有壓棧,則SP一下變成了00H,程序也莫名其妙的飛走了。(換句話就是程序占用了過多的內(nèi)存,以至于堆棧不夠用了) 「該帖子被 greatmenddc 在 2007-5-16 12:43:25 編輯過」 |
|
| 4樓: | >>參與討論 |
| 作者: wujing198 于 2007/5/16 13:58:44 發(fā)布:
只有在匯編上做優(yōu)化了…… |
|
| 5樓: | >>參與討論 |
| 作者: greatmenddc 于 2007/5/16 14:39:14 發(fā)布:
十分感謝樓上的! |
|
| 6樓: | >>參與討論 |
| 作者: aibxyz 于 2007/5/16 15:31:53 發(fā)布:
不減少全局變量,要減少內(nèi)存使用 首先要,在程序結(jié)構(gòu)上作優(yōu)化,減少函數(shù)調(diào)用層數(shù) 其次,不要用using、_at_等,讓編譯器自行分配 如果有用到邏輯變量,盡量用bit類型,不要管與其他處理器兼容了 如果允許,不要用float運(yùn)算 另外說一下,內(nèi)存還是大點(diǎn)好,偶剛剛就加了一根1G的,瓦哈哈 |
|
| 7樓: | >>參與討論 |
| 作者: 275124957 于 2007/5/16 16:47:36 發(fā)布:
同意樓上的觀點(diǎn) |
|
| 8樓: | >>參與討論 |
| 作者: 六點(diǎn)風(fēng) 于 2009/12/19 14:08:46 發(fā)布:
6正解,經(jīng)驗(yàn)之談,嚴(yán)重支持。尤其是“減少函數(shù)調(diào)用層數(shù)”很多人忽略了這一點(diǎn)。 |
|
| 9樓: | >>參與討論 |
| 作者: 尋覓 于 2009/12/19 14:44:25 發(fā)布:
6樓的,最后一句是在開玩笑吧? 還有 “不要用using、_at_等,讓編譯器自行分配”我的看法是用using是恰恰能對(duì)節(jié)省RAM有利的。_at_定義的地址不要太高,否則要和堆棧沖突了。編譯完畢后,至少要給idata空間有15個(gè)直接的余量。 |
|
|
|
| 免費(fèi)注冊(cè)為維庫電子開發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào) |