女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

緣起今生:英飛凌車規MCU全系支持Rust 語言開發

江師大電信小希 ? 來源:江師大電信小希 ? 作者:江師大電信小希 ? 2024-04-05 13:43 ? 次閱讀

隨著軟件功能的日趨強大,軟件開發工作量隨之劇增,軟件開發團隊也不斷嘗試改進軟件的開發方法,旨在保證軟件功能,質量的情況下,減少成本,加快開發速度。

要實現上述目標,關鍵在于工作量——在軟件開發中盡可能減少工作量。

軟件開發相關的工作量包括功能需求定義,功能需求的實現和測試,非功能需求,以及修復開發過程中引入的錯誤的工作量。

站在軟件開發者的角度,在實現軟件完整功能的情況下,如何減少開發的總工作量,唯一能夠減少的部分就是用于修正錯誤的工作量。

對軟件開發而言,一旦發現錯誤,就必須加以修正,以保證軟件產品質量。因此,要在不影響產品質量的前提下減少工作量,唯一的解決辦法就是防止開發過程中引入軟件錯誤。

在已知的軟件錯誤中,內存安全是軟件行業中最常見的錯誤類別[1][2]。然而,嵌入式軟件行業的標準語言 C 和 C++ 是非內存安全編程語言,這意味著嵌入式系統很容易出現這類錯誤。

減少這類錯誤的方法之一是在軟件測試、審查和驗證方面投入人力物力,而另一種思路是用內存安全語言取代現有語言[3]。

雖然許多內存安全語言(如 Python、Java)已在軟件行業得到廣泛應用,但它們并不適合嵌入式系統。這是因為嵌入式系統對占用空間、堆棧使用和性能有嚴格的限制(這是C和C++的優勢)。

Rust就是在這樣的背景下誕生的,它同時實現了高效性和內存安全。

Rust 是什么

Rust語言在2006年作為 Mozilla 員工 Graydon Hoare 的私人項目出現,而 Mozilla 于 2009 年開始贊助這個項目。第一個有版本號的 Rust 編譯器于2012 年 1 月發布。Rust 1.0 是第一個穩定版本,于 2015年5月15日發布 [4] 。

wKgZomYPj26AY-YPAAAdBjmUL6M255.png

Figure 1. Rust Logo

Rust是一種在科技界大受歡迎的語言,Rust已經連續七年(2016,2017,2018,2019,2020, 2021, 2022)在Stack Overflow開發者調查的“最受喜愛編程語言”評選項目中折取桂冠[5]。

