1. gzyueqian
      18529173453

      嵌入式開發:用于嵌入式系統的Rust

      更新時間: 2023-02-17 15:06:53來源: 粵嵌教育瀏覽量:7049

        嵌入式開發:用于嵌入式系統的Rust

        在嵌入式開發中,到目前為止,C/C++已經主導了系統編程。開發低錯誤和安全的軟件是一項重大挑戰。Rust語言是唯一成功的候選語言。與C++相比,它更專注于避免編程錯誤,而不會帶來過多的復雜性。

        但是,當查看常見編程語言排名時,發現已經有無數種語言在廣泛使用。這是因為每種語言都有不同的目標群體、不同的應用領域或不同的質量特征。因此,在軟件開發中有許多語言的空間。

        在傳統嵌入式系統的情況下,它主要涉及系統編程語言,即開發對資源具有最大控制的低級軟件。該軟件通常是任務關鍵型的,有時必須滿足實時或安全領域的特殊要求。

        系統編程

        在系統編程中,語言C和C++已經主導了幾十年。C已經快50歲了,長期以來一直是許多系統的骨干。在嵌入式開發中,如果沒有用C語言編寫的軟件,通用操作系統、內部組件和硬件相關驅動程序在今天仍然是不可想象的。嵌入式系統也不例外。對C的支持是所有平臺上最低的共同點。

        隨著C++的進一步發展,更大的軟件和更復雜的概念可以更好地實現。然而,C語言采用了所有語言,并面臨著相關的挑戰。C程序員總是需要確切地知道自己在做什么。謹慎和紀律對于避免許多危險的絆腳石至關重要。雖然處理器體系結構和內存結構的抽象幾乎不存在,這為系統編程語言提供了前提,但不幸的是,這也會導致容易出錯,因為編譯器允許大量代碼通過。

        


        C語言的已知問題,如緩沖區溢出、懸空指針、競爭條件、未初始化內存或未定義行為,通常只在運行時檢測到,這些問題通常是隨機發生的。這使得通過測試更難檢測到它們。在嵌入式開發中,使用C++而不是C只能在有限的程度上有所幫助,因為新的抽象和封裝方法只能很容易地繞過,而且該語言還引入了新的障礙(例如不需要的復制構造函數),這些障礙同樣危險,甚至更隱蔽。

        另一個問題是C++的語言復雜性,它隨著每個新版本的增加而增加,并且早就把其他主流語言拋在了后面(見圖1)。因此,掌握C++需要越來越多的經驗,編寫低錯誤軟件需要足夠的紀律。在現代世界中,軟件扮演著越來越重要的角色,網絡安全無從談起,在可接受的時間內實現軟件而不出錯已變得至關重要。因此,需要系統編程的后繼語言。

        C/C++后繼者的要求

        在測試過程中很容易檢測到簡單、明顯的錯誤。在嵌入式開發中,更難檢測的bug更隨機,通常來自內存安全、線程安全或未定義的行為。這是需要向前邁出一大步的地方。編程語言應在關鍵點允許盡可能少的錯誤。癥狀控制(審查、測試、更新)不再足以解決棘手的問題。

        由于這仍然是關于嵌入式系統的,因此也是關于系統編程的,因此將缺少一種避免困難bug的高級方法(例如垃圾收集器、自動并行化、強抽象)。強制運行時環境需要開銷和許多依賴性,不適合裸機軟件的面向硬件編程,嵌入式系統通常就是這樣。

        在嵌入式開發中,C/C++后繼者的其他要求當然是支持現代范式(包括功能)、與現有C代碼的輕松集成以及帶來豐富的生態系統,即工具、開發環境和社區。

      免費預約試聽課

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

      
      

      1. 亚洲综合一区国产精品 | 日本中文字幕中出在线 | 欧美国产一级毛卡片免费 | 亚洲人成自拍网站在线观看 | 在线观看精品国产午夜福利片 | 一区一级在线观看 |