99国产精品欲av蜜臀,可以直接免费观看的AV网站,gogogo高清免费完整版,啊灬啊灬啊灬免费毛片

網易首頁 > 網易號 > 正文 申請入駐

開源嵌入式編譯器,沒想象中那么好?

0
分享至

▲ 點擊上方 藍字 關注我們,不錯過任何一篇干貨文章!

工欲善其事,必先利其器,對嵌入式工程師來說,嵌入式編譯器是不可或缺的神兵利器,它被人冠以“C語言翻譯官”的名號。 由于C語言歷史悠久,早期沒有規范,整個計算機產業也都處于拓荒的年代,所以就涌現了很多款C語言編譯器。

根據EEWorld的調研,嵌入式工程師比較青睞的嵌入式編譯器主要包括Keil(ArmCC)、IAR、GCC、AVR GCC、CLion、Clang、green hills、TI的CSS、ADI的Visual DSP++。不過,隨著嵌入式開發格局逐漸穩固,Keil、IAR、GCC成為嵌入式編譯器三巨頭,基本大部分嵌入式產品都有其身影。

尤其是GCC,作為一個完全開源的編譯器,很多MCU廠商的IDE都由它改寫而來。但最近一段時間,業界出現不同的聲音,表示“開源才是最貴的”,這些編譯器在開源背后潛藏許多隱形成本。

付斌|作者

電子工程世界(ID:EEWorldbbs)|出品

RTOS中,GCC沒打過IAR

現如今,“C/C++與RTOS結合使用”是嵌入式軟件開發的黃金范式,所以在嵌入式領域,判別編譯器好不好用,那一定是在RTOS上好用。

根據著名嵌入式Jacob Beningo的測試,使用IAR編譯時,RTOS指標性能比使用GCC編譯時要好得多。根據公制測試,結果略有不同,但通常要好20~40%。以其中一個示例結果為例,該示例將IAR指標結果除以 ThreadX(Eclipse ThreadX)的GCC指標結果。

  • RTOS測試 ThreadX

  • 基準測試 74%

  • 系統調度 3%

  • 內存分配測試 28%

  • 消息處理 41%

  • 搶占式調度 19%

  • 同步處理 32%

也許會有人說,編寫代碼的質量決定了性能好壞。這句話確實沒錯,人們可以花費大把時間,細致地優化代碼,但這不意味著開發時間更長,開發成本更高?

比如說,一些IoT項目工期比較短,有時候如果沒有來得及去優化,那可能GCC處理時間會增加20%,并且讓電池更費電。又或者,GCC編譯的代碼可能體積也會更大,這時候,內存從120MHz就需要變相升級到200MHz,這幾塊錢的差距,就會讓產品成本大幅度增加。

GCC的確是行業一個福音,但相比商業編譯器,也許它本身也存在一定額外的隱形開銷??茨壳癛TOS抑或是開源RTOS本身也是附帶工具鏈的,大部分則只支持GCC,卻不支持商業編譯器IAR,這種情況導致客戶選擇面變窄。

Keil比GCC編譯文件,更小

雖然Keil目前已經包括五種版本,其中不乏全免費的教育版,而且STM32之類的MCU使用Keil也是免費的,但如果做一些很深入的開發工作,Keil本身還是需要付費的。所以它實質上還是算在商業編譯器范疇內。

在工程師群里,很多人都提到一個話題,就是Keil的ArmCC編譯器很神。那么實際情況如何呢?

根據工程師的測試,可以得知,GCC的編譯速度最快(Keil和VisualGDB都開啟多線程編譯的)。而bin體積最小的是ArmCC V5。代碼的執行效率沒有測。

而ArmCC V5和V6對比,編譯用時差異不大,手動掐表可以認為是誤差范圍內。但是bin體積V5比V6小很多。

優化選項

O0

O1

O2

O3

Ofast

Os

Oz

ARMCC V6.9

bin大小(KB)

87.84kB

編譯用時(秒)

7.23

7.52

7.99

8.3

8.4

8.17

7.64

ARMCC V5.06

bin大小(KB)

編譯用時(秒)

7.93

8.25

8.15

9.68

GCC 7.2

bin大小(KB)

176

135

136

144

129

編譯用時(秒)

3.49

3.63

3.68

4.12

3.96

為什么有時候會出現文件大小區別的情況?有工程師也曾經遇到過GCC編譯bin文件比ArmCC大的情況,通過捋順代碼,發現有些原廠本身做了一些優化工作,所以實際上這本身也就節省了工程師優化的時間。

