国产人妻精品区一区二区,国产农村妇女毛片精品久久,JAPANESE日本丰满少妇,日本公妇理伦a片,射精专区一区二区朝鲜

應對實際工程挑戰,如何為嵌入式軟件開發選擇編譯器
作者 | IAR2023-05-29

在過去數十(shi)年,摩爾(er)定律一(yi)直支配著半導體(ti)的(de)(de)發(fa)(fa)展(zhan)。隨(sui)著MCU的(de)(de)性能(neng)越來越強,嵌(qian)入(ru)式產品也越來越智(zhi)能(neng),嵌(qian)入(ru)式軟件(jian)(jian)也變得(de)越來越復雜。編譯器(qi)作為(wei)嵌(qian)入(ru)式軟件(jian)(jian)開(kai)發(fa)(fa)的(de)(de)基礎工(gong)具,將程(cheng)序員(yuan)編寫的(de)(de)源(yuan)代碼轉換為(wei)底層硬(ying)件(jian)(jian)可以執行(xing)的(de)(de)機器(qi)指令。一(yi)款優秀的(de)(de)編譯器(qi)既(ji)需(xu)要(yao)對程(cheng)序進行(xing)優化,確保程(cheng)序可以高效地運行(xing),同(tong)時又(you)需(xu)要(yao)保證轉換的(de)(de)一(yi)致性。

因此,對(dui)于嵌(qian)(qian)入式(shi)系(xi)統開發(fa)人(ren)員來講,在選(xuan)(xuan)擇以編(bian)譯器(qi)為(wei)核心的(de)(de)開發(fa)工(gong)具時,就必須要考慮一款編(bian)譯器(qi)與其工(gong)程(cheng)環(huan)境(jing)和項目需求的(de)(de)關系(xi),從而通(tong)過“利其器(qi)”而“善其事”。本(ben)文將介(jie)紹一款優秀(xiu)編(bian)譯器(qi)應具備的(de)(de)一些特征(zheng),幫助(zhu)嵌(qian)(qian)入式(shi)軟件開發(fa)人(ren)員根據其工(gong)程(cheng)需求來選(xuan)(xuan)擇適(shi)合的(de)(de)編(bian)譯器(qi),最(zui)快和最(zui)好(hao)地完成其工(gong)程(cheng)項目。

嵌入式軟件復雜性 vs MCU硬件資源的有限性

嵌入式系統的應用范圍日益擴大,從汽車、航空航天到智能家居等(deng)領域都有(you)廣泛應用。然而(er),隨著嵌(qian)入(ru)式軟(ruan)件(jian)功能越來越復(fu)雜(za)(za),軟(ruan)件(jian)復(fu)雜(za)(za)性(xing)也隨之增加,這(zhe)給嵌(qian)入(ru)式系統設(she)計帶來了很大的挑戰。特別是(shi)在硬件(jian)資源(yuan)(yuan)有(you)限的嵌(qian)入(ru)式系統中,軟(ruan)件(jian)復(fu)雜(za)(za)性(xing)與MCU硬件(jian)資源(yuan)(yuan)之間的平衡(heng)變得非常重要。

一方面,隨著軟件(jian)(jian)功能(neng)的增(zeng)(zeng)加(jia)(jia),軟件(jian)(jian)復(fu)(fu)(fu)雜(za)性(xing)不斷增(zeng)(zeng)加(jia)(jia),這可能(neng)導致代碼變得龐大、難以維護。嵌入式軟件(jian)(jian)需(xu)要(yao)對(dui)外部設備和傳感器進行控制和響應(ying),同時還需(xu)要(yao)實現(xian)復(fu)(fu)(fu)雜(za)的算法和數(shu)據結構(gou),這些都會增(zeng)(zeng)加(jia)(jia)軟件(jian)(jian)的復(fu)(fu)(fu)雜(za)性(xing)。

