如何快速提高英飞凌单片机编译器 TASKING TriCore Eclipse IDE 编译速度
1、前言
使用英飛凌單片機編譯器 TASKING TriCore Eclipse IDE 開發編譯時,想必感受最深刻的就是編譯速度,那是非常慢了,如果是部分修改的源文件編譯還好,不用等太久,而如果選擇需要全部編譯,那么這個時間就很長了。
網上也有一些帖子講述了如何提高 Tasking 編譯速度的方式,比如更改多線程編譯的數目、更改編譯等級和減少編譯輸出內容等來提高編譯速度。
不過這些方式沒有很明顯的提升, Tasking 多線程編譯選項基本是默認的,會根據電腦的配置自動選擇最優的線程數目進行編譯,而編譯等級和編譯輸出內容(如map文件)算是治標不治本,因為調試開發階段這些是不可或缺的,沒有調試信息的情況下在仿真調試階段異常屬于閉眼走路。
下面會介紹幾個方式來提高 Tasking 編譯時的速度,也會介紹如何修改編譯時的多線程數目。
2、提升編譯速度方法
以下的測試結果所使用的電腦配置:Windows 10 + 英特爾 i7(8核) + 64G內存 。
在設置之前首先全部編譯一遍代碼,方便對比編譯時長,此次編譯所耗時長是 480826ms ≈ 8 分鐘。
Time consumed: 480826 ms **** End of build ****2.1、編譯時的線程數目
右擊工程,選擇 "Properties -> C/C++ Build -> Behavior",選擇 "Use parallel jobs",為了明顯比較,這里設置 16(默認8)
看一下編譯時的CPU使用率,達到了 100%(因為還有其他軟件在運行,所以 Tasking 占據了 80%)。
此次編譯所耗時長是 489038ms ≈ 8 分鐘,沒有明顯變化,建議采用默認的線程數目即可。
關于編譯時的線程數目,不是越多越好:CPU密集型任務,并行執行的線程數應該盡量和CPU核心數保持一致,否則超過了CPU核心數,再提高線程數也不會提高處理速度,反而因為上下文切換帶來的損耗降低處理速度。
Time consumed: 489038 ms **** End of build ****2.2、Makefile 的自動生成
Tasking 在編譯時會為項目工程源碼自動生成 Makefile 文件,可以查看工程目錄下的 Debug 目錄,里面基本都是各個源文件的 makefile 文件,都是在編譯時自動生成的。每次編譯(包含修改部分編譯)都會重新生成一次,這里也需要占用一些編譯的時間,那么這次測試取消編譯時總是生成 Makefile 選項后能提高多少。
右擊工程,選擇 "Properties -> C/C++ Build -> Builder Settings",取消勾選 "Generate Makefiles automatically"(如果新增了文件,那么最好重新勾選上并生成,否則編譯時新增的源碼文件不會被編譯)。
此時測試編譯耗時為 489543ms ≈ 8 分鐘,沒有明顯變化。
Time consumed: 489543 ms **** End of build ****2.3、內存參數配置
由于 Tasking 是基于 eclipse 集成開發環境平臺擴展的 IDE,因此可以根據如何提高 eclipse 的編譯速度的方式對 Tasking 進行同樣的設置。
打開 Tasking 的安裝路徑,找到 eclipse.ini 文件,修改配置信息提高 Tasking 的編譯速度,-Xms設置為 2048,-Xmx設置為4096。
-vmargs:說明后面是VM的參數
-Xms256m:虛擬機占用系統的最小內存
-Xmx1024m:虛擬機占用系統的最大內存
建議把這個稍微設大一點,不過要根據自己機器內存大小來設置(可能設置后出現打不開,那就嘗試再小些)
此時測試編譯耗時為 438945ms ≈ 7 分鐘,有些許變化。
Time consumed: 438945 ms **** End of build ****2.4、靜態庫鏈接
從編譯的記錄看,iLLD 庫源碼編譯的時長是占比最大的,而通常情況下除非庫有問題或者需要性能優化,基本不會隨意修改 iLLD 的源碼內容,但是每次全部編譯都會重新編譯這一部分源碼內容,因此,如果想提高編譯速度的話,那么這一塊就是就是重點需要解決的部分。
將 iLLD 編譯成靜態庫,然后在編譯時不再編譯 iLLD 源碼,通過靜態鏈接的方式完成整個工程的編譯。
1、首先右擊工程中添加的 iLLD 目錄,按下圖選項不再編譯 iLLD 源碼。
?2、將編譯好的 iLLD 靜態庫放在 iLLD 目錄下,新建一個 Lib 存放,此時可以看到 Src 是灰色的,代表不被編譯。
?3、右擊工程,"Properties -> C/C++ Build -> Settings -> Tool Settings",按下圖添加靜態庫,然后編譯。
?4、此時測試編譯耗時為 235933ms ≈ 4 分鐘,發生了明顯的變化,編譯時間縮短了一倍。
Time consumed: 235933 ms **** End of build ****?3、總結
綜上所述,四種方式中只有靜態鏈接的方式會明顯縮短編譯時間外,其他幾種方式均沒有太明顯的變化。
注:由于反復操作對比,即使沒有按上述方式修改的情況下,每次編譯時長都會比上次編譯要久,所以上述除了靜態鏈接的方式外,其他方式的測試編譯時長僅供參考。
總結
以上是生活随笔為你收集整理的如何快速提高英飞凌单片机编译器 TASKING TriCore Eclipse IDE 编译速度的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 中粮营销致远A6应用探秘:高速审批执行,
- 下一篇: 锋云数据服务器管理文件说明书,云端数据库