也有工程師表示,Keil有Keil的優勢,GCC有GCC的優勢,二者大多數情況下不可兼得;Keil(ArmCC)編譯對Arm芯片有天然的優勢,無論從代碼性能和代碼尺寸都有更佳的表現;GCC優勢在于開源,利于折騰。

也有工程師在m0上做了實驗,使用同樣的代碼觸發pendsv中斷,ArmCC響應時間為68clocks,gcc響應時間為78clocks。他表示,雖然ArmCC不開源、不免費、不可控,但是它會更代碼執行效率更高。


ArmCC 中斷響應匯編


GCC中斷響應匯編

用誰,工程師各持己見

蘿卜青菜各有所愛,不論如何測試,工程師總是有自己的偏好。因為公司需求不同,對于Flash、執行速度、交付等要求不同,使用不同編譯器都有不同的結果。

喜歡Keil的,在實際體驗中,ac6的Osize優化特別猛,性能稍微弱一丟丟,但是體積特別小,其它編譯器都比不過,同樣的程序比gcc能小四分之一。但它讓人又愛又恨,就比如MDK AC6曾經出現過調試到處亂跳的問題,不過商業版本有所改善,或者說MDK經常把if-else結構優化成IT匯編指令,在反匯編窗口中打的斷點都命中了實際確不會執行。很多人表示,習慣了。

有人更喜歡用IAR,IAR不僅比Keil便宜很多,而且還內置了misra靜態檢查工具,很方便。

有傳統GCC派,gdb調試Vscode編輯,在Linux系統下編譯很香,有些老板不在意Flash的情況下,可以有最快的交付速度。也有Clion、Clang之類的新派。

那么,你怎么看待不同編譯器之間的差異問題,你又會選用什么編譯器?

參考文獻

[1]https://www.embedded.com/the-hidden-costs-of-open-source-compilers

[2]https://www.zhihu.com/question/26864086/answer/280900095

[3]https://club.rt-thread.org/ask/article/866813c0a2efd608.html

[4]https://www.bilibili.com/video/BV18h4y1v7yR

歡迎將我們設為“星標”,這樣才能第一時間收到推送消息。

領領取自動駕駛、輔助駕駛等方面免費資料包!

掃碼添加小助手回復“進群”

和電子工程師們面對面交流經驗

特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相關推薦
熱點推薦
大比分2-1!塔圖姆空砍36+9,黑馬雙星合砍61分,凱爾特人遭逆轉

大比分2-1!塔圖姆空砍36+9,黑馬雙星合砍61分,凱爾特人遭逆轉

老梁體育漫談
2025-04-26 10:06:15
斯諾克賽程:決出2席8強,丁俊暉率中國6人出戰,龐俊旭PK火箭!

斯諾克賽程:決出2席8強,丁俊暉率中國6人出戰,龐俊旭PK火箭!

劉姚堯的文字城堡
2025-04-26 07:57:38
現在一般的梗圖我已經笑不出來了!但這一批的不一樣哈哈哈哈

現在一般的梗圖我已經笑不出來了!但這一批的不一樣哈哈哈哈

黃麗搞笑小能手
2025-04-27 00:46:59
由于未能通過測試 Google已放棄三星的HBM3E工藝轉用美光

由于未能通過測試 Google已放棄三星的HBM3E工藝轉用美光

cnBeta.COM
2025-04-26 16:28:03
陳陽:山東省濟南市委常委、組織部部長

陳陽:山東省濟南市委常委、組織部部長

愛意隨風起呀
2025-04-26 20:51:47
賺走中國女人600億!被官媒揭穿的“防曬衣”,滿滿的都是套路

賺走中國女人600億!被官媒揭穿的“防曬衣”,滿滿的都是套路

史行途
2025-03-13 09:36:30
即將發布,全新法拉利296 VS,偽裝即將拆掉 | 酷樂汽車

即將發布,全新法拉利296 VS,偽裝即將拆掉 | 酷樂汽車

CLauto酷樂汽車
2025-04-26 23:42:09
三四十年前流行的老香煙,認識三個我叫你聲大爺,老煙民記得幾個

三四十年前流行的老香煙,認識三個我叫你聲大爺,老煙民記得幾個

糖逗在娛樂
2025-04-27 00:44:50
湖南4歹徒綁架女富豪,將其監禁并強奸,3天后歹徒卻被她嚇到報警

湖南4歹徒綁架女富豪,將其監禁并強奸,3天后歹徒卻被她嚇到報警

罪案洞察者
2025-04-08 10:03:59
勸告邱毅不要在錯誤的道路越走越遠