另(ling)一方面,嵌入(ru)式(shi)系統(tong)通常只具(ju)有有限(xian)(xian)的硬(ying)件(jian)(jian)資(zi)源,包括處理(li)器速度(du)、存儲器容量(liang)和(he)外設接口(kou)等(deng)。這些硬(ying)件(jian)(jian)資(zi)源的限(xian)(xian)制可能(neng)會限(xian)(xian)制系統(tong)的功(gong)能(neng)和(he)性能(neng)。當軟件(jian)(jian)復雜(za)度(du)增(zeng)加(jia)時,可能(neng)會占用更多的硬(ying)件(jian)(jian)資(zi)源,從而導致系統(tong)性能(neng)下(xia)降或(huo)功(gong)能(neng)受限(xian)(xian)。此時,需要采(cai)用編譯優(you)化(hua)算法、數據結構和(he)代(dai)碼模塊化(hua)等(deng)技術(shu),以便在MCU硬(ying)件(jian)(jian)資(zi)源有限(xian)(xian)的情(qing)況下(xia)實(shi)現復雜(za)的嵌入(ru)式(shi)軟件(jian)(jian)功(gong)能(neng)。

因此,在(zai)嵌(qian)入式系統設(she)計(ji)(ji)中,軟(ruan)(ruan)(ruan)件(jian)復雜性(xing)和(he)MCU硬(ying)(ying)件(jian)資(zi)源之間的(de)(de)平衡非常關(guan)鍵。需要優(you)化(hua)嵌(qian)入式軟(ruan)(ruan)(ruan)件(jian)的(de)(de)設(she)計(ji)(ji)和(he)實現(xian),以(yi)確保(bao)系統的(de)(de)性(xing)能、穩(wen)定和(he)成本的(de)(de)完整考量。采(cai)用有效(xiao)(xiao)的(de)(de)軟(ruan)(ruan)(ruan)件(jian)工程方法和(he)工具(ju),可(ke)(ke)以(yi)在(zai)硬(ying)(ying)件(jian)資(zi)源有限的(de)(de)情況(kuang)下實現(xian)更復雜的(de)(de)嵌(qian)入式系統功能。編(bian)譯(yi)器作為嵌(qian)入式軟(ruan)(ruan)(ruan)件(jian)開發(fa)中不可(ke)(ke)或缺的(de)(de)生產工具(ju),承(cheng)擔從C/C++源碼到目(mu)標二進制代(dai)碼的(de)(de)高效(xiao)(xiao)轉換職責,對其(qi)的(de)(de)選擇對于嵌(qian)入式軟(ruan)(ruan)(ruan)件(jian)的(de)(de)開發(fa)極(ji)為重要。

一款優秀的編譯器應具備的特性

生成的代碼體積

首先,優秀的(de)編譯器可(ke)以將C/C++源(yuan)代碼(ma)轉(zhuan)換成(cheng)體(ti)積(ji)更(geng)小的(de)二進制代碼(ma),從而(er)在給定的(de)MCU中加入更(geng)多(duo)的(de)功能。在嵌(qian)入式(shi)系(xi)統中,MCU的(de)存儲器資源(yuan)通常是有限的(de),因此(ci),如(ru)果代碼(ma)越(yue)小,系(xi)統就(jiu)可(ke)以實現更(geng)多(duo)的(de)功能。此(ci)外(wai),更(geng)小的(de)代碼(ma)體(ti)積(ji)也意味(wei)著更(geng)少的(de)存儲器占用,這(zhe)可(ke)以降低系(xi)統的(de)成(cheng)本(ben)。

