|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機 | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
現(xiàn)教現(xiàn)賣 - 實例講解C的代碼優(yōu)化 |
| 作者:ijk 欄目:MCU技術(shù) |
現(xiàn)在,ST都向使用ST7的客戶推薦 Cosmic C編譯器。下面實例講解怎樣在 ST7的集成開發(fā)環(huán)境(STVD7 版本V3.0及以上)里對Cosmic C進行設(shè)置,以生成更加短小的代碼。 說明:某客戶使用 ST7LITE05 開發(fā)產(chǎn)品,ST7LITE05 的FLASH容量為1.5kB,但當時生成的代碼為1.7kB。所以希望通過C編譯器的優(yōu)化,來生成<1.5kB的目標代碼。 過程: 首先,一般而言建議客戶在開發(fā)和生產(chǎn)階段使用不同的項目設(shè)置。即開發(fā)階段 設(shè)置為 Debug,C編譯器的優(yōu)化不打開或只進行比較弱的優(yōu)化,這樣目標代碼比較易于調(diào)試;在生產(chǎn)階段設(shè)置為 Release,C編譯器的優(yōu)化設(shè)置為比較高的程度,以便生成更短小的代碼。 1. C編譯器的優(yōu)化設(shè)置,位于 Project -> Settings -> C Compiler -> Category: Optimizations 2. 為了打開優(yōu)化,選 Optimizations: Customize 3. 在優(yōu)化的列表中,可以勾選 1) Split ... (+split) 2) Optimize -asm code (-ga) 4. 為了進一步進行優(yōu)化,還可以在 User Defined Options 輸入框中,輸入 "+compact"。注:該優(yōu)化選項適用于比較新的 Cosmic C編譯器,如16kB免費的Cosmic編譯器,但不適用于 V4.4a。 5. 更進一步,還可以使用 Jump Table。這需要分2步來實現(xiàn): 1) 勾選 Generate Jump Table,然后進行編譯 2) 編譯結(jié)束后,再勾選 Optimize function calls,然后再重新編譯 通過這些步驟,實現(xiàn)了客戶的要求,代碼從1.7kB 減少到1.5kB. |
| 2樓: | >>參與討論 |
| 作者: 平常人 于 2006/8/3 18:26:00 發(fā)布:
代碼優(yōu)化——大學問啊,樓主加油 確實如此,編譯器的選項用好了可以節(jié)省不少ROM空間呢,有時通過這樣的優(yōu)化,可能就可以用低一檔的單片機,成本就降下來了,白花花的銀子啊,能省就省吧! |
|
| 3樓: | >>參與討論 |
| 作者: gyt 于 2006/8/4 11:56:00 發(fā)布:
謝謝發(fā)表啊 |
|
|
|
| 免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號 |