1. gzyueqian
      13352868059

      每個嵌入式開發(fā)人員都需要知道的5個Rust運行時

      更新時間: 2024-05-24 10:03:12來源: 粵嵌教育瀏覽量:1130

      對更安全的邊緣軟件的需求一直在推動政府和大型企業(yè)的努力采用Rust,Rust為開發(fā)人員提供了許多好處,例如:

      l 沒有垃圾收集的內(nèi)存安全

      l 并發(fā)

      現(xiàn)代工具

       

      當(dāng)你結(jié)合所有這些優(yōu)點時,你會發(fā)現(xiàn)你可以編寫更安全和更高質(zhì)量的軟件。雖然嵌入式開發(fā)人員可能不愿意學(xué)習(xí)Rust,但它通常被稱為零成本抽象語言,因為它快速而高效。

      讓我們探討一下使用Rust開發(fā)嵌入式軟件時可以使用的五個運行時。

       

      1、使用no_std的裸機

      就像在CC++中一樣,可以編寫裸機Rust代碼。默認(rèn)情況下,Rust將包括許多運行時功能,如動態(tài)分配堆、集合、堆棧溢出保護(hù)、初始化代碼和libstd。雖然這對于桌面、移動或服務(wù)器應(yīng)用程序來說很好,但對于嵌入式應(yīng)用程序來說開銷很大。

       

      相反,你可以使用指令 #![no_std] 作為將禁用所有這些功能的機箱級屬性。使用no_std告訴Rust編譯器不要使用std-crate,而是使用包含libcore但沒有堆、集合、堆棧溢出保護(hù)等的裸機實現(xiàn)。

      no_std屬性非常適合希望以與CC++中相同的裸機形式編寫嵌入式軟件的開發(fā)人員。

       

      2、實時中斷驅(qū)動的并發(fā)性(RTIC)

      RTIC代表實時中斷驅(qū)動并發(fā),是一個專門為使用Rust編程語言構(gòu)建實時嵌入式應(yīng)用程序而設(shè)計的框架。RTIC主要針對裸機系統(tǒng),并利用Rust的零成本抽象和類型安全來提供一個并發(fā)執(zhí)行環(huán)境,在該環(huán)境中,任務(wù)根據(jù)其硬件中斷進(jìn)行管理和優(yōu)先級排序。

       

      RTIC框架通過以最小的開銷和可預(yù)測的行為處理任務(wù),確保應(yīng)用程序滿足實時保證。RTIC特別適合要求嚴(yán)格時序約束和高可靠性的應(yīng)用,例如汽車系統(tǒng)、工業(yè)自動化和其他嵌入式控制系統(tǒng)。由于Rust的所有權(quán)和類型系統(tǒng),該框架簡化了對共享資源的處理,并通過設(shè)計防止了數(shù)據(jù)競爭。

       

      3、異步嵌入式hal

      異步嵌入式halRust嵌入式hal(硬件抽象層)項目的實驗性擴展,為支持嵌入式系統(tǒng)中的異步編程而定制。它旨在彌合標(biāo)準(zhǔn)嵌入式hal通常提供的同步操作與現(xiàn)代嵌入式應(yīng)用的需求之間的差距,后者可以從非阻塞、異步I/O操作中受益。

       

      異步嵌入式hal允許開發(fā)人員在基于微控制器的系統(tǒng)上編寫效率更高、響應(yīng)速度更快的應(yīng)用程序,因為在這種系統(tǒng)中,阻塞操作在功耗和性能方面代價很高。通過將async/await語義集成到HAL中,異步嵌入式hal使讀取傳感器、網(wǎng)絡(luò)通信或與外設(shè)交互等任務(wù)在不停止微控制器的情況下執(zhí)行成為可能。結(jié)果是提高了系統(tǒng)同時處理多個任務(wù)的能力。

      開發(fā)異步嵌入式hal利用了Rust強大的異步編程特性,主要用于web和服務(wù)器應(yīng)用程序,并使它們適應(yīng)嵌入式系統(tǒng)的受限環(huán)境。這包括為SPII2CUSART等標(biāo)準(zhǔn)嵌入式接口提供異步特性。

       

      在這種情況下,異步編程允許任務(wù)產(chǎn)生控制而不是阻塞,這在任務(wù)在優(yōu)先級和響應(yīng)時間要求上有很大差異的系統(tǒng)中尤其有益。例如,像處理關(guān)鍵傳感器輸入這樣的高優(yōu)先級任務(wù)可以搶占像將數(shù)據(jù)記錄到存儲設(shè)備這樣的低優(yōu)先級任務(wù)。挑戰(zhàn)和創(chuàng)新在于實現(xiàn)這些特性,遵守嵌入式設(shè)備典型的嚴(yán)格尺寸和性能限制,同時不犧牲Rust自然提供的安全性和并發(fā)性優(yōu)勢。這種方法不僅簡化了開發(fā)過程,還提高了嵌入式應(yīng)用程序的可伸縮性和可維護(hù)性。

       

      4、Embassy

      Embassy是完全在Rust中構(gòu)建的嵌入式系統(tǒng)的異步運行時。它是專門為滿足嵌入式設(shè)備典型的資源受限環(huán)境的需求而設(shè)計的,利用Rust的異步/等待功能來實現(xiàn)高效、無阻塞的I/O操作。

       

      Embassy是希望在微控制器上實現(xiàn)復(fù)雜應(yīng)用的開發(fā)人員的理想選擇,傳統(tǒng)的同步阻塞會導(dǎo)致有限計算資源的低效使用。Embassy提供了一個支持各種嵌入式平臺的框架,為嵌入式系統(tǒng)中的并發(fā)執(zhí)行提供了一種可擴展且安全的方法。該運行時利用了Rust的可預(yù)測性能特性,確保任務(wù)的執(zhí)行沒有傳統(tǒng)多任務(wù)操作系統(tǒng)的開銷。

       

      Embassy的關(guān)鍵優(yōu)勢之一是其可擴展性以及與各種設(shè)備外圍設(shè)備的輕松接口。運行時通過管理異步任務(wù)和事件來優(yōu)化功耗和處理時間,從而有助于創(chuàng)建響應(yīng)迅速且可靠的應(yīng)用程序。例如,開發(fā)人員可以同時處理多個通信協(xié)議,而不需要在更通用的編程環(huán)境中常見的復(fù)雜和資源密集型線程機制。

       

      Drone OS

      Drone OS是一款完全用Rust編寫的尖端嵌入式操作系統(tǒng),專門為ARM Cortex-M微控制器上的實時應(yīng)用程序而設(shè)計。通過利用Rust的安全功能和零成本抽象,Drone OS為開發(fā)需要精確計時和資源效率的高性能嵌入式軟件提供了一個強大的平臺。

       

      該操作系統(tǒng)有助于低級硬件訪問,同時保持高安全性,最大限度地降低了嵌入式開發(fā)中常見的錯誤和內(nèi)存錯誤風(fēng)險。Drone OS以其模塊化設(shè)計和對并發(fā)編程的支持在嵌入式系統(tǒng)領(lǐng)域脫穎而出,使其成為尋求在現(xiàn)代嵌入式系統(tǒng)的苛刻環(huán)境中創(chuàng)建可擴展、可靠和可維護(hù)的實時應(yīng)用程序的開發(fā)人員的理想選擇。

       

      結(jié)語

      Rust是一種令人興奮的語言,它提供了內(nèi)存安全、安全性、并發(fā)性以及可用于開發(fā)嵌入式應(yīng)用程序的現(xiàn)代工具鏈。目前,使用Rust構(gòu)建嵌入式應(yīng)用并不只有一種方式。我們探索了幾種不同的運行時,從更傳統(tǒng)的裸機方法到操作系統(tǒng)。

       

      如果探索這些運行時,會發(fā)現(xiàn)它們可以幫助想象的更快地啟動和運行。但是,不要以為它們是完整的運行時。根據(jù)的選擇,可能會發(fā)現(xiàn)并非所有功能都能達(dá)到的預(yù)期水平。

       

      Rust已經(jīng)存在了大約十年,但它仍在不斷發(fā)展。從嵌入式的角度來看,可以用它做很多事情,但仍有許多未知因素。不要讓這阻止你學(xué)習(xí)這門豐富而令人興奮的語言。

      免費預(yù)約試聽課

      亚洲另类欧美综合久久图片区_亚洲中文字幕日产无码2020_欧美日本一区二区三区桃色视频_亚洲AⅤ天堂一区二区三区

      
      

      1. 午夜性色福利在线视频观看 | 亚洲中文成人门户 | 欧美啊v手机在线观看 | 亚洲国产天堂久久久久 | 中文乱码精品视频在线 | 中文字幕欧洲与亚洲无吗 |