下面(mian)(mian),我們通過CoreMark基準對市面(mian)(mian)上流(liu)行的MCU編譯(yi)(yi)器輸出的代碼(ma)(ma)尺寸進行分析。CoreMark基準是一個很好的參考,因為(wei)它試圖納入(ru)開發人員做的一些更常見的事(shi)情(qing),如矩陣操作、CRC計算(suan)、列表處理(包(bao)(bao)括(kuo)查找和(he)排序)等等。因此,它為(wei)你提供了一個關于(yu)編譯(yi)(yi)器能做什么的“真實世(shi)界”的比較,而且(qie)它還有防篡(cuan)改機制,以確保編譯(yi)(yi)器供應商不會(hui)通過“手工(gong)優化(hua)”CoreMark代碼(ma)(ma)來作弊(bi)。可以訪(fang)問EEMBC網站查找包(bao)(bao)含各種(zhong)MCU和(he)編譯(yi)(yi)器組(zu)合(he)的CoreMark基準。

雖然CoreMark是一個速度基準,但得益于其廣泛的方法,它也是一個很好的代碼體積基準。在各種芯片上觀察該基準測試的(de)(de)(de)一個文件(jian) (coremark.c),可以發(fa)現,根據(ju)下圖中顯示(shi)的(de)(de)(de)所使用的(de)(de)(de)芯片,其體積有小(xiao)(xiao)幅的(de)(de)(de)變(bian)化(hua)。IAR Embedded Workbench(圖中為:ICCARM V7.70.1)呈現出比其他工(gong)具(ju)小(xiao)(xiao)得多的(de)(de)(de)變(bian)化(hua)程(cheng)度,并且在不同芯片上均(jun)能產生最小(xiao)(xiao)的(de)(de)(de)代碼體積。

事實上,在(zai)CoreMark總(zong)共34個模塊的30個中,IAR Embedded Workbench for Arm產(chan)生了更緊密的代碼,總(zong)體(ti)(ti)(ti)體(ti)(ti)(ti)積差(cha)異約(yue)為20%。同樣,我們(men)在(zai)調研(yan)用(yong)戶(hu)使用(yong)IAR Embedded Workbench for RX和IAR Embedded Workbench for RL78開發的真實應用(yong)案例時(shi),發現生成的代碼體(ti)(ti)(ti)積比GCC和其他(ta)工(gong)具小27%至(zhi) 28%。

image

生成的代碼性能

其(qi)次,性能卓越的(de)(de)編譯(yi)器(qi)可(ke)以(yi)通(tong)(tong)過(guo)代碼(ma)優化技(ji)術來提升(sheng)代碼(ma)執行(xing)速(su)度(du)。例如,編譯(yi)器(qi)可(ke)以(yi)進行(xing)代碼(ma)重(zhong)排、內聯函數(shu)和循環展開等優化操作,以(yi)提高代碼(ma)的(de)(de)執行(xing)效(xiao)率(lv)和性能。在嵌(qian)入式(shi)系統(tong)中,處理器(qi)的(de)(de)性能通(tong)(tong)常(chang)也是(shi)有(you)限的(de)(de),因此代碼(ma)的(de)(de)執行(xing)速(su)度(du)很(hen)重(zhong)要。通(tong)(tong)過(guo)提升(sheng)代碼(ma)執行(xing)速(su)度(du),系統(tong)可(ke)以(yi)更(geng)(geng)充(chong)分地利用(yong)處理器(qi)的(de)(de)性能,這(zhe)可(ke)以(yi)讓開發人員在不需要更(geng)(geng)高性能的(de)(de)處理器(qi)的(de)(de)情況下實現(xian)更(geng)(geng)高效(xiao)的(de)(de)系統(tong)設(she)計,同時節省(sheng)系統(tong)成(cheng)本。另外,高效(xiao)的(de)(de)二進制代碼(ma)同樣(yang)可(ke)以(yi)降低(di)MCU的(de)(de)功耗(hao),有(you)助于提升(sheng)產(chan)品的(de)(de)續航能力(li),從而使得產(chan)品在低(di)功耗(hao)應(ying)用(yong)中更(geng)(geng)具競爭力(li)。

