0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

HighTec Tricore編譯速度優(yōu)化策略探討

汽車ECU開發(fā) ? 來源:汽車ECU開發(fā) ? 2024-04-10 12:44 ? 次閱讀

在車載嵌入式開發(fā)過程中,除了常用tasking作為編輯器,hightec也是常用的之一,在之前分享過一份tasking提高編譯速度的文章(回送門:TASKING TriCore如何提高編譯速度)。下面根據(jù)使用經(jīng)驗(yàn)整理了一些hightec方法。

優(yōu)化方法1:?jiǎn)⒂闷叫芯幾g并將CPU核數(shù)設(shè)置為電腦的CPU核數(shù)量

1、 進(jìn)入激活項(xiàng)目屬性設(shè)置,進(jìn)入 c/c++Build,按照下面的圖設(shè)置:

fa1aae5e-f6e2-11ee-a297-92fbcf53809c.png

如果默認(rèn) build command 不是 make –j4,那么取消 Use default build command 選項(xiàng),直接按照下面配置:

fa3da24c-f6e2-11ee-a297-92fbcf53809c.png

然后配置 Behaviour 項(xiàng),這里以電腦的核心為4來配置,如果電腦的核心為8個(gè),則Use parallel jobs設(shè)置為8,

另外選項(xiàng)“Stop on first build error”默認(rèn)是選中狀態(tài),這樣在編譯時(shí)一旦出錯(cuò)就會(huì)停止繼續(xù)編譯;如果未選中,即使出現(xiàn)編譯錯(cuò)誤也會(huì)繼續(xù)向下編譯其它c(diǎn)文件直到編譯結(jié)束。

fa4bce76-f6e2-11ee-a297-92fbcf53809c.png

優(yōu)化方法2:避免每次都生成makefile文件以及臨時(shí)文件

HighTec在編譯時(shí)默認(rèn)是根據(jù)工程源文件文件架構(gòu)首先生成makefile文件,然后執(zhí)行“make makefile”指令來編譯工程。

需要注意的是這樣每次在你每次單擊“編譯”按鈕時(shí)每次都會(huì)生成makefile文件。假如工程中沒有增加或刪除c/h文件,每次生成的makefile是一樣的,也就是生成makefile步驟是重復(fù)執(zhí)行的,因此我們可以按照下圖將“Generate Makefiles automatically”取消掉。

fb1a9bd4-f6e2-11ee-a297-92fbcf53809c.png

另外進(jìn)入激活項(xiàng)目屬性設(shè)置->Setting->Tricore c Compiler->Output,按照下面圖片要求進(jìn)行設(shè)置,取消編譯過程的臨時(shí)文件。

fb28ecf2-f6e2-11ee-a297-92fbcf53809c.png

優(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)庫

將代碼工程按模塊化劃分,將部分模塊拆分成一個(gè)工程,編譯成靜態(tài)庫,然后再在大工程編譯的時(shí)候link該庫,這樣可以減少編譯時(shí)間,工程設(shè)置為生成靜態(tài)庫文件而不是可執(zhí)行elf文件。

fb4a9726-f6e2-11ee-a297-92fbcf53809c.png

優(yōu)化方法5:釋放電腦資源

最后就是干掉殺毒軟件等耗CPU和內(nèi)存的軟件,釋放電腦資源。

審核編輯:黃飛

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    10772

    瀏覽量

    210438
  • 內(nèi)存
    +關(guān)注

    關(guān)注

    8

    文章

    2947

    瀏覽量

    73729
  • 嵌入式開發(fā)
    +關(guān)注

    關(guān)注

    18

    文章

    1012

    瀏覽量

    47430
  • 編輯器
    +關(guān)注

    關(guān)注

    1

    文章

    798

    瀏覽量

    31011

原文標(biāo)題:HighTec Tricore如何提高編譯速度

