隨著嵌入式設備的復雜性不斷增加,軟件開發任務已成為典型項目預算的最大組成部分。圖形界面、網絡協議和數據安全只是設計團隊在其定制應用軟件之上添加的一些新要求。隨著軟件負擔的增加以及客戶對更快響應時間和即時數據訪問的需求,操作系統已成為組織和優先考慮軟件和硬件交互例程的基本要素。與只有少數操作系統的桌面環境不同,嵌入式設計人員有數百種選擇,正確的選擇取決于每個項目的特殊需求和要求。
操作系統的基本功能是管理系統的外圍設備和調度軟件任務,以確保每個程序獲得一些處理器時間。文件系統也是標準操作系統的一部分,用于存儲軟件模塊和引導指令。操作系統的另一大好處是為常見的硬件外圍設備提供網絡軟件和驅動程序,從而消除不斷的重新發明。然而,嵌入式操作系統與其桌面操作系統完全不同。桌面系統假設有鍵盤、鼠標、顯示器、硬盤和大量內存。但是,嵌入式產品沒有這樣的標準化。一個嵌入式系統可能沒有硬盤和有限的內存,而另一個根本沒有用戶 I/O。嵌入式操作系統也必須是模塊化的,QNX的Neutrino 實時操作系統(見圖 1)。在確定操作系統之前,設計人員應該了解調度算法、內存要求、延遲、工具支持和定價模型。
圖 1: QNX Neutrino RTOS 采用模塊化框架,使設計人員能夠為各種處理器架構創建優化的操作軟件。
硬或軟
當設計師將每個新項目的要求拼湊在一起時,實時性能是早期考慮的因素之一。操作系統供應商使用“硬”和“軟”等術語來描述其系統的實時操作。硬實時系統被安排,因此任務保證在外部事件的精確時間長度內開始。硬實時系統是確定性的。軟實時系統一般會列出啟動例程的平均時間長度,但有一個小概率是最大時間可以長得多。任務關鍵型應用程序必須是確定性的。例如,工業執行器、安全氣囊控制器,甚至街機游戲都必須在已知時間內做出反應。軟實時應用程序通常會在幾秒鐘內做出響應,但偶爾的緩慢響應并不重要。
實時操作系統的基本架構包括程序接口、內核、設備驅動程序和可選的服務模塊。內核是操作系統的核心,提供中斷處理程序、任務調度程序、資源共享標志和內存管理。內核的服務是通過調用其應用程序接口 (API) 來請求的。內核在實時操作過程中一直處于活動狀態,并且必須保持內存駐留。內核的主要功能之一是處理由外部或內部事件引起的中斷。當中斷發生時,處理器將控制權轉移到中斷服務程序,該程序登錄中斷,向調度程序發送消息,然后返回活動代碼。調度程序設置單個任務的執行順序,以確保較高優先級的任務可以搶占較低優先級的任務以維持確定性響應。最流行的調度技術是搶占式優先調度,其中任務可以中斷較低優先級的任務并繼續執行直到完成或直到被較高優先級的任務搶占。
開發工具鏈是選擇操作系統的另一個大問題。開發人員將把大部分軟件設計和調試工作用于與集成開發環境 (IDE) 交互,以便快速訪問編輯器、編譯器、鏈接器、下載器和運行時工具。大多數供應商提供完整的 IDE,包括源代碼編輯器、代碼管理器、指向編譯器和鏈接器的鏈接、將代碼下載到目標平臺的軟件,以及一個或多個調試器。軟件供應商還提供軟件性能分析工具來幫助開發人員分析和可視化軟件中的實時活動。其中許多分析工具是可選的,會增加整體工具成本。Green Hills Software提供MULTI 集成開發環境(IDE) 以支持各種操作系統。IDE 軟件工具在單個包中包含多個 C 編譯器選項、編輯器、配置管理器、代碼瀏覽器和調試器。MULTI 還具有DoubleCheck,這是一個集成的靜態分析器,可以隔離由可能不在同一源文件中的代碼段之間的復雜交互引起的錯誤。
節約成本
成本顯然是選擇嵌入式操作系統時的主要決定因素。由于使用軟件基本上沒有商品成本,因此供應商可以調整其定價模型以從各種來源產生收入。供應商可以收取初始許可費、每位工程師的開發席位、開發工具、每單位版稅、持續支持或重大升級。為了公平地比較價格,必須為所考慮的每個操作系統計算總體擁有成本。計算必須包括計劃在產品生命周期內交付的單位數量。盡管商業操作系統可能很昂貴,但節省成本是購買現成產品的重要原因。如果您可以購買并因此消除軟件最復雜部分的編碼、調試和文檔,你應該仔細考慮。供應商將產品技術支持視為商業操作系統的主要優勢。他們能夠通過將成本分攤給所有客戶來為軟件的操作系統部分提供持續的支持。
在生命周期分析和與商業操作系統成本相關的“貼紙沖擊”之后,設計人員通常還會考慮“免費”開源操作系統。盡管開源軟件消除了一些初始成本問題,但仍然存在必須解決的重大問題。潛在的開源用戶提出的一個問題是缺乏中央資源來提供類似于商業軟件供應商的支持。開發人員通常可以通過 Internet 找到他們問題的答案,但沒有人愿意研究和回答特定問題。開源產品被普遍化以適應最廣泛的用戶,并且可以迫使設計人員修改硬件配置,從而導致嵌入式設備的重復成本更高。還,開源軟件不屬于公共領域,用戶必須遵守個人許可中規定的特定規則,這些規則可能會迫使設計者向專有軟件公開源代碼。即使存在這些障礙,開源操作系統仍廣泛用于嵌入式設計。
占地面積小
選擇操作系統時的一個額外考慮因素是在所需的初始硬件占用空間和在需要更新時添加功能的能力之間進行權衡。操作系統必須是可擴展的,以便用戶可以選擇他們需要的軟件系統的那些部分或功能。隨著不斷變化的需求和嵌入式技術,設計人員希望能夠下載新的軟件模塊以添加或修改功能以供將來更新。Mentor Graphics的Nucleus 實時操作系統可降低嵌入式設備的物料清單成本允許開發人員在多種處理器硬件上部署小至 2k 的內核。借助模塊化結構,設計人員可以通過選擇可用功能的子集以及支持系統的 ROM 和 RAM 的數量來降低操作系統的初始成本。
嵌入式設計人員最喜歡的捷徑之一是使用商用現貨 (COTS) 模塊啟動項目,以消除大部分硬件開發和測試。通過為目標硬件選擇帶有板級支持包的操作系統,可以將同樣的快捷方式擴展到軟件。例如,LynuxWorks為其LynxOS實時操作系統提供150 多個 COTS 處理器板的板支持包。這些封裝包括 ARM、PowerPC、x86、MicroBlaze 和 MIPS 處理器板。這種方法可以縮短整體開發進度,使設計團隊能夠專注于嵌入式項目的專有部分。
隨著客戶對通用連接、更快的響應時間、復雜的功能和即時數據訪問的需求擴展到越來越多的設備,設計人員可以期待實時操作系統軟件成為未來嵌入式產品的標準。幸運的是,實時供應商和開源集合提供了大量現成的、可立即運行的軟件包,以適應大多數嵌入式配置。挑戰將是分析您的要求,以使操作系統與具有足夠增長空間的應用程序相匹配,同時最大限度地減少成本和開發工作。
審核編輯:郭婷
-
ARM
+關注
關注
134文章
9164瀏覽量
368613 -
嵌入式
+關注
關注
5090文章
19176瀏覽量
306895 -
操作系統
+關注
關注
37文章
6889瀏覽量
123599
發布評論請先 登錄
相關推薦
評論