同樣(yang),我們通過CoreMark基準對市面上(shang)流行(xing)(xing)的(de)(de)(de)MCU編(bian)譯(yi)器(qi)輸出的(de)(de)(de)代碼(ma)性能(neng)(neng)進行(xing)(xing)分析。這(zhe)里我們舉例(li)來自(zi)Nordic Semiconductor芯片(pian)的(de)(de)(de)CoreMark基準測(ce)(ce)試(shi)數(shu)據。選用“極致(zhi)性能(neng)(neng)”編(bian)譯(yi)優化選項參數(shu)進行(xing)(xing)編(bian)譯(yi)時,IAR Embedded Workbench for Arm確實遠超其他工具(ju)。如下表所(suo)示,從這(zhe)些(xie)基準測(ce)(ce)試(shi)中,可以看到IAR Embedded Workbench比Keil工具(ju)鏈高出19.1%,比GCC工具(ju)鏈高出驚人的(de)(de)(de)29.8%。建(jian)議在CoreMark網(wang)頁上(shang)查看當前最新的(de)(de)(de)分數(shu)。也可以自(zi)己運行(xing)(xing)基準測(ce)(ce)試(shi)以獲得精確的(de)(de)(de)數(shu)字(zi)。

image

穩定性也至關重要

另外,編(bian)(bian)譯(yi)(yi)器(qi)(qi)編(bian)(bian)譯(yi)(yi)輸出(chu)的(de)穩(wen)(wen)定性(xing)也至關(guan)重(zhong)要。如(ru)果(guo)編(bian)(bian)譯(yi)(yi)器(qi)(qi)的(de)輸出(chu)不穩(wen)(wen)定,那么在相同的(de)源代(dai)碼上編(bian)(bian)譯(yi)(yi)可能(neng)會(hui)得(de)到不同的(de)結果(guo),從而使得(de)嵌入式系(xi)(xi)統在不同的(de)環境中表現(xian)出(chu)不一(yi)致(zhi)的(de)行為。這將(jiang)對系(xi)(xi)統的(de)可靠(kao)性(xing)和(he)穩(wen)(wen)定性(xing)產生負面影響(xiang),并且可能(neng)會(hui)導致(zhi)系(xi)(xi)統的(de)錯誤(wu)行為,從而增(zeng)加項目時間和(he)成本(ben)。因此,編(bian)(bian)譯(yi)(yi)器(qi)(qi)必須確保其(qi)輸出(chu)的(de)結果(guo)是可靠(kao)和(he)可重(zhong)復(fu)的(de),以(yi)確保系(xi)(xi)統的(de)穩(wen)(wen)定性(xing)和(he)可靠(kao)性(xing)。

相(xiang)對于開(kai)源(yuan)編譯(yi)器工具,IAR Embedded Workbench作為商用編譯(yi)器工具的領導者(zhe),擁(yong)有資深的專業技術(shu)團(tuan)隊和(he)嚴格的品控流程,在發布版本之(zhi)前會經過嚴格的測試(shi)和(he)審核過程,確保其在各種情況下都能(neng)穩定運行(xing)。

除此之(zhi)外(wai),對(dui)于有功(gong)(gong)能(neng)安全(quan)(quan)產品(pin)需求的(de)用戶, IAR Embedded Workbench高質(zhi)量(liang)編譯器通(tong)過了由TüV SüD 認(ren)證(zheng)的(de)功(gong)(gong)能(neng)安全(quan)(quan)認(ren)證(zheng),涵蓋了工業(ye)(IEC 61508),汽車(ISO 26262)等10種(zhong)不同種(zhong)類的(de)功(gong)(gong)能(neng)安全(quan)(quan)標(biao)準,可以幫(bang)助用戶加(jia)快功(gong)(gong)能(neng)安全(quan)(quan)認(ren)證(zheng),加(jia)速(su)產品(pin)上(shang)市。

技術支持