微軟用Rust重寫它的一些核心windowns庫,在 Android 13 中,21% 的新原生代碼使用了 Rust,此外,除 C 語言外,Rust 是唯一一種支持編寫 Linux 內核組件的語言,并被廣泛用于后端軟件、基礎設施和微服務。(找元器件現貨上唯樣商城

Figure 2. rust-gentle-intro [6]

Rust是一種系統編程語言,旨在成為無垃圾回收的內存安全語言。

Rust使用了包含特定規則的“所有權”機制來管理內存,允許編譯器在編譯過程中執行檢查工作,而不會產生任何的運行時開銷。Rust中的每一個值都有一個對應的變量作為它的所有者;在同一時間內,值有且僅有一個所有者;當所有者離開自己的作用域時,它持有的值就會被釋放掉。

Rust使用“借用規則”實現對值進行可變和不可變引用:一個值可以有一個不可變引用或多個可變引用,但不能同時有兩個引用。編譯器中一個名為“借用檢查器”的特定部分會對此進行檢查。

Rust中的生命周期規則:Rust的每個引用都有自己的生命周期,它對應著引用保持有效性的作用域。生命周期最主要的目標在于避免懸垂引用,進而避免程序引用到非預期的數據。[7][8]

Cargo 是 Rust 的軟件包管理器[9],軟件包被稱為板條箱(Crate),cargo 有一個命令:cargo build,它能自動解決項目依賴關系。另外,使用 cargo test 命令能觸發單元測試,使用 cargo doc 命令還能生成文檔網頁。cargo 的文檔列出了 30 多條不同的命令,用于支持軟件包處理、構建文檔和測試。此外,cargo 還可用于安裝其他 Rust 二進制文件,如工具 svd2rust。

嵌入式系統中的 Rust

wKgZomYPj2-Af7-OAABB7EEFnvw850.png

Figure 3. Embedded Rust Architecture

Embedded Rust 的結構可以分為上述5層,如上圖所示,從下往上的順序,最底層是MCU硬件層,有各個資源,外設,由不同的芯片決定;第2層是PAC,可以理解為芯片的頭文件,里面是各個寄存器的信息;第3層是在PAC的基礎上對寄存器進行操作一些調度函數,里面對寄存器進行直接操作;第4層是硬件抽象層,這一層的意義是從芯片強相關的驅動函數上抽象出來,提供一個通用接口,這個通用接口由最上層的軟件驅動層、軟件應用層去調用,實現對芯片資源的調度。

在Embedded Rust中,使用svd2rust工具將芯片資源的描述文件SVD文件轉化為PAC,該接口具有良好的可讀性,便于審查和維護。此外,它還能防止出現錯誤,因為如果設置的值對該字段無效,代碼將無法編譯。

RUST 與 C 語言的關系

Rust對硬件的內存需求,堆棧使用,運行效率可以和C相媲美,具體的細節差異會和編譯優化等級,應用等有些許差異。

此外,Rust有一個令人振奮的點,它可以和C語言共同使用。

Rust和C代碼間的互用性始終取決于兩種語言間的數據轉換。為了實現互用性,在stdlib中,有兩個專用模塊,叫做std::ffi和std::os::raw 。

std::ffi提供了一些工具去轉換更復雜的類型,比如Strings,將&str和String映射成更容易和安全處理的C類型。

std::os::raw處理底層的基本類型,這些類型可以被編譯器隱式地轉換,因為Rust和C之間的內存布局足夠相似或相同[10]。

Rust 是一種現代系統編程語言,可用于網絡應用程序和裸機嵌入式系統。不過Rust的生態和函數庫資源等比較有限,而和C之間的互通性可以讓Rust更加便捷的應用到現有的軟件中,更快的投入使用。

因此,我們將長期生活在 Rust 和 C 語言的混合環境中。盡管 Rust 聲稱內存安全(這一點已經得到證實),但是Rust 和 C 代碼的結合可能會導致安全的 Rust 生成的程序被不安全的 C 實現所違反的情況。為了確保 Rust 的安全性,有必要在 C 和 Rust 之間找到一個合理的分界點。

盡管如此,事實證明 Rust 是在嵌入式系統中替代 C 和 C++ 的合適候選語言,尤其是在新代碼開發方面。除內存安全外,Rust 語言的其他方面,如強大的類型系統和錯誤處理,也為 Rust 帶來了卓越的可讀性和可維護性。這提高了防錯能力,從而在不增加開發階段額外成本的情況下實現更安全的代碼。

英飛凌產品支持Embedded Rust

軟件安全對汽車市場至關重要,Rust 編程語言內置內存安全軟件開發支持,是設計關鍵任務汽車軟件的重要推動力。英飛凌科技公司為在嵌入式領域創建 Rust 生態系統邁出了第一步。首先推出的是市場領先的 AURIX? TC3xx 和 TRAVEO? T2G 汽車 MCU。TRAVEO? 使用官方 Rust 工具鏈和 Arm Cortex-M 目標編譯器,而英飛凌的工具合作伙伴 HighTec EDV-Systeme 則為 AURIX? 開發了專用 Rust 編譯器。

wKgaomYPj2-AWDVyAAAgOJhWGLE163.png

Figure 4. AURIX? and TRAVEO? T2G

AURIX? TC3xx 和 TRAVEO? T2G 微控制器產品系列為功能安全和網絡安全提供了廣泛的集成硬件功能。對 Rust 的支持是對這些硬件功能在軟件方面的補充。英飛凌為 AURIX? 和 TRAVEO? 提供了外設訪問板條 (PAC),以實現對微控制器外設的本地訪問。

HighTec Rust 編譯器專為 AURIX? TC3xx 和 TC4x 微控制器量身定制,利用先進的開源 LLVM 技術,為具有安全、可靠、高性能和快速部署要求的應用提供全套 Rust 語言特性,包括內存安全、并發性和互操作性。

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 英飛凌
    +關注

    關注

    67

    文章

    2317

    瀏覽量

    140183
  • mcu
    mcu
    +關注

    關注

    146

    文章

    17831

    瀏覽量

    360317
  • 嵌入式
    +關注

    關注

    5141

    文章

    19526

    瀏覽量

    314875
  • 內存
    +關注

    關注

    8

    文章

    3108

    瀏覽量

    74983
  • Rust
    +關注

    關注

    1

    文章

    233

    瀏覽量

    6954
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    勞特巴赫TRACE32全面支持芯馳科技MCU芯片E3650

    近日,勞特巴赫(Lauterbach)與芯馳科技共同宣布,其 TRACE32開發工具現已支持芯馳新一代旗艦智控MCU 芯片E3650。作為行業領先的微處理器調試開發工具廠商和芯馳的長期
    的頭像 發表于 04-22 16:40 ?377次閱讀
    勞特巴赫TRACE32全面<b class='flag-5'>支持</b>芯馳科技<b class='flag-5'>車</b><b class='flag-5'>規</b><b class='flag-5'>MCU</b>芯片E3650

    TASKING編譯器全面支持兆易創新GD32A7xMCU

    近日,兆易創新 GD32A7x MCU 正式獲得 TASKING VX-toolset for Arm v7.1r1 的全面支持。作為業內領先的嵌入式
    的頭像 發表于 04-12 14:31 ?510次閱讀

    淺談MCU (MGEQ1C064) OTA升級

    本帖最后由 noctor 于 2025-3-4 16:17 編輯 淺談MCU (MGEQ1C064) OTA升級 OTA升級為汽車打造新價值 OTA升級(Over-The-Air
    發表于 03-04 12:52

    國產替代新標桿:紫光THA6MCU的功耗控制與熱管理方案

    當全球汽車行業因芯片短缺陷入“卡脖子”困境時,紫光同芯的THA6系列車MCU橫空出世,不僅填補了國產高端MCU的空白,更憑借“功耗控制”與“熱管理”兩大殺手锏,直接對標國際大廠英飛凌
    的頭像 發表于 02-19 17:11 ?1340次閱讀
    國產替代新標桿:紫光THA6<b class='flag-5'>車</b><b class='flag-5'>規</b><b class='flag-5'>MCU</b>的功耗控制與熱管理方案

    PEmicro開發與燒錄工具全面支持矽力杰SA32B系列車MCU

    PEmicro宣布,其開發與燒錄工具繼支持矽力杰Teridian系列之后,現已全面支持矽力杰SA32B系列SA32B16、SA32B14、SA32B12
    的頭像 發表于 02-11 09:17 ?632次閱讀
    PEmicro<b class='flag-5'>開發</b>與燒錄工具全面<b class='flag-5'>支持</b>矽力杰SA32B系列車<b class='flag-5'>規</b><b class='flag-5'>MCU</b>

    MCU芯片DF30出征寒區開啟性能測試

    近日,由湖北企業自主研發設計的國內首款級高端MCU芯片DF30成功搭載上車。當日,DF30自主可控高性能
    的頭像 發表于 01-16 14:02 ?631次閱讀

    PEmicro開發與燒錄工具全面支持矽力杰SA32系列車MCU

    PEmicro宣布,其開發與燒錄工具繼支持矽力杰Teridian系列之后,現已全面支持矽力杰SA32B系列SA32B16、SA32B14、SA32B12
    的頭像 發表于 12-13 18:04 ?804次閱讀
    PEmicro<b class='flag-5'>開發</b>與燒錄工具全面<b class='flag-5'>支持</b>矽力杰SA32系列車<b class='flag-5'>規</b><b class='flag-5'>MCU</b>

    軟錯誤防護技術在車MCU中應用

    解決軟錯誤的問題。 國科環宇已經量產投片MCU芯片AS32A601,AS32A601是國科環宇公司研制的一款基于32位RISC-V指令集MCU產品。產品具有豐富的Flash容量、
    發表于 12-06 16:39

    全國產自主可控高性能MCU芯片發布

    近日,湖北省級芯片產業技術創新聯合體2024年大會召開,會上由東風汽車牽頭組建的湖北省級芯片產業技術創新聯合體發布了高性能
    的頭像 發表于 11-11 13:53 ?994次閱讀

    MCU編程語言開發環境介紹

    微控制器單元(Microcontroller Unit,簡稱MCU)是嵌入式系統的核心,廣泛應用于各種電子產品中。隨著技術的發展,MCU編程語言開發環境也在不斷進步,以適應不同的應用
    的頭像 發表于 11-01 11:51 ?1991次閱讀

    佰維存儲存儲解決方案亮相2024北京安博會

    近日,第十七屆中國國際社會公共安全產品博覽會在北京舉行,眾多安防領域的知名企業共聚一堂,共話“智能安防新未來”。為助力智能安防產業構建可靠的數據底座,佰維存儲以“存儲覆蓋,安全無盲點”為主題,展示了其在安防監控應用領域的
    的頭像 發表于 10-31 14:54 ?601次閱讀

    IAR支持旗芯微MCU,助力汽車行業智能化發展

    在全球汽車電子產業迅猛發展的背景下,IAR與蘇州旗芯微半導體有限公司(簡稱“旗芯微”)攜手宣布了一項重大合作成果:IAR Embedded Workbench for Arm 9.60.2版本現已實現對旗芯微MCU的全面
    的頭像 發表于 10-23 11:09 ?1109次閱讀

    級國產MCU-小華半導體

    政策加持,MCU國產化率將大幅提升,小華半導體汽車MCU符合AQC100,ISO 26262和ASPICE標準,建立豐富的汽車MCU
    的頭像 發表于 09-25 16:49 ?1412次閱讀
    <b class='flag-5'>車</b><b class='flag-5'>規</b>級國產<b class='flag-5'>MCU</b>-小華半導體

    芯科集成與IAR展開生態合作,IAR全面支持CX3288系列車MCU

    IAR嵌入式開發解決方案已全面支持芯科集成CX3288系列車RISC-V MCU,共同推動汽車高品質應用的安全開發 中國上海,2024年7
    發表于 07-16 16:17 ?419次閱讀

    IAR將推出全面支持矽力杰SA32BXXASIL-B MCU

    IAR嵌入式開發解決方案已全面支持矽力杰SA32BXX系列車ASIL-B MCU以及即將推出的SA32DXX系列ASIL-D MCU,共同
    的頭像 發表于 06-26 15:08 ?1008次閱讀