加入星計劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴散
  • 作品版權(quán)保護
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

嵌入式開發(fā) | 提高單片機代碼編譯速度的幾種方法

2022/02/25
366
閱讀需 4 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

程序員做軟件開發(fā),討厭一件事,那就是編譯代碼速度很慢的問題。編碼一分鐘,編譯十分鐘,這誰能受的了?

今天就來說說嵌入式軟件開發(fā)中,常見的提高編譯速度的一些操作或者方法。

換更高配置電腦

可能是絕大部分人首先想到的就是:換更高配置的電腦。

這也是其中一個辦法,但是,有幾家公司愿意給你換電腦?

所以,這個方法不現(xiàn)實。

減少編譯輸出文件

有些不必要的調(diào)試、瀏覽信息文件,在編譯時可以不用配置輸出,比如:

1.Keil MDK

Project -> Options for Target -> Output/Listing:

這里面的的配置,就會影響編譯速度,特別是Browse Information(瀏覽信息),使用Go to Definition Of 功能,就需要有這類文件。

如果勾選,就會輸出一些“編譯中間文件”,你在設(shè)置的輸出路徑下(默認“Listings”和“Objects”)就有很多中間文件,這些文件在編譯過程都會占用編譯時間。

這些文件的內(nèi)容及作用可以參看文章:Keil系列教程_文件類型及相關(guān)描述

2.IAR EWARM

類似Keil MDK,IAR也有相關(guān)的輸出文件配置,比如:

Project -> Options -> C/C++ Compiler -> output:

在配置信息中也有很多相關(guān)與編譯相關(guān)的配置,會影響編譯速度。

IAR各種文件類型,可以參看文章:IAR系列教程_文件類型描述

3.命令行如果使用命令行編譯代碼,這個問題就可以避免,編譯、鏈接、調(diào)試根據(jù)自己的需求輸入響應(yīng)的命令即可。

比如:

gcc test.c -o test

當(dāng)然,使用命令行,必須要熟記各種命令的用法。

換編譯工具鏈

這個和換電腦不同的是:換編譯器僅是軟件工具,不用看老板臉色。

比如:Keil MDK 從AC5升級到AC6,速度就會快很多。

還可以將MDK的編譯器換成gcc編譯器:手把手教你在Keil MDK中使用GCC編譯器工具鏈

可以參看相關(guān)的文章:

帶你認識AC6編譯器

編譯器AC5與AC6生成瀏覽信息的差異

AC5 和 AC6 優(yōu)化選項重要內(nèi)容和區(qū)別

優(yōu)化代碼

對于嵌入式代碼,大多都是C/C++代碼寫的,都有#include xxx.h頭文件。

如果頭文件反復(fù)、多層包含,只要修改一個頭文件,有包含關(guān)系的頭文件、源文件都要進行編譯一次,這樣也會影響編譯速度。

類似下圖這種,只要修改最底層一個文件,上層的文件都要編譯一遍:

推薦閱讀文章:軟件項目中引用頭文件的幾種方法及要點

最后,歡迎大家補充更多有效提高編譯速度的方法。

 

作者 | strongerHuang

微信公眾號 | strongerHuang

相關(guān)推薦

電子產(chǎn)業(yè)圖譜

作者黃工,從事嵌入式軟件開發(fā)工作8年有余,高級嵌入式軟件工程師,業(yè)余維護公眾號『strongerHuang』,分享嵌入式軟硬件、單片機、物聯(lián)網(wǎng)等內(nèi)容。