沈 正,粱鑒如,楊明來
(1.上海工程技術大學電子電氣工程學院,上海 201620;2.上海應用技術大學軌道交通學院,上海 201418)
隨著信息化社會的發(fā)展,諸多計算機軟件開發(fā)部門對嵌入式軟件應用的關注度逐漸提高,嵌入式軟件與人們的日常生活及工作的聯(lián)系也越來越緊密。相關研究人員對嵌入式軟件進行具體研究與分析時,應明確軟件應用過程中存在的問題及需要注意的事項,從而為計算機軟件開發(fā)工作提供參考。針對嵌入式軟件開發(fā)與維護,很多學者進行了大量研究。如文獻[1]分析了嵌入式實時軟件在計算機領域的應用;文獻[2]探討了嵌入式軟件開發(fā)過程,提出嵌入式軟件的應用可以提高軟件開發(fā)效率;文獻[3]分析了我國嵌入式軟件發(fā)展現(xiàn)狀及趨勢,并對促進嵌入式軟件發(fā)展提出了合理建議;文獻[4]介紹了一種適合嵌入式軟件的單元測試方法,可提高嵌入式軟件的代碼質量;文獻[5]提出一種基于模型的嵌入式軟件開發(fā)方法,比較了不同建模工具,并對嵌入式軟件開發(fā)流程進行研究,驗證了基于模型驅動的軟件開發(fā)方法能有效提高嵌入式軟件開發(fā)效率;文獻[6]提出一種基于量子框架與Stateflow 模型的嵌入式系統(tǒng)軟件設計方法,兩者結合可以實現(xiàn)基于模型的嵌入式軟件開發(fā)方法。
本文主要對嵌入式軟件的概念、類型及開發(fā)過程中使用的相關技術進行研究,分析了嵌入式軟件應用過程中存在的實際問題,從而為后續(xù)計算機軟件開發(fā)工作提供參考。
嵌入式系統(tǒng)主要是指能夠幫助人們控制與監(jiān)測設備的裝置,是一套專用的計算機系統(tǒng)[7]。其涉及多種構成部件,例如傳感器、微處理器、存儲器、微控制器以及定時器等,這些微電子芯片及器件與嵌入在存儲器中的控制應用、微型操作系統(tǒng)有效融合,共同完成自動化處理任務[8]。此外,嵌入式系統(tǒng)以應用功能作為核心,以計算機技術、微電子技術、通訊技術及控制技術等作為基礎,在一定程度上重點強化硬件系統(tǒng)、軟件系統(tǒng)的整合性及協(xié)同性,利用軟件系統(tǒng)及硬件系統(tǒng)可剪裁的性質,實現(xiàn)系統(tǒng)對成本、功耗等方面的要求[9]。
其中,簡單的嵌入式系統(tǒng)僅具有設備控制功能,以單片機為例進行分析,在只讀存儲器(ROM)中只包含具有簡單控制功能的程序,而且不涉及微型操作系統(tǒng)。較復雜的嵌入式系統(tǒng)主要由諸多小型嵌入式系統(tǒng)組成,具備的功能與PC 基本一致,例如手持電腦及個人數(shù)字助理等。從根本上來說,復雜的嵌入式系統(tǒng)與PC 之間的主要區(qū)別為:嵌入式系統(tǒng)是將微型操作系統(tǒng)與應用軟件嵌入到FLASH 存儲器、ROM 等部件中[10],而非將其儲存在磁盤等系列載體內。
嵌入式軟件主要包括3 種類型,即嵌入式操作系統(tǒng)、嵌入式支撐軟件以及嵌入式應用軟件。
1.2.1 嵌入式操作系統(tǒng)
嵌入式操作系統(tǒng)屬于應用范圍相對較廣的系統(tǒng)軟件,以往該操作系統(tǒng)大多應用于國防控制與工業(yè)生產領域。嵌入式操作系統(tǒng)需要完成以下工作:①對硬件或軟件的控制管理;②協(xié)調硬件及軟件相關工作;③對硬件或軟件進行適度調整及改進等。對于嵌入式操作系統(tǒng)而言,其在商業(yè)運作中發(fā)揮的價值更加明顯,其中WindRiver、Microsoft以及QNX 是我國普遍應用的軟件[11]。
1.2.2 嵌入式支撐軟件
嵌入式支撐軟件主要是指為軟件開發(fā)提供幫助及支持的軟件,如開發(fā)工具及數(shù)據(jù)庫等,其中數(shù)據(jù)庫占比相對較大。隨著移動通信技術的不斷進步,人們對移動數(shù)據(jù)處理的需求逐漸增多,如今嵌入式數(shù)據(jù)庫技術已廣泛應用于軍事、教育以及工業(yè)領域等。另外,嵌入式移動數(shù)據(jù)庫也被稱為移動數(shù)據(jù)庫[12],屬于一種特殊的數(shù)據(jù)庫管理系統(tǒng),與應用系統(tǒng)及操作系統(tǒng)共同運行在智能移動設備中,在智能設備上進行數(shù)據(jù)存儲與計算。
1.2.3 嵌入式應用軟件
嵌入式應用軟件主要針對某特定領域,在用戶提供的硬件平臺上運行軟件。為滿足用戶相關需求,部分嵌入式軟件在應用期間需要選擇指定的嵌入式操作系統(tǒng)[13]。相比普通軟件,嵌入式應用軟件不僅需要具備優(yōu)化功能,同時還應具有更強的穩(wěn)定性以及更高的精準度,從而有效減少硬件投入成本以及系統(tǒng)資源占用。現(xiàn)階段,社會上針對嵌入式應用軟件的使用場景很多,如上位機軟件、辦公軟件等,這些軟件雖然規(guī)模較小,但是技術含量很高,因此得到了廣泛應用。
嵌入式軟件主要為嵌入式系統(tǒng)提供服務,因此與硬件設備聯(lián)系密切。嵌入式軟件屬于應用系統(tǒng),所以其將應用部分作為核心內容,根據(jù)應用需求實現(xiàn)定向開發(fā)。其中,每種嵌入式軟件都有其專屬的應用環(huán)境。
嵌入式軟件在一般情況下屬于模塊化軟件,可靈活應用于各嵌入式系統(tǒng)中,而且不會對原有系統(tǒng)功能進行破壞或更改。因其體積較為小巧,所以不會占用過多系統(tǒng)資源或空間。想要確保其具有更強的適用性,需要不斷調整與完善系統(tǒng)配置,降低其對系統(tǒng)整體的依賴。
嵌入式軟件在計算機軟件設計中的應用可以提升計算機軟件設計質量及可靠性,從而優(yōu)化計算機軟件設計開發(fā)流程。當應用嵌入式軟件時,應該先明確其開發(fā)流程,正確掌握計算機軟件及硬件結構,對其進行有效分離,在一定程度上確保二者能夠獨立運作,以增強計算機軟件的安全性以及可靠性[8]。此外,還應對計算機系統(tǒng)中的數(shù)據(jù)結構進行格式化處理,從而保證計算機軟件設計工作的有效開展。嵌入式軟件開發(fā)步驟如圖1 所示。