文章出處:【微信號(hào):eng2mot,微信公眾號(hào):汽車ECU開發(fā)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    TC1766通過HIGHTec編譯不會(huì)產(chǎn)生elf文件怎么解決?

    TC1766,在DAVE生成工程時(shí),其編譯器選項(xiàng)只有GNU和TASKing,導(dǎo)入到HIGHTec編譯時(shí)不會(huì)產(chǎn)生elf文件;TC1767的話,生成DAVE工程的編譯器選項(xiàng)是TASKing
    發(fā)表于 02-04 09:35

    HighTec工程編譯出錯(cuò),已經(jīng)添加了路徑,但還出錯(cuò)是怎么回事?

    HighTec工程編譯出錯(cuò),已經(jīng)添加了路徑,但還出錯(cuò)!#include \"Tricore/Compilers/Compilers.h\" /* mapping compiler
    發(fā)表于 02-04 06:34

    HIGHTEC創(chuàng)建工程導(dǎo)入iLLD遇到的疑問求解

    HIGHTEC環(huán)境,導(dǎo)入iLLD,想要使用ILLD自帶的start函數(shù)。在注冊(cè)irq函數(shù)時(shí):C:UsersHAIGU~1AppDataLocalTempccBXRWbc.s: Assembler
    發(fā)表于 02-05 08:00

    hightec編譯時(shí),已添加路徑卻仍然有找不到文件的error是為什么?

    如題,Hightec編譯時(shí),已在properties中添加complier包含的文件路徑,仍然編譯不通過,顯示找不到文件的error。哪位大俠知道怎么回事?
    發(fā)表于 02-05 06:37

    hightec新建工程的向?qū)ы撁鏇]有TriCore板可選,是否安裝失敗了?

    hightec新建工程的向?qū)ы撁鏇]有TriCore板可選,是否安裝失敗了(已添加license)
    發(fā)表于 02-06 07:05

    HIGHTEC編譯報(bào)錯(cuò)“recipe for target failed”的原因?怎么解決?

    操作系統(tǒng):WIN10版本:free_tricore_entry_tool_chain_4.9.3.0,已安裝證書新建HighTec Project,選擇芯片為TC397B,執(zhí)行Build
    發(fā)表于 02-18 07:51

    Infineon官網(wǎng)下載的Demo工程,Tasking編譯通過,移植Hightec報(bào)故障怎么解決?

    Demo工程在Tasking工程中,編譯成功。 按照論壇大神之前分享的資料移植至Hightec編譯器(lsl鏈接文件路徑已修改,頭文件已添加,),編譯報(bào)錯(cuò),如何解決?該在哪個(gè)文件夾下設(shè)
    發(fā)表于 02-20 08:11

    Hightec GNU學(xué)習(xí)的linker筆記(可參考Hightec GNU的linker手冊(cè))

    自己學(xué)習(xí)Hightec GNU的linker的筆記(可參考Hightec GNU的linker手冊(cè)),因?yàn)槭亲詫W(xué)的,記錄可能比較混亂。感興趣的初學(xué)同學(xué)可以參考一下。建議還是以手冊(cè)為準(zhǔn)。linker notes.pdf (713.84 KB )
    發(fā)表于 12-14 10:41

    Linux系統(tǒng)的性能優(yōu)化策略

    近年來,世界上許多大軟件公司紛紛推出各種Linux服務(wù)器系統(tǒng)及Linux下的應(yīng)用軟件。目前,Linux 已可以與各種傳統(tǒng)的商業(yè)操作系統(tǒng)分庭抗禮,在服務(wù)器市場(chǎng),占據(jù)了相當(dāng)大的份額。本文分別從磁盤調(diào)優(yōu),文件系統(tǒng),內(nèi)存管理以及編譯優(yōu)化等方面來論述 Linux系統(tǒng)的
    發(fā)表于 07-16 06:23

    FPGA設(shè)計(jì)應(yīng)用及優(yōu)化策略有哪些?

    EDA技術(shù)具有什么特征?FPGA是什么原理?FPGA設(shè)計(jì)應(yīng)用及優(yōu)化策略基于VHDL的FPGA系統(tǒng)行為級(jí)設(shè)計(jì)
    發(fā)表于 04-15 06:33

    英飛凌Tricore系列單片機(jī)開發(fā)工具HighTec免費(fèi)申請(qǐng)方法

    英飛凌Tricore系列單片機(jī)開發(fā)工具HighTec免費(fèi)申請(qǐng)方法
    發(fā)表于 11-13 15:51 ?20次下載
    英飛凌<b class='flag-5'>Tricore</b>系列單片機(jī)開發(fā)工具<b class='flag-5'>HighTec</b>免費(fèi)申請(qǐng)方法

    淺談hightec編譯鏈接文件

    hightec編譯鏈接文件的后綴為ld,因此后文簡(jiǎn)稱ld文件,ld文件主要分為三個(gè)部分:宏定義、MEMORY命令、SECTIONS命令。
    的頭像 發(fā)表于 03-15 11:13 ?3697次閱讀

    如何搭建BIFACES+HighTec開發(fā)環(huán)境

    環(huán)境,但其本身是不集成編譯器(Compiler)的,這就需要為工程項(xiàng)目配置外置的編譯器,下面以使用HighTec集成的編譯器為例介紹搭建步驟。
    的頭像 發(fā)表于 04-12 10:22 ?1428次閱讀

    基于Tricore架構(gòu)的RTThread多核實(shí)現(xiàn)

    在《基于Hightec+TC375TP的RT-Thread移植詳解 》一文中,基于Tricore實(shí)現(xiàn)了單核RTThread的移植。最近,花了些時(shí)間完成遺留的任務(wù):基于Tricore的多核移植。目前
    的頭像 發(fā)表于 09-12 18:40 ?975次閱讀

    Keil編譯優(yōu)化方法

    我們都知道,代碼是可以通過編譯優(yōu)化的,有的時(shí)候,為了提高運(yùn)行速度或者減少代碼尺寸,會(huì)開啟優(yōu)化選項(xiàng)。
    的頭像 發(fā)表于 10-23 16:35 ?54次閱讀
    Keil<b class='flag-5'>編譯</b>器<b class='flag-5'>優(yōu)化</b>方法