在車載嵌入式開發(fā)過程中,除了常用tasking作為編輯器,hightec也是常用的之一,在之前分享過一份tasking提高編譯速度的文章(回送門:TASKING TriCore如何提高編譯速度)。下面根據(jù)使用經(jīng)驗(yàn)整理了一些hightec方法。
優(yōu)化方法1:啟用平行編譯并將CPU核數(shù)設(shè)置為電腦的CPU核數(shù)量
1、 進(jìn)入激活項(xiàng)目屬性設(shè)置,進(jìn)入 c/c++Build,按照下面的圖設(shè)置:
如果默認(rèn) build command 不是 make –j4,那么取消 Use default build command 選項(xiàng),直接按照下面配置:
然后配置 Behaviour 項(xiàng),這里以電腦的核心為4來配置,如果電腦的核心為8個,則Use parallel jobs設(shè)置為8,
另外選項(xiàng)“Stop on first build error”默認(rèn)是選中狀態(tài),這樣在編譯時一旦出錯就會停止繼續(xù)編譯;如果未選中,即使出現(xiàn)編譯錯誤也會繼續(xù)向下編譯其它c(diǎn)文件直到編譯結(jié)束。
優(yōu)化方法2:避免每次都生成makefile文件以及臨時文件
HighTec在編譯時默認(rèn)是根據(jù)工程源文件文件架構(gòu)首先生成makefile文件,然后執(zhí)行“make makefile”指令來編譯工程。
需要注意的是這樣每次在你每次單擊“編譯”按鈕時每次都會生成makefile文件。假如工程中沒有增加或刪除c/h文件,每次生成的makefile是一樣的,也就是生成makefile步驟是重復(fù)執(zhí)行的,因此我們可以按照下圖將“Generate Makefiles automatically”取消掉。
另外進(jìn)入激活項(xiàng)目屬性設(shè)置->Setting->Tricore c Compiler->Output,按照下面圖片要求進(jìn)行設(shè)置,取消編譯過程的臨時文件。
優(yōu)化方法3:手寫makefile,通過編譯命令優(yōu)化
如果自己寫的 makefile 文件,需要在編譯選項(xiàng)里面添加-pipe,去掉-Wa,-ahlms=${OutputFileBaseName}.lst,-save-temps 選項(xiàng)。比如在 BaseFrameWork 項(xiàng)目里面的 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 選項(xiàng)。
優(yōu)化方法4:將程序模塊編譯成靜態(tài)庫
將代碼工程按模塊化劃分,將部分模塊拆分成一個工程,編譯成靜態(tài)庫,然后再在大工程編譯的時候link該庫,這樣可以減少編譯時間,工程設(shè)置為生成靜態(tài)庫文件而不是可執(zhí)行elf文件。
優(yōu)化方法5:釋放電腦資源
最后就是干掉殺毒軟件等耗CPU和內(nèi)存的軟件,釋放電腦資源。
審核編輯:黃飛
-
cpu
+關(guān)注
關(guān)注
68文章
10908瀏覽量
213088 -
內(nèi)存
+關(guān)注
關(guān)注
8文章
3060瀏覽量
74353 -
嵌入式開發(fā)
+關(guān)注
關(guān)注
18文章
1035瀏覽量
47731 -
編輯器
+關(guān)注
關(guān)注
1文章
806瀏覽量
31297
原文標(biāo)題:HighTec Tricore如何提高編譯速度
文章出處:【微信號:eng2mot,微信公眾號:汽車ECU開發(fā)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
TC1766通過HIGHTec編譯不會產(chǎn)生elf文件怎么解決?
HighTec工程編譯出錯,已經(jīng)添加了路徑,但還出錯是怎么回事?
HIGHTEC創(chuàng)建工程導(dǎo)入iLLD遇到的疑問求解
hightec編譯時,已添加路徑卻仍然有找不到文件的error是為什么?
hightec新建工程的向?qū)ы撁鏇]有TriCore板可選,是否安裝失敗了?
HIGHTEC編譯報錯“recipe for target failed”的原因?怎么解決?
Hightec GNU學(xué)習(xí)的linker筆記(可參考Hightec GNU的linker手冊)
Linux系統(tǒng)的性能優(yōu)化策略
英飛凌Tricore系列單片機(jī)開發(fā)工具HighTec免費(fèi)申請方法
![英飛凌<b class='flag-5'>Tricore</b>系列單片機(jī)開發(fā)工具<b class='flag-5'>HighTec</b>免費(fèi)申請方法](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
淺談hightec的編譯鏈接文件
如何搭建BIFACES+HighTec開發(fā)環(huán)境
基于Tricore架構(gòu)的RTThread多核實(shí)現(xiàn)
HighTec C/C++編譯器支持Andes晶心科技RISC-V IP
HighTec C/C++編譯器套件全面支持芯來RISC-V IP
![<b class='flag-5'>HighTec</b> C/C++<b class='flag-5'>編譯</b>器套件全面支持芯來RISC-V IP](https://file1.elecfans.com/web3/M00/03/5F/wKgZPGdot_6AdiTyAAAuxvV0qeo970.png)
評論