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

RT-Thread嵌入式操作系統(tǒng)專業(yè)培訓(xùn)班-深圳站重磅開啟!

RT-Thread嵌入式操作系統(tǒng)專業(yè)培訓(xùn)班來上海啦!

2025嵌入式操作系統(tǒng)專業(yè)培訓(xùn)班正式啟動!

ARM嵌入式實時操作系統(tǒng)比較
新手怎么學(xué)嵌入式?
什么是嵌入式操作系統(tǒng)?
嵌入式 Linux 操作系統(tǒng)配置
嵌入式學(xué)習(xí)建議
新書發(fā)布——《RT-Thread嵌入式實時操作系統(tǒng)內(nèi)核、驅(qū)動和應(yīng)用開發(fā)技術(shù)》

嵌入式linux開發(fā)的基本步驟有哪些?
“第六屆國產(chǎn)嵌入式操作系統(tǒng)技術(shù)與產(chǎn)業(yè)發(fā)展論壇”圓滿結(jié)束

嵌入式系統(tǒng)中的實時操作系統(tǒng)
RT-Thread出席第六屆中國嵌入式技術(shù)大會,共話嵌入式操作系統(tǒng)與智能工業(yè)

評論