1.系統(tǒng)軟件
系統(tǒng)軟件控制和管理嵌入式系統(tǒng)資源,為嵌入式應用提供支持的各種軟件,如設備驅(qū)動程序、嵌入式操作系統(tǒng)、嵌入式中間件等。
2.應用軟件
應用軟件是嵌入式系統(tǒng)中的上層軟件,它定義了嵌入式設備的主要功能和用途,并負責與用戶進行交互。應用軟件是嵌入式系統(tǒng)功能的體現(xiàn),如飛行控制軟件、手機軟件、MP3播放軟件、電子地圖軟件等,一般面向于特定的應用領域。
3.支撐軟件
支撐軟件指輔助軟件開發(fā)的工具軟件,如系統(tǒng)分析設計工具、在線仿真工具、交叉編譯器、源程序模擬器和配置管理工具等。
在嵌入式系統(tǒng)當中,系統(tǒng)軟件和應用軟件運行在目標平臺的(即嵌入式設備上),而對于各種軟件開發(fā)工具來說,它們大部分都運行在開發(fā)平臺(PC機)上,運行Windows或Linux操作系統(tǒng)。
嵌入式軟件除了具有通用軟件的一般特性,同時還具有一些與嵌入式系統(tǒng)密切相關的特點。
�。╨)規(guī)模較小
在一般情況下,嵌入式系統(tǒng)的資源多是比較有限的,要求嵌入式軟件必須盡可能地精簡,多數(shù)的嵌入式軟件都在幾MB以內(nèi)。
�。�2)開發(fā)難度大
嵌入式系統(tǒng)由于硬件資源的有限,使得嵌入式軟件在時間和空間上都受到嚴格的限制,需要開發(fā)人員對編程語言、編譯器和操作系統(tǒng)有深刻的了解,才有可能開發(fā)出運行速度快、存儲空間少、維護成本低的軟件。嵌入式軟件一般都要涉及到底層軟件的開發(fā),應用軟件的開發(fā)也是直接基于操作系統(tǒng)的,這就要求開發(fā)人員具有扎實的軟、硬件基礎,能靈活運用不同的開發(fā)手段和工具,具有較豐富的開發(fā)經(jīng)驗。嵌入式軟件的運行環(huán)境和開發(fā)環(huán)境比PC機復雜,嵌入式軟件是在目標系統(tǒng)上運行的,而嵌入式軟件的開發(fā)工作則是在另外的開發(fā)系統(tǒng)中進行,當應用軟件調(diào)試無誤后,再把它放到目標系統(tǒng)上去。
�。�3)高實時性和可靠性要求
具有實時處理的能力是許多嵌入式系統(tǒng)的基本要求,實時性要求軟件對外部事件做出反應的時間必須要快,在某些情況下還要求是確定的、可重復實現(xiàn)的,不管系統(tǒng)當時的內(nèi)部狀態(tài)如何,都是可以預測的。同時,對于事件的處理一定要在限定的時間期限之前完成,否則就有可能引起系統(tǒng)的崩潰。
在航天控制、核電站、工業(yè)機器人等實時系統(tǒng)對嵌入式軟件的可靠性要求是非常高的,一旦軟件出了問題,其后果是非常嚴重的。
(4)軟件固化存儲
為了提高系統(tǒng)的啟動速度、執(zhí)行速度和可靠性,嵌入式系統(tǒng)中的軟件一般都固化在存儲器芯片或微處理器中。