勸告邱毅不要在錯誤的道路越走越遠

牛鍋巴小釩
2025-04-14 20:22:02
俄媒喊話:中國軍隊再強,臺海真打光靠正規軍真不夠?

俄媒喊話:中國軍隊再強,臺海真打光靠正規軍真不夠?

小宇宙雙色球
2025-04-27 01:20:43
哈里王子的朋友為啥集體“嫌棄”梅根?心理學家揭秘驚人真相!

哈里王子的朋友為啥集體“嫌棄”梅根?心理學家揭秘驚人真相!

全球奇趣娛樂八卦
2025-04-25 17:55:24
“離婚”是違禁詞?抖音最新回應!

“離婚”是違禁詞?抖音最新回應!

第一財經資訊
2025-04-25 15:56:47
霸氣,湖人隊1比2森林狼隊后,里夫斯丟下第四場的保證

霸氣,湖人隊1比2森林狼隊后,里夫斯丟下第四場的保證

好火子
2025-04-27 03:14:50
香港這一夜,45歲的謝霆鋒,讓所有人見識到了他的地位

香港這一夜,45歲的謝霆鋒,讓所有人見識到了他的地位

史行途
2025-04-25 11:36:54
倪夏蓮談雨果奪冠:真正的冠軍是技術、身體、心理和人格魅力完美交匯的結晶

倪夏蓮談雨果奪冠:真正的冠軍是技術、身體、心理和人格魅力完美交匯的結晶

懂球帝
2025-04-26 16:46:13
王菲露面了!素顏梳著大光明頭,謝霆鋒在臺上唱,她在臺下跳舞

王菲露面了!素顏梳著大光明頭,謝霆鋒在臺上唱,她在臺下跳舞

史行途
2025-04-26 09:36:07
A股:周末重磅!國務院同意建立,財政部、證監會集體發聲!

A股:周末重磅!國務院同意建立,財政部、證監會集體發聲!

虎哥閑聊
2025-04-26 10:20:57
火勇大戰G3傷情報告更新:巴特勒出戰成疑,勇士又一球員受傷?

火勇大戰G3傷情報告更新:巴特勒出戰成疑,勇士又一球員受傷?

Haviven聊球
2025-04-26 22:13:41
面對新式紅衛兵,一個歷史老師的無奈:誰之罪?

面對新式紅衛兵,一個歷史老師的無奈:誰之罪?

霹靂炮
2025-04-23 23:16:50
2025-04-27 03:59:00
EEWorld電子工程世界 incentive-icons
EEWorld電子工程世界
即時參與討論電子工程世界最火話題,搶先知曉電子工程業界資訊。
171文章數 14關注度
往期回顧 全部

科技要聞

百度心響實測:“能用版Manus”開了個好頭

頭條要聞

特朗普將舉行集會慶祝執政100天 美媒:時機不妙

頭條要聞

特朗普將舉行集會慶祝執政100天 美媒:時機不妙

體育要聞

廣廈19分勝遼寧獲開門紅 孫銘徽13分3助崴腳

娛樂要聞

金掃帚獎出爐,包貝爾意外獲“影帝”

財經要聞

韓國的"宇樹科技" 是怎樣被財閥毀掉的?

汽車要聞

充電5分鐘續航100公里 探訪華為兆瓦超充站

態度原創

手機
藝術
教育
游戲
軍事航空

手機要聞

vivo大折疊屏新機曝光,三季度登場

藝術要聞

故宮珍藏的墨跡《十七帖》,比拓本更精良,這才是地道的魏晉寫法

教育要聞

我不會做,等你姐姐放學回來再教你吧

夢幻西游:出了雙固傷玉魄卻難過,口袋版成刷80級環裝首選

軍事要聞

白宮爭吵后特朗普與澤連斯基"首度"碰面

無障礙瀏覽 進入關懷版 主站蜘蛛池模板: 锦州市| 二连浩特市| 腾冲县| 泾源县| 临西县| 西城区| 乌苏市| 观塘区| 安溪县| 韶关市| 敖汉旗| 册亨县| 湖口县| 中宁县| 翁源县| 高清| 甘洛县| 淅川县| 浦城县| 乌什县| 盐源县| 玉树县| 莱州市| 伊通| 霞浦县| 庐江县| 驻马店市| 犍为县| 巫溪县| 富锦市| 界首市| 墨竹工卡县| 怀柔区| 建湖县| 平阳县| 栾川县| 大埔县| 张掖市| 建水县| 六盘水市| 吉隆县|