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

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

在過去(qu)數十(shi)年,摩爾定(ding)律(lv)一(yi)(yi)直支配(pei)著(zhu)半導體的發展(zhan)。隨著(zhu)MCU的性能越(yue)來越(yue)強,嵌入式產品也(ye)越(yue)來越(yue)智能,嵌入式軟件(jian)也(ye)變得越(yue)來越(yue)復雜。編(bian)譯器(qi)(qi)作為嵌入式軟件(jian)開發的基(ji)礎工具,將程序(xu)員編(bian)寫(xie)的源代碼轉換(huan)為底層硬件(jian)可(ke)以執行(xing)的機器(qi)(qi)指令。一(yi)(yi)款優(you)秀的編(bian)譯器(qi)(qi)既需要對程序(xu)進行(xing)優(you)化(hua),確保(bao)程序(xu)可(ke)以高效地運(yun)行(xing),同時又需要保(bao)證轉換(huan)的一(yi)(yi)致(zhi)性。

因(yin)此,對于嵌(qian)入式(shi)系統開(kai)發(fa)人(ren)員來講,在選(xuan)擇以編(bian)(bian)(bian)譯(yi)器為(wei)核心的(de)開(kai)發(fa)工具(ju)時,就必(bi)須要考慮(lv)一(yi)款(kuan)編(bian)(bian)(bian)譯(yi)器與其(qi)(qi)工程環境和項(xiang)目需(xu)求的(de)關系,從而通過(guo)“利其(qi)(qi)器”而“善(shan)其(qi)(qi)事(shi)”。本(ben)文將介紹(shao)一(yi)款(kuan)優秀編(bian)(bian)(bian)譯(yi)器應具(ju)備的(de)一(yi)些特征,幫助嵌(qian)入式(shi)軟件開(kai)發(fa)人(ren)員根據其(qi)(qi)工程需(xu)求來選(xuan)擇適合的(de)編(bian)(bian)(bian)譯(yi)器,最(zui)快和最(zui)好地完(wan)成其(qi)(qi)工程項(xiang)目。

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

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

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

另(ling)一方面,嵌(qian)入(ru)式(shi)系(xi)統通常只具(ju)有有限(xian)(xian)的(de)(de)硬件資源,包括(kuo)處(chu)理器(qi)(qi)速度、存儲器(qi)(qi)容量和外設接口等。這些硬件資源的(de)(de)限(xian)(xian)制(zhi)(zhi)可能(neng)(neng)(neng)會限(xian)(xian)制(zhi)(zhi)系(xi)統的(de)(de)功能(neng)(neng)(neng)和性(xing)能(neng)(neng)(neng)。當(dang)軟(ruan)件復雜度增加(jia)時,可能(neng)(neng)(neng)會占用(yong)更(geng)多的(de)(de)硬件資源,從而導致系(xi)統性(xing)能(neng)(neng)(neng)下降或功能(neng)(neng)(neng)受限(xian)(xian)。此時,需要采用(yong)編譯優化算(suan)法、數據結構和代碼模塊化等技術,以(yi)便在MCU硬件資源有限(xian)(xian)的(de)(de)情(qing)況下實現(xian)復雜的(de)(de)嵌(qian)入(ru)式(shi)軟(ruan)件功能(neng)(neng)(neng)。

因此,在嵌入(ru)式(shi)(shi)系(xi)統(tong)設計中(zhong),軟件(jian)(jian)復(fu)雜(za)性(xing)和(he)MCU硬件(jian)(jian)資源(yuan)之間的平(ping)衡非常關鍵。需要優化(hua)嵌入(ru)式(shi)(shi)軟件(jian)(jian)的設計和(he)實現,以確保系(xi)統(tong)的性(xing)能(neng)、穩定和(he)成本的完整考量(liang)。采(cai)用有效的軟件(jian)(jian)工程方法和(he)工具(ju),可以在硬件(jian)(jian)資源(yuan)有限的情況下實現更(geng)復(fu)雜(za)的嵌入(ru)式(shi)(shi)系(xi)統(tong)功能(neng)。編譯器作為嵌入(ru)式(shi)(shi)軟件(jian)(jian)開發中(zhong)不可或缺(que)的生產工具(ju),承擔從C/C++源(yuan)碼(ma)到目(mu)標二進(jin)制代碼(ma)的高效轉換職責,對其的選擇對于嵌入(ru)式(shi)(shi)軟件(jian)(jian)的開發極為重(zhong)要。

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

