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

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

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

如何降低Build時(shí)間?有哪些方法呢?

IAR愛亞系統(tǒng) ? 來源:IAR愛亞系統(tǒng) ? 2023-08-24 17:06 ? 次閱讀

隨著嵌入式系統(tǒng)功能越來越多,嵌入式軟件代碼也越來越復(fù)雜,Build時(shí)間也越來越長(zhǎng)。

本文主要介紹如何降低build時(shí)間。

降低Build時(shí)間

使能Parallel Build

使能Parallel Build (Tools > Options > Project > Enable parallel build) (注意:IDE 9版本以上,Enable parallel build是默認(rèn)勾選的):

e3996c64-425c-11ee-a2ef-92fbcf53809c.png正確包含頭文件

確保頭文件里面使用頭文件保護(hù),以避免頭文件被重復(fù)包含:

#ifndef HFILE_H
#define HFILE_H
 /* ... */
#endif

確保源文件里面只包含對(duì)應(yīng)需要的頭文件。源文件里面包含不需要的頭文件可能不會(huì)影響編譯的結(jié)果,但是會(huì)影響build時(shí)間(build的時(shí)候會(huì)對(duì)所有的頭文件進(jìn)行預(yù)處理),另外還會(huì)影響代碼的可讀性(一般添加對(duì)應(yīng)的頭文件說明跟對(duì)應(yīng)模塊有關(guān)聯(lián))。

可以通過查看對(duì)應(yīng)的預(yù)處理輸出來查看對(duì)應(yīng)的頭文件包含信息:Options > C/C++ Compiler > Preprocessor > Preprocessor output to file:

e3d1c8ac-425c-11ee-a2ef-92fbcf53809c.png

編譯會(huì)輸出對(duì)應(yīng)的.i文件,里面會(huì)包含對(duì)應(yīng)頭文件包含信息:

e3fc6422-425c-11ee-a2ef-92fbcf53809c.png

創(chuàng)建和使用Library

對(duì)于一些不需要每次Re-build的代碼(典型的有RTOS的內(nèi)核靜態(tài)代碼,BSP的靜態(tài)代碼等),可以創(chuàng)建Library (Options > General Options > Output > Library),然后在工程里面添加對(duì)應(yīng)的Library (Options > Linker > Library > Additional libraries: (one per line)),這樣build的時(shí)候?qū)?yīng)Library的代碼就不需要重新編譯。

e4248ac4-425c-11ee-a2ef-92fbcf53809c.pnge45db628-425c-11ee-a2ef-92fbcf53809c.png

不使能編譯器輸出列表文件

不要勾選輸出編譯器輸出列表文件:Options > C/C++ Compiler > List:

e47ec5d4-425c-11ee-a2ef-92fbcf53809c.png

把源文件移到本地電腦上進(jìn)行Build

如果build的時(shí)候,對(duì)應(yīng)源文件沒有在本地電腦上,而是通過網(wǎng)絡(luò)連接訪問,建議把源文件移到本地電腦進(jìn)行build,避免因?yàn)榫W(wǎng)絡(luò)連接問題導(dǎo)致build時(shí)間很長(zhǎng)。

在Windows命令行調(diào)用iarbuild命令進(jìn)行Build


通常來說,在Windows命令行調(diào)用iarbuild命令進(jìn)行build比在IAR Embedded Workbench IDE進(jìn)行build要稍微快一些。

Linux服務(wù)器上使用IAR Build Tools進(jìn)行Build

前面介紹的一些方法都是基于Windows的IAR Embedded Workbench,IAR提供了可以在Linux上運(yùn)行的IAR Build Tools:

e4bb7b5a-425c-11ee-a2ef-92fbcf53809c.png

通常來說Linux上調(diào)用IAR Build Tool進(jìn)行build會(huì)比Windows的IAR Embedded Workbench進(jìn)行build要快一些。下面是在同等電腦配置下Linux的IAR Build Tools和Windows的IAR Embedded Workbench的build時(shí)間對(duì)比,可以看到Linux的IAR Build Tools比Windows的IAR Embedded Workbench的build時(shí)間要降低不少。如果Linux服務(wù)器電腦配置更高,對(duì)應(yīng)的build時(shí)間會(huì)降低更多。

e4e33032-425c-11ee-a2ef-92fbcf53809c.png

總結(jié)

本文主要介紹了如何降低build時(shí)間的一些方法,用戶可以根據(jù)具體情況選擇對(duì)應(yīng)的方法來降低build時(shí)間,提高研發(fā)效率。





審核編輯:劉清

