在車載嵌入式開發過程中,除了常用tasking作為編輯器,hightec也是常用的之一,在之前分享過一份tasking提高編譯速度的文章(回送門:TASKING TriCore如何提高編譯速度)。下面根據使用經驗整理了一些hightec方法。
優化方法1:啟用平行編譯并將CPU核數設置為電腦的CPU核數量
1、 進入激活項目屬性設置,進入 c/c++Build,按照下面的圖設置:
如果默認 build command 不是 make –j4,那么取消 Use default build command 選項,直接按照下面配置:
然后配置 Behaviour 項,這里以電腦的核心為4來配置,如果電腦的核心為8個,則Use parallel jobs設置為8,
另外選項“Stop on first build error”默認是選中狀態,這樣在編譯時一旦出錯就會停止繼續編譯;如果未選中,即使出現編譯錯誤也會繼續向下編譯其它c文件直到編譯結束。
優化方法2:避免每次都生成makefile文件以及臨時文件
HighTec在編譯時默認是根據工程源文件文件架構首先生成makefile文件,然后執行“make makefile”指令來編譯工程。
需要注意的是這樣每次在你每次單擊“編譯”按鈕時每次都會生成makefile文件。假如工程中沒有增加或刪除c/h文件,每次生成的makefile是一樣的,也就是生成makefile步驟是重復執行的,因此我們可以按照下圖將“Generate Makefiles automatically”取消掉。
另外進入激活項目屬性設置->Setting->Tricore c Compiler->Output,按照下面圖片要求進行設置,取消編譯過程的臨時文件。
優化方法3:手寫makefile,通過編譯命令優化
如果自己寫的 makefile 文件,需要在編譯選項里面添加-pipe,去掉-Wa,-ahlms=${OutputFileBaseName}.lst,-save-temps 選項。比如在 BaseFrameWork 項目里面的 CfgCompiler_Gnuc.mk 文件需要修改
# Compiler options
CC_OPTIONS_MAIN = -DGNU -msmall-const=8 -Wall -g -O2
-fno-common -fno-short-enums -mtc161 -fsingle-precision-constant
-fstrict-volatile-bitfields -g –c
-pipe
里面添加-pipe,不能包含-Wa,-ahlms=${OutputFileBaseName}.lst, -save-temps 選項。
優化方法4:將程序模塊編譯成靜態庫
將代碼工程按模塊化劃分,將部分模塊拆分成一個工程,編譯成靜態庫,然后再在大工程編譯的時候link該庫,這樣可以減少編譯時間,工程設置為生成靜態庫文件而不是可執行elf文件。
優化方法5:釋放電腦資源
最后就是干掉殺毒軟件等耗CPU和內存的軟件,釋放電腦資源。
審核編輯:黃飛
-
cpu
+關注
關注
68文章
10879瀏覽量
212194 -
內存
+關注
關注
8文章
3037瀏覽量
74143 -
嵌入式開發
+關注
關注
18文章
1033瀏覽量
47607 -
編輯器
+關注
關注
1文章
806瀏覽量
31209
原文標題:HighTec Tricore如何提高編譯速度
文章出處:【微信號:eng2mot,微信公眾號:汽車ECU開發】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論