生成的代碼體積

首先,優秀(xiu)的(de)(de)編(bian)譯器(qi)(qi)可(ke)以(yi)將(jiang)C/C++源(yuan)代(dai)碼(ma)(ma)轉換成體積更(geng)小(xiao)(xiao)的(de)(de)二進制代(dai)碼(ma)(ma),從而在給定的(de)(de)MCU中(zhong)(zhong)加入更(geng)多的(de)(de)功能(neng)。在嵌入式(shi)系(xi)統中(zhong)(zhong),MCU的(de)(de)存(cun)儲(chu)器(qi)(qi)資(zi)源(yuan)通常是有(you)限的(de)(de),因此,如果代(dai)碼(ma)(ma)越小(xiao)(xiao),系(xi)統就可(ke)以(yi)實現更(geng)多的(de)(de)功能(neng)。此外(wai),更(geng)小(xiao)(xiao)的(de)(de)代(dai)碼(ma)(ma)體積也意味著更(geng)少(shao)的(de)(de)存(cun)儲(chu)器(qi)(qi)占用,這可(ke)以(yi)降低系(xi)統的(de)(de)成本。

下面,我(wo)們通(tong)過CoreMark基(ji)準(zhun)對(dui)市面上流(liu)行(xing)的MCU編(bian)譯(yi)器(qi)輸(shu)出的代碼尺寸(cun)進行(xing)分析(xi)。CoreMark基(ji)準(zhun)是一個(ge)很(hen)好的參考,因(yin)(yin)為它(ta)試圖納入開發人(ren)員做的一些更常見的事(shi)情,如矩陣操作(zuo)、CRC計算、列(lie)表處理(包(bao)括查(cha)找和(he)排(pai)序)等等。因(yin)(yin)此,它(ta)為你提供了一個(ge)關(guan)于編(bian)譯(yi)器(qi)能做什么的“真實世(shi)界”的比(bi)較,而且(qie)它(ta)還有防(fang)篡(cuan)改機制,以確(que)保(bao)編(bian)譯(yi)器(qi)供應商不會通(tong)過“手工(gong)優(you)化”CoreMark代碼來作(zuo)弊。可以訪問EEMBC網站查(cha)找包(bao)含各種MCU和(he)編(bian)譯(yi)器(qi)組合的CoreMark基(ji)準(zhun)。

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

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

image

生成的代碼性能

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

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

image

穩定性也至關重要

另外,編(bian)譯(yi)(yi)(yi)器編(bian)譯(yi)(yi)(yi)輸出(chu)的(de)(de)穩(wen)定(ding)性(xing)(xing)(xing)也至關重要。如果編(bian)譯(yi)(yi)(yi)器的(de)(de)輸出(chu)不(bu)穩(wen)定(ding),那么在相(xiang)同的(de)(de)源代碼上編(bian)譯(yi)(yi)(yi)可(ke)能會(hui)得(de)到(dao)不(bu)同的(de)(de)結果,從(cong)而使得(de)嵌入式系統在不(bu)同的(de)(de)環(huan)境(jing)中表現出(chu)不(bu)一致的(de)(de)行(xing)為。這將對系統的(de)(de)可(ke)靠(kao)性(xing)(xing)(xing)和(he)(he)穩(wen)定(ding)性(xing)(xing)(xing)產生(sheng)負面影(ying)響,并且可(ke)能會(hui)導致系統的(de)(de)錯誤行(xing)為,從(cong)而增加項目(mu)時間和(he)(he)成本。因(yin)此,編(bian)譯(yi)(yi)(yi)器必須(xu)確(que)保其輸出(chu)的(de)(de)結果是(shi)可(ke)靠(kao)和(he)(he)可(ke)重復的(de)(de),以確(que)保系統的(de)(de)穩(wen)定(ding)性(xing)(xing)(xing)和(he)(he)可(ke)靠(kao)性(xing)(xing)(xing)。

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

