你可能會發(fā)現(xiàn),雖然新Rust似乎是一條很好的道路,但它可能會導(dǎo)致你倒退,在開發(fā)新工具和技術(shù)時" />

千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

手機(jī)站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時隨地免費(fèi)學(xué)

千鋒教育

掃一掃進(jìn)入千鋒手機(jī)站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時隨地免費(fèi)學(xué)習(xí)課程

當(dāng)前位置:首頁  >  技術(shù)干貨  > 嵌入式開發(fā):嵌入式系統(tǒng)采用Rust的5個障礙

嵌入式開發(fā):嵌入式系統(tǒng)采用Rust的5個障礙

來源:千鋒教育
發(fā)布人:xqq
時間: 2023-12-11 22:32:34 1702305154

Rust的記憶安全能力使它成為一種令人興奮的語言,但正如生活中的許多事情一樣,說起來容易做起來難。雖然Rust是一個有趣的語言選項(xiàng),但至少有五個顯著的障礙阻止了它在嵌入式開發(fā)中的采用。讓我們探索其中的一些障礙。

障礙1——商業(yè)支持

如今,大多數(shù)開發(fā)嵌入式產(chǎn)品的團(tuán)隊(duì)都利用商業(yè)支持工具來加速開發(fā)。例如,你的微控制器供應(yīng)商可能會為你提供低級驅(qū)動程序、文件系統(tǒng)、RTOS、配置工具等等。這些提供的工具可以幫助你通過為你完成底層提升來加速開發(fā)。到目前為止,只有少數(shù)微控制器供應(yīng)商(這是慷慨的)支持Rust。他們?nèi)匀辉跒樗麄兊目蛻?,你和我,提供對C的支持。除此之外,我們只能靠自己。

開發(fā)人員可以使用一些工具,如svd2rust,將指定微控制器外圍設(shè)備的SVD文件轉(zhuǎn)換為外圍機(jī)箱。該工具可以很好地創(chuàng)建嵌入式開發(fā)人員可以使用的機(jī)箱,但它確實(shí)存在潛在問題,例如:

l質(zhì)量的顯著差異取決于供應(yīng)商

l生成的詳細(xì)而復(fù)雜的代碼

l缺少可能導(dǎo)致調(diào)試時間延長的錯誤消息

l缺乏可配置性,這是一種一刀切的方法

l它使用泛型和元編程可能會導(dǎo)致更長的編譯時間

如果供應(yīng)商不提供支持,那么就要靠你和你的團(tuán)隊(duì)來解決問題。雖然這可能令人興奮,并帶來許多經(jīng)驗(yàn)教訓(xùn),但它可能會對產(chǎn)品時間表和預(yù)算產(chǎn)生負(fù)面影響。

障礙2——培訓(xùn)成本

Rust不是一門微不足道的語言。雖然它與之前的許多語言(包括C語言)有著共同的想法和概念,但學(xué)習(xí)曲線更陡峭。當(dāng)一家公司希望采用一種新語言時,他們會雇傭已經(jīng)知道這項(xiàng)技術(shù)的工程師,或者培訓(xùn)他們的團(tuán)隊(duì)。對嵌入式使用Rust感興趣的嵌入式開發(fā)團(tuán)隊(duì)將發(fā)現(xiàn)自己身處一個小型利基社區(qū)。在這個社區(qū)中,沒有多少合格的嵌入式軟件工程師了解Rust。這意味著要為少數(shù)了解Rust的開發(fā)人員支付溢價,或者投資培訓(xùn)現(xiàn)有的內(nèi)部團(tuán)隊(duì)。

訓(xùn)練一個團(tuán)隊(duì)使用Rust并不是一個壞主意。然而,從一種編程語言轉(zhuǎn)換到另一種編程編程語言必須為公司提供投資回報。尤其是當(dāng)切換到像Rust這樣不成熟的語言時。結(jié)果必須帶來投資回報,比如更好的安全性、更強(qiáng)大的系統(tǒng)等。希望使用Rust的團(tuán)隊(duì)?wèi)?yīng)該客觀評估Rust是否是正確的選擇。



障礙3——保守地采用技術(shù)

你有沒有注意到新技術(shù)在嵌入式開發(fā)環(huán)境中被采用的速度有多慢?在設(shè)計(jì)物理產(chǎn)品與純應(yīng)用程序時,風(fēng)險與安全、制造和適當(dāng)?shù)墓δ苡嘘P(guān)。使用純應(yīng)用程序,投訴會導(dǎo)致24小時軟件更新。

以實(shí)物產(chǎn)品為基礎(chǔ)的企業(yè)往往面臨更高的失敗風(fēng)險。因此,企業(yè)主和管理者往往更厭惡風(fēng)險,并選擇他們知道行之有效的技術(shù)。(看看太空飛行器發(fā)射業(yè)務(wù)。它們因?yàn)楸茈U而停滯了多久?)。此外,還經(jīng)常對現(xiàn)有技術(shù)、工作流程和人才進(jìn)行投資。對于一家已建立的企業(yè)來說,變革的成本可能是巨大的,而獲得的收益卻很小。如果你是一家小型初創(chuàng)企業(yè),你還沒有最初的投資,所以采用一項(xiàng)新技術(shù)很有意義,因?yàn)槟銦o論如何都必須建立你的技術(shù)基礎(chǔ)設(shè)施和流程。