最后(hou),也(ye)是(shi)非常重要(yao)的(de)(de)一(yi)點是(shi)用(yong)(yong)戶是(shi)否能快速(su)有效的(de)(de)獲得(de)技(ji)術(shu)支持(chi)(chi)。盡管編(bian)譯器(qi)的(de)(de)性(xing)能和穩定性(xing)都非常優秀,但(dan)如果用(yong)(yong)戶在使(shi)用(yong)(yong)時(shi)遇(yu)到問題并(bing)且不能獲得(de)及(ji)時(shi)的(de)(de)技(ji)術(shu)支持(chi)(chi),這將導致用(yong)(yong)戶的(de)(de)使(shi)用(yong)(yong)體驗下(xia)降,項目(mu)開(kai)發延期(qi),甚(shen)至導致用(yong)(yong)戶產(chan)品無法按時(shi)交付。因(yin)此(ci),能否提供(gong)及(ji)時(shi)的(de)(de)技(ji)術(shu)支持(chi)(chi)也(ye)是(shi)用(yong)(yong)戶選擇(ze)編(bian)譯器(qi)的(de)(de)一(yi)個極為重要(yao)的(de)(de)考(kao)量因(yin)素。

如(ru)(ru)果免費工具有問題(ti),例如(ru)(ru)編(bian)譯(yi)器(qi)或庫(ku)中的錯誤,用(yong)戶唯(wei)一能做的就是試(shi)著(zhu)自(zi)己解決,或者在相(xiang)關的資源(yuan)庫(ku)中發布一個問題(ti):

image

為(wei)(wei)避免整個(ge)開發團(tuan)(tuan)隊(dui)因為(wei)(wei)開發工具(ju)的(de)問題而停止工作,是(shi)使用IAR等商用專業開發工具(ju)的(de)最大原(yuan)因之(zhi)一。除此之(zhi)外(wai),IAR在世界各地(di)都有(you)當地(di)的(de)支持(chi)團(tuan)(tuan)隊(dui),IAR中國技術支持(chi)團(tuan)(tuan)隊(dui)直接為(wei)(wei)國內客戶提供高效的(de)本地(di)技術支持(chi)服務。(見(jian)下(xia)圖)

image

總結

一(yi)款優秀的(de)(de)編譯器可(ke)以(yi)將源(yuan)(yuan)代碼轉換成(cheng)高效、穩定、優化的(de)(de)二(er)進制(zhi)代碼,使得嵌入式系統能夠在有(you)限的(de)(de)硬(ying)件資(zi)源(yuan)(yuan)下實現(xian)復雜的(de)(de)功能和卓越的(de)(de)性能。選(xuan)擇(ze)一(yi)款適合特定平臺、性能卓越、穩定可(ke)靠、并提(ti)供優質技術支持的(de)(de)編譯器對(dui)于嵌入式軟(ruan)件開發來說(shuo)是至(zhi)關重要的(de)(de)。

IAR擁有資深的編譯器技(ji)術團(tuan)隊,深耕編譯器產品開發40余(yu)年,為用戶(hu)提(ti)供業(ye)界(jie)領先、性(xing)能卓越的編譯工(gong)具鏈(lian)。IAR中國的技(ji)術支持團(tuan)隊時(shi)刻準備著為國內用戶(hu)提(ti)供高效、專業(ye)的技(ji)術支持,為嵌入式應用開發者保駕護航。

參考文獻

1. www.eembc.org/coremark

2. www.iar.com/e-book/e-book-cn

3.//www.iar.com/products/architectures/arm/iar-embedded-workbench-for-arm/

白皮書:嵌(qian)入式軟(ruan)件開發的十(shi)二大基(ji)本(ben)要素//mp.weixin.qq.com/s/RrNT3UPN9zRPvCiaOPRLpw。

熱門文章
5月27日,2023數博會“數據要素流通與價值化”論壇在貴陽召開,主題為“聚力成勢·數賦未來”。貴州省副省長郭錫文出席會議并致辭,中國科學院院士梅宏做主旨報告,中國信息通信研究院總工程師敖立主持論壇。
2023-05-29
X