1. gzyueqian
      13352868059

      嵌入式開發:你需要知道的5種簡單嵌入式軟件分類

      更新時間: 2023-02-15 12:03:53來源: 粵嵌教育瀏覽量:4782

        傳達嵌入式軟件體系結構設計意圖通常伴隨著基于嵌入式開發人員經驗的假設。你可以從資源受限的基于微控制器的系統的角度來看架構設計。如何設計架構將取決于系統的嵌入式軟件分類。有許多不同的方法可以對嵌入式軟件進行分類。我發現有五種簡單的嵌入式軟件分類可以幫助我調整視角,以更好地理解手頭的系統。

        讓我們探索5種簡單的嵌入式軟件分類,你需要了解這些分類才能成功地進行通信和設計你的系統。

        分類1 — 裸機

        裸金屬嵌入式系統利用不依賴于操作系統的軟件架構。通常,裸金屬架構將是事件驅動的,嚴重依賴狀態機,和/或使用非常簡單的協作任務調度。開發人員需要非常了解底層處理器,因為沒有操作系統可以抽象出底層細節。

        你通常會在資源受限的設備上找到裸機軟件設計,例如8位、16位和一些32位微控制器。但是,資源可用性并不是裸機系統的限制因素。你可以設計一個裸機架構,并在任何嵌入式處理器上實現。但是,處理器越復雜,實現就越復雜。

        對于功能有限、使用資源受限的微控制器、具有嚴格的實時要求且對可擴展性的需求最低的產品,建議嵌入式開發人員使用裸機架構和實現。

        分類2 — 實時操作系統(RTOS)

        在過去幾年中,利用實時操作系統的嵌入式軟件架構顯著增加。基于RTOS的嵌入式系統通常具有比裸機架構所能管理的更復雜的時序要求。RTOS抽象了一些低級細節,如任務調度,同時也為開發人員提供了任務同步(信號量和標志)、數據保護(互斥鎖)和通信(隊列)的工具。

        你通常可以在32位微控制器和小型應用處理器上找到RTOS軟件設計。雖然你可以在16位處理器上找到它們,但RTOS通常需要至少24 KB的閃存和32 KB的RAM才能有效使用。這些要求對RTOS的有效使用設置了較低的限制。

        RTOS會增加設計的復雜性,主要是在使用搶占式任務調度時。如果設計者不小心,就有可能導致線程饑餓、優先級反轉甚至死鎖。然而,與裸機系統相比,RTOS可以為嵌入式開發人員提供快速擴展系統、提高可維護性和收集更復雜的系統性能的能力。

        對于具有復雜時序要求、使用現代微控制器、受益于多任務處理以及需要擴展或重用應用程序的產品,建議使用基于RTOS的體系結構和實現。

        

        分類3 — “完整”操作系統

        當使用足夠復雜的處理器(如應用程序處理器)時,嵌入式軟件體系結構可以利用整個操作系統。例如,嵌入式Linux可以被認為是一個完整的操作系統。我沒有將RTOS包括在這一類別中,因為RTOS是一種專用的、資源受限的操作系統,與嵌入式Linux不同。設計師可以完全訪問庫和操作系統資源,這是他們在開發桌面或移動應用程序時所需要的。

        你通常會在32位應用程序處理器(如Raspberry Pi)上找到操作系統軟件設計。然而,這些處理器非常復雜,需要一個操作系統來管理它們的所有資源。現在,這并不意味著你不能裸奔或使用RTOS;這僅僅意味著復雜性和開發時間大大增加。

        完整的操作系統可以減輕嵌入式開發人員的內存限制負擔。此外,你通常可以讓非嵌入式軟件人員參與進來。對于構建在操作系統上的應用程序,軟件專業化要少得多。

        對于沒有嚴格實時要求、使用現代微處理器、受益于高抽象級別、需要擴展或重用應用程序片段的產品,建議使用完整的操作系統架構和實現。

        分類4 — 容器/微服務

        微服務和容器是云、移動和桌面計算中常見的設計類型。然而,他們正在迅速找到進入嵌入式系統的途徑。我把這兩個放在一起,因為我們使用的架構設計策略是相似的,盡管底層技術不同。

        微服務公司

        微服務將應用程序構造為松散耦合的服務的集合,可以獨立部署并且易于維護(如果做得好)。微服務將應用程序構建為為業務領域開發的小型自治服務的集合。微服務提供了一個松散耦合的服務,并考慮了特定的特性。

        在嵌入式開發中,相對資源受限的嵌入式系統(如微控制器)可以運行微服務。然而,它們通常需要至少相同數量的內存來運行RTOS。微服務包括服務本身、入站和出站消息隊列以及日志和狀態信息。

        微服務可以通過需要協調器和運行時環境來增加設計的復雜性。這絕不是破壞交易,但你必須小心使用資源,并仔細監控系統的實時響應。然而,微服務可以提供非常可擴展的系統,易于現場維護和更新。

        我建議在需要現場更新、可擴展性和現代敏捷流程并受益于分布式模型的應用程序中使用微服務。

        

        容器

        容器是一種可以托管微服務的實現范式。每個容器都是一個獨立的沙盒,可以運行一個或多個微服務。容器通常可獨立部署,易于維護。一系列容器為更廣泛的應用奠定了基礎。同樣,容器和微服務是密切相關的;容器為要運行的微服務提供了額外的隔離和分離層。

        至少需要一個現代微控制器來利用容器。每個技術供應商都略有不同,但有些嵌入式開發人員聲稱能夠使用與RTOS一樣少的內存。然而,我調查過的大多數目標物聯網應用程序預計閃存大約為256 KB。

        容器是一種現代體系結構實現,可以為嵌入式應用程序增加靈活性、可擴展性和可移植性。它們已成功地應用于其他軟件領域數年。迄今為止,最大的限制是規模和性能。

        我建議在需要現場更新、可擴展性、額外安全性和現代敏捷流程的應用程序中使用容器。

        分類5 — 混合

        混合系統同時利用多種分類。例如,你可能有一個使用嵌入式Linux的應用程序處理器。然而,該處理器可能具有內置微控制器,該微控制器使用裸機方法來管理實時響應。

        混合系統允許開發人員利用多種設計方法從多種系統類型中獲益。不幸的是,如果嵌入式開發團隊不仔細管理其設計的各個部分之間的交互,這種靈活性往往會增加系統復雜性。

        對于具有復雜處理和實時需求的產品,建議使用混合體系結構和實現,這些產品使用多核處理器,受益于高級別的抽象,并且需要擴展或重用應用程序。

        結論

        嵌入式軟件系統可分為多種類型。如何設計和構建嵌入式軟件將取決于你選擇的分類。每個分類都將規定用于構建和實現系統的設計模式和工具。在嵌入式開發人員設計或討論系統時,請先指定系統類型,然后再繼續,會發現這個簡單的練習會幫助你找到正確的方向。

      免費預約試聽課

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

      
      

      1. 人摸人摸在线视频 | 亚洲欧美另类视频小说专区 | 日本在线中文字幕乱码免费 | 色五月婷婷丝袜高清有码 | 日韩精品一区二区三区在线观看视频 | 五月天激情中文网 |