除此之外(wai),對于有功能安(an)全產品需求的用(yong)戶(hu), IAR Embedded Workbench高(gao)質量編譯器通(tong)過了由TüV SüD 認(ren)證(zheng)的功能安(an)全認(ren)證(zheng),涵(han)蓋了工業(IEC 61508),汽(qi)車(ISO 26262)等10種不同種類的功能安(an)全標準(zhun),可以(yi)幫助用(yong)戶(hu)加快功能安(an)全認(ren)證(zheng),加速產品上(shang)市。

技術支持

最后,也是非常重(zhong)要的一點是用(yong)戶(hu)(hu)是否能(neng)(neng)快(kuai)速有效的獲(huo)得(de)技(ji)術支(zhi)持。盡管編譯器的性能(neng)(neng)和穩定性都(dou)非常優(you)秀,但如(ru)果(guo)用(yong)戶(hu)(hu)在使用(yong)時(shi)遇到問題并(bing)且不能(neng)(neng)獲(huo)得(de)及時(shi)的技(ji)術支(zhi)持,這將導(dao)致(zhi)用(yong)戶(hu)(hu)的使用(yong)體驗下降,項目(mu)開(kai)發(fa)延期,甚至導(dao)致(zhi)用(yong)戶(hu)(hu)產品無法按(an)時(shi)交付。因此(ci),能(neng)(neng)否提供及時(shi)的技(ji)術支(zhi)持也是用(yong)戶(hu)(hu)選擇編譯器的一個極為重(zhong)要的考量(liang)因素。

如果免費工(gong)具有(you)問(wen)(wen)題,例如編譯器或庫(ku)中(zhong)的錯誤,用(yong)戶唯一(yi)能做的就是試(shi)著(zhu)自(zi)己(ji)解決,或者(zhe)在相關(guan)的資源庫(ku)中(zhong)發布一(yi)個問(wen)(wen)題: 

image

為避免(mian)整個(ge)開發(fa)團隊(dui)(dui)因為開發(fa)工具的(de)問題而停止工作(zuo),是使用IAR等商用專業(ye)開發(fa)工具的(de)最大原因之一。除此之外(wai),IAR在世界各地都有當地的(de)支(zhi)持團隊(dui)(dui),IAR中(zhong)國(guo)技術(shu)支(zhi)持團隊(dui)(dui)直接為國(guo)內客(ke)戶提供高效(xiao)的(de)本(ben)地技術(shu)支(zhi)持服務。(見下(xia)圖)

image

總結

一款(kuan)優秀的(de)(de)編譯(yi)器(qi)可以(yi)將(jiang)源代碼轉換成(cheng)高效、穩定、優化的(de)(de)二(er)進制代碼,使(shi)得嵌入式系(xi)統(tong)能(neng)夠在有限的(de)(de)硬件(jian)資源下實(shi)現復雜的(de)(de)功能(neng)和卓越的(de)(de)性能(neng)。選擇(ze)一款(kuan)適合特定平臺、性能(neng)卓越、穩定可靠、并(bing)提供優質技術(shu)支持的(de)(de)編譯(yi)器(qi)對于(yu)嵌入式軟(ruan)件(jian)開發來說是至關(guan)重要(yao)的(de)(de)。

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

參考文獻

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/

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

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