失敗的風(fēng)險通常會促使企業(yè)使用風(fēng)險較低的可用技術(shù)來實(shí)現(xiàn)其業(yè)務(wù)目標(biāo)。因此,許多公司可能會考慮Rust,并決定使用C或C++,因?yàn)椴捎肦ust這樣的新技術(shù)并不能比行業(yè)中已經(jīng)建立的技術(shù)帶來任何真正的好處。

障礙4–工具鏈集成

如今,許多嵌入式開發(fā)人員已經(jīng)構(gòu)建了系統(tǒng)、工作流程和工具,他們以集成的方式使用這些系統(tǒng)、工作流和工具來開發(fā)嵌入式軟件。使用Rust將迫使開發(fā)人員重新思考和返工他們的整個開發(fā)過程,因?yàn)镽ust可能無法很好地使用這些現(xiàn)有的工具鏈。

你可能會發(fā)現(xiàn),雖然新Rust似乎是一條很好的道路,但它可能會導(dǎo)致你倒退,在開發(fā)新工具和技術(shù)時,失去對系統(tǒng)的了解。結(jié)果可能還可以,但我們都知道,失去時間就是失去機(jī)會。

障礙5——缺乏標(biāo)準(zhǔn)化

C和C++有一些標(biāo)準(zhǔn),你可以去了解什么是官方支持的語言,什么不是。Rust沒有正式的規(guī)范或標(biāo)準(zhǔn)。Rust語言團(tuán)隊(duì)指導(dǎo)語言設(shè)計(jì),所有更改都經(jīng)過一個已建立的征求意見(RFC)過程。RFC和Rust文檔有效地充當(dāng)了該語言的非正式規(guī)范。

如果沒有正式的語言規(guī)范,Rust在安全關(guān)鍵應(yīng)用程序和其他領(lǐng)域的商業(yè)支持將不存在。Rust編譯器被稱為rustc,是免費(fèi)的開源編譯器,但沒有商業(yè)版本。Rust社區(qū)開發(fā)編譯器,Rust團(tuán)隊(duì)監(jiān)督其開發(fā)。雖然這似乎不是什么大不了的事,但缺乏標(biāo)準(zhǔn)化意味著Rust可以輕而易舉地改變方向。雖然這對進(jìn)步和創(chuàng)新很有好處,但對那些依賴產(chǎn)品一致性的嵌入式用戶來說就不太好了。

結(jié)論

作為一個行業(yè),這些障礙將是Rust不會被快速采用的重要因素。也有一些公司采用它并取得成功,也會有其他人接受它并失敗。

Rust是一種令人興奮的語言,希望它能慢慢獲得市場份額。然而,在接下來的五年里,還是會有更多的嵌入式開發(fā)團(tuán)隊(duì)采用C++,而不是Rust。

聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
請您保持通訊暢通,專屬學(xué)習(xí)老師24小時內(nèi)將與您1V1溝通
免費(fèi)領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
嵌入式培訓(xùn)課程:探索技術(shù)的無限可能

近年來,嵌入式系統(tǒng)的廣泛應(yīng)用已經(jīng)深刻改變了我們的生活方式。從智能手機(jī)到智能家居,從汽車到醫(yī)療設(shè)備,嵌入式技術(shù)已經(jīng)成為現(xiàn)代社會不可或缺的...詳情>>

2023-12-12 11:02:35
嵌入式開發(fā):Linux網(wǎng)絡(luò)編程的探索與實(shí)踐

在當(dāng)今的科技世界中,嵌入式系統(tǒng)已經(jīng)滲透到我們生活的方方面面,從智能手機(jī)、電視、汽車到醫(yī)療設(shè)備等。而在這些設(shè)備中,Linux網(wǎng)絡(luò)編程扮演著至...詳情>>

2023-12-12 09:55:55
Java游戲項(xiàng)目開發(fā):技術(shù)概覽與實(shí)踐

在數(shù)字化世界中,游戲已經(jīng)成為了人們休閑娛樂的重要方式之一。隨著科技的不斷進(jìn)步,游戲開發(fā)行業(yè)也在不斷發(fā)展,而Java作為一門廣泛使用的編程語...詳情>>

2023-12-12 08:49:15
Web前端的基石:HTML

在數(shù)字化的時代,網(wǎng)頁設(shè)計(jì)已經(jīng)成為了一個重要的領(lǐng)域。而在這個領(lǐng)域中,HTML(HyperTextMarkupLanguage)無疑是最基礎(chǔ)、最重要的一環(huán)。它是構(gòu)建...詳情>>

2023-12-12 08:15:55
嵌入式開發(fā):內(nèi)存分配的方式

嵌入式系統(tǒng)開發(fā)中,內(nèi)存分配是一個至關(guān)重要的話題。嵌入式系統(tǒng)通常具有有限的內(nèi)存資源,因此合理的內(nèi)存分配方式對系統(tǒng)的性能和穩(wěn)定性至關(guān)重要。...詳情>>

2023-12-12 06:35:55
快速通道