Fig.1 Embedded software development steps圖1 嵌入式軟件開發(fā)步驟
嵌入式軟件開發(fā)步驟主要分為3 步:首先,明確計算機軟件相關需求,并對其進行分析;其次,在全面掌握與了解計算機軟件需求的基礎上,操作人員編寫程序代碼;最后,檢測計算機軟件性能,同時對檢測結果進行分析,從而進一步調整與完善軟件設計工作。
嵌入式軟件組織框架主要應用于桌面系統(tǒng)及網(wǎng)絡系統(tǒng)中,而嵌入式系統(tǒng)很少運用組織框架,主要因為嵌入式系統(tǒng)結構相對簡單,不具備重復性特征。如今嵌入式軟件逐漸朝系統(tǒng)化、復雜化等方向發(fā)展,需要對功能作進一步完善。因此,在嵌入式基礎上制定軟件組織框架是很有必要的,甚至可以推動計算機行業(yè)的發(fā)展。嵌入式軟件組織框架如圖2 所示。

Fig.2 Embedded software organization framework圖2 嵌入式軟件組織框架
為了實現(xiàn)對其它設備的監(jiān)視、管理及控制等功能,嵌入式系統(tǒng)分為4 大板塊,分別是嵌入式操作系統(tǒng)、嵌入式微處理器、用戶應用程序以及外圍硬件設備。處理器技術與IC 技術則是嵌入式軟件的中樞技術,各技術具體內容如下:
2.3.1 處理器技術
處理器技術與用于實現(xiàn)系統(tǒng)功能的計算引擎結構相互關聯(lián),由于不同處理器面向指定功能的專用化程度不同,致使其設計指標也存在差異。
(1)通用處理器。首先,該類型的處理器無法用數(shù)字電路搭建程序,存儲程序無法適用于各種類型的應用[15];其次,為滿足數(shù)據(jù)寄存的需求,需要使用大量寄存器以及建設一個或多個通用算術邏輯單元。
(2)單用途處理器。單用途處理器是指加速器、外設、處理器這種應用于指定程序的數(shù)字電路,例如:壓縮或解壓視頻信息,可用JPEG 編碼解碼器執(zhí)行單一程序。嵌入式系統(tǒng)設計師可通過特有的數(shù)字電路搭建單用途處理器,也可使用事先制作好的單用途處理器。
(3)專用處理器。專用處理器是針對特定應用且可進行編程的處理器,也即專用指令集處理器(ASIP)。通過權衡速度、功耗、成本、靈活性等多個方面的設計約束,設計者可以定制ASIP 達到最好的平衡點,從而適應嵌入式系統(tǒng)的需要。
2.3.2 IC 技術
(1)全定制VLSI。設計師從晶體管的版圖連線、尺寸及位置開始策劃,以確保其具有芯片面積小、功耗低、利用率高、速度快等優(yōu)越性能,同時需要根據(jù)指定的嵌入式系統(tǒng)完善各項功能,這就是全定制IC 技術。大規(guī)模集成電路設計通常也被稱為全定制的IC 設計,其利用掩膜[18]在芯片制造廠制作芯片,需要花費很長時間,具有高昂的NRE成本,適用于對性能要求相對嚴苛的應用。
(2)半定制ASIC[19]。一種限制型設計方法,包括標準單元設計法和門陣列設計法。設計師只需考慮電路各功能模塊的合理連接即可,因為其是芯片制作過程中的通用性元件。
(3)可編程ASIC。由于可編程器件中所有各層都已存在,所以研發(fā)周期大幅縮短,設計完成后無需IC 廠家參與,即可將芯片在實驗室制作出來。可編程ASIC 的優(yōu)勢在于其消耗NRE 成本[20]較低,但其劣勢為功耗較大、速度較慢以及單位成本較高。
在嵌入式技術逐漸成熟和穩(wěn)定的條件下,相關產品也不斷應用于各行各業(yè)中。現(xiàn)階段,嵌入式軟件在汽車電子、互聯(lián)網(wǎng)、通訊等領域都發(fā)揮著重要作用。
在計算機軟件設計期間,嵌入式軟件可通過組建相關專業(yè)化技術模型,將硬件系統(tǒng)與軟件系統(tǒng)予以整合。嵌入式實時軟件可在一定程度上解決計算機軟件設計期間存在的問題,并且達到遠程操控計算機的目的[21]。因此,在計算機軟件設計中合理應用嵌入式軟件系統(tǒng),不僅可以完善計算模式以及系統(tǒng)操作流程,而且可以提升軟件設計的實用性及安全性,定期對計算機系統(tǒng)進行更新與優(yōu)化。
在嵌入式軟件設計過程中,應根據(jù)相關任務對其予以有效劃分,以提高軟件使用率,在最大程度上發(fā)揮其核心價值。因為任務組織方式之間存在邏輯關系,所以其對于優(yōu)化任務管理及組織功能發(fā)揮了重要作用[22]。嵌入式操作系統(tǒng)與計算機操作系統(tǒng)存在一定差異,對于嵌入式操作系統(tǒng)而言,其應用程序主要存在于只讀內存和交互矢量中,想要使嵌入式系統(tǒng)在運行過程中始終保持穩(wěn)定,則需要對計算機軟件系統(tǒng)進行全方位改進與調整。軟件設計期間的存儲器布局與應用屬于核心內容,應借助物理地址設置程序指令,同時編寫執(zhí)行代碼[23]。
嵌入式軟件系統(tǒng)在使用過程中具有較強的實時性,主要表現(xiàn)在兩個方面:硬件實時性及軟件實時性[24]。硬件實時性是指系統(tǒng)在規(guī)定時間內達到任務要求,并且不存在延時的情況;軟件實時性是指軟件開始運行后,某個進程在分配的響應時間內必須是可執(zhí)行的,并且必須在規(guī)定的響應時間內執(zhí)行完。通過操縱操作系統(tǒng)優(yōu)先級的調度方式,可在規(guī)定的時間范圍內實現(xiàn)軟件的實時性。假如有若干個任務作為軟件策劃的優(yōu)先級任務核心,為了提升軟件整體響應效率,保證重要任務的完成時間,需要分割出相應任務,根據(jù)任務的緊急程度增加原有的優(yōu)先級數(shù)[25]。
本文對嵌入式軟件概念、分類、開發(fā)過程以及開發(fā)技術等進行研究,并介紹了嵌入式軟件在計算機系統(tǒng)中的應用。但因嵌入式軟件應用研究目前仍處于起步階段,所以還有諸多內容需要不斷完善,例如嵌入式軟件體系結構屬于較新的研究領域,在后續(xù)工作中還需要作進一步研究。