聲明:本文內(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)投訴
  • 嵌入式系統(tǒng)
    +關(guān)注

    關(guān)注

    41

    文章

    3553

    瀏覽量

    129113
  • RTOS
    +關(guān)注

    關(guān)注

    21

    文章

    809

    瀏覽量

    119362
  • C++語言
    +關(guān)注

    關(guān)注

    0

    文章

    147

    瀏覽量

    6951
  • 預(yù)處理器
    +關(guān)注

    關(guān)注

    0

    文章

    13

    瀏覽量

    2216
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    請(qǐng)問大致哪些方法能夠完成我檢測(cè)擾動(dòng)發(fā)生時(shí)間的目的

    請(qǐng)問我做的是電網(wǎng)擾動(dòng)檢測(cè),上傳的數(shù)據(jù)帶有統(tǒng)一時(shí)標(biāo),數(shù)據(jù)是最開始穩(wěn)定的,當(dāng)出現(xiàn)擾動(dòng)時(shí)數(shù)據(jù)發(fā)生突變,哪些方法能夠檢測(cè)出突變數(shù)據(jù),從而得出擾動(dòng)時(shí)間 ,希望大家多多幫忙哦,我在這里先謝謝大
    發(fā)表于 06-09 15:55

    什么方法可以降低Linux的成本嗎?

    請(qǐng)問什么方法可以降低Linux的成本嗎?
    發(fā)表于 04-25 06:15

    什么方法可以降低電纜的電感量嗎?

    什么方法可以降低電纜的電感量嗎?
    發(fā)表于 05-11 07:02

    什么方法可以降低微波/射頻器件的成本嗎?

    什么方法可以降低微波/射頻器件的成本嗎?
    發(fā)表于 05-25 06:49

    什么方法可以降低LCD的噪聲?

    液晶顯示(LCD)技術(shù)的基本原理是什么?液晶顯示(LCD)噪聲產(chǎn)生的原因是什么?什么方法可以降低LCD的噪聲?
    發(fā)表于 05-31 06:08

    請(qǐng)教一下怎么去降低帶隙上電穩(wěn)定時(shí)間?

    啟動(dòng)時(shí)震蕩時(shí)間過長(zhǎng),恢復(fù)時(shí)間都有接近15us了,請(qǐng)問什么辦法能夠降低恢復(fù)時(shí)間?
    發(fā)表于 06-22 07:33

    什么方法可以降低IC封裝的熱阻嗎?求解

    什么方法可以降低IC封裝的熱阻嗎?求解
    發(fā)表于 06-23 07:24

    什么方法可以實(shí)現(xiàn)時(shí)間戳轉(zhuǎn)日期的算法

    什么方法可以實(shí)現(xiàn)時(shí)間戳轉(zhuǎn)日期的算法?怎樣去實(shí)現(xiàn)時(shí)間戳轉(zhuǎn)日期的算法?
    發(fā)表于 10-19 09:23

    FPGA中組合邏輯門占用資源過多怎么降低?

    FPGA中組合邏輯門占用資源過多怎么降低?什么方法嗎?
    發(fā)表于 04-23 14:31

    小米6發(fā)布時(shí)間確定:時(shí)間了,那小米6配置

     4月19日是小米6的發(fā)布時(shí)間。廢話不多說,時(shí)間了,配置?
    發(fā)表于 04-12 23:18 ?1643次閱讀

    如何降低build時(shí)間的辦法

    確保源文件里面只包含對(duì)應(yīng)需要的頭文件。源文件里面包含不需要的頭文件可能不會(huì)影響編譯的結(jié)果,但是會(huì)影響build時(shí)間build的時(shí)候會(huì)對(duì)所有的頭文件進(jìn)行預(yù)處理),另外還會(huì)影響代碼的可讀性(一般添加對(duì)應(yīng)的頭文件說明跟對(duì)應(yīng)模塊有關(guān)聯(lián)
    發(fā)表于 08-24 17:08 ?339次閱讀
    如何<b class='flag-5'>降低</b><b class='flag-5'>build</b><b class='flag-5'>時(shí)間</b>的辦法

    哪些方法能夠降低開關(guān)電源EMI的影響?

    哪些方法能夠降低開關(guān)電源EMI的影響? 降低開關(guān)電源電磁干擾(EMI)的影響是一個(gè)重要的問題,特別是在要求電子設(shè)備對(duì)EMI敏感的應(yīng)用中。
    的頭像 發(fā)表于 11-07 10:35 ?784次閱讀

    如何降低芯片上電時(shí)的峰值電流?

    如何降低芯片上電時(shí)的峰值電流? 降低芯片上電時(shí)的峰值電流是提高芯片可靠性和效率的關(guān)鍵問題之一。在本文中,我將詳細(xì)介紹一些降低芯片上電時(shí)峰值電流的有效
    的頭像 發(fā)表于 11-07 10:42 ?1340次閱讀

    常見的降低接地電阻的方法哪些?

    常見的降低接地電阻的方法哪些? 降低接地電阻是保證電氣設(shè)備正常運(yùn)行和提高設(shè)備安全性的重要措施之一。在實(shí)際工程應(yīng)用中,可以采取多種
    的頭像 發(fā)表于 01-23 15:28 ?2659次閱讀

    電機(jī)損耗降低方法哪些

    電機(jī)作為現(xiàn)代工業(yè)生產(chǎn)中不可或缺的動(dòng)力設(shè)備,其性能的優(yōu)化與效率的提升對(duì)于節(jié)能減排、提高生產(chǎn)效率具有重要意義。電機(jī)損耗的降低不僅有助于減少能源消耗,還能延長(zhǎng)電機(jī)的使用壽命,提高設(shè)備的整體運(yùn)行效率。本文將詳細(xì)介紹電機(jī)損耗降低方法,并
    的頭像 發(fā)表于 06-11 17:31 ?661次閱讀