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