- 嵌入式軟件系統測試:基于形式化方法的自動化測試解決方案
- 殷永峰 姜博編著
- 1449字
- 2021-02-22 15:46:12
1.2 嵌入式軟件概述
1.2.1 嵌入式軟件分類
作為嵌入式系統的靈魂,嵌入式軟件是指嵌入式系統中用于控制和管理系統功能的軟件集合。嵌入式軟件通常有兩種分類方式,如圖1-4所示。
1.按照軟件所在層次劃分
按照軟件在嵌入式系統中的層次來分,嵌入式軟件分為系統軟件、支撐軟件和應用軟件,具體說明如下:
·系統軟件。系統軟件是指嵌入式系統中用于控制、管理計算機系統資源的軟件,主要指嵌入式操作系統,主流的嵌入式操作系統有Windows CE、Palm OS、Linux、VxWorks、pSOS、QNX、OS-9、LynxOS等。我國嵌入式操作系統的起步較晚,國內此類產品主要是基于自主版權的Linux操作系統,其中以中軟Linux、紅旗Linux、東方Linux等為代表。
·支撐軟件。支撐軟件是指用于輔助軟件開發的軟件工具集,具體包括嵌入式數據庫、系統分析工具、系統仿真工具、交叉開發工具、軟件測試工具等。目前主流的嵌入式移動數據庫系統有Sybase、Oracle等。我國嵌入式移動數據庫系統起步較晚,目前以東軟集團研究開發的OpenBASE Mini為代表。

圖1-4 嵌入式軟件分類
·應用軟件。應用軟件是嵌入式系統中面向用戶體驗的應用程序,一般針對特定應用領域且基于某一固定的硬件平臺,用來達到用戶的預期目標。嵌入式應用軟件不僅要求在準確性、安全性和穩定性等方面能夠滿足實際應用的需要,而且還要盡可能地進行優化,以減少對系統資源的消耗,降低硬件成本。目前我國市場上已經出現了各式各樣的嵌入式應用軟件,包括各類移動終端軟件、路由器軟件、交換機軟件、飛控軟件、導航系統軟件、列車控制系統軟件、瀏覽器、Email軟件、文字處理軟件等。嵌入式系統中的應用軟件是最活躍的力量,每種應用軟件均有特定的應用背景,盡管規模較小,但專業性較強,所以嵌入式應用軟件不像操作系統和支撐軟件那樣受制于國外產品的壟斷,是我國嵌入式軟件的優勢領域。
2.按照軟件結構劃分
按照嵌入式軟件結構來分,嵌入式軟件可分為單線程程序和事件驅動程序。
·單線程程序。單線程程序是結構最為簡單的嵌入式軟件,不需要多任務調度及中斷服務程序等,也沒有主控程序,其又可進一步細分為循環輪詢系統和有限狀態機系統。單線程程序的優點是結構簡單、執行效率高、程序維護方便;缺點是容錯能力差,一旦出現軟件故障,系統無法恢復和進行容錯處理,導致軟件安全性較差,一般適合對實時性和安全性要求不高的簡單應用。
·事件驅動程序。事件驅動程序是比單線程程序復雜的嵌入式應用,可以解決軟件安全容錯問題。其一般可分為中斷驅動系統和多任務系統,而多任務系統又可分為單機多任務系統和分布式系統。
·中斷驅動系統考慮中斷優先級以解決程序容錯問題。當多個中斷服務請求同時發生,且需要考慮各中斷優先級或處理程序錯誤時,主控程序將按照既定策略對各中斷請求進行實時處理,以滿足系統設計需要。
·多任務系統往往基于嵌入式操作系統進行開發,它是指在多任務處理環境下,只有當其他程序認可時,一個運行程序才可獲得處理器時間。每一個應用程序(任務)必須協同地放棄對處理器的控制,以便其他應用程序運行。目前主流的嵌入式操作系統都支持協同多任務處理和搶占式多任務處理。必要時,嵌入式操作系統可以中斷當前正在運行的任務以便運行另一個任務。通過上述操作,可實現任務的切換、調度、通信、同步、互斥及復雜時鐘管理等,從而大大提高嵌入式系統的容錯能力和安全性,使得用戶獲得最優的使用體驗,完成既定的任務或功能。
隨著嵌入式系統面臨的需求越來越復雜,對嵌入式軟件的要求也越來越高。由于軟件的應用場景和架構日趨復雜,當前越來越多的嵌入式系統采用分布式架構,通過分布式計算,解決多用戶并發、并行處理、節點負載均衡、分布式容錯等關鍵問題。