- 外文名
- Embedded software[1]
- 領(lǐng) 域
- 軟件工程[1]
- 應(yīng) 用
- 嵌入式開發(fā)[1]
- 產(chǎn)業(yè)關(guān)聯(lián)
- 芯片設(shè)計制造[2]
- 含 義
- 嵌入在硬件中的操作系統(tǒng)和開發(fā)工具軟件[1]
嵌入式軟件與嵌入式系統(tǒng)是密不可分的,嵌入式系統(tǒng)一般由嵌入式微處理器、外圍硬件設(shè)備、嵌入式操作系統(tǒng)以及用戶的應(yīng)用程序4個部分組成,用于實現(xiàn)對其他設(shè)備的控制、監(jiān)視或管理等功能。嵌入式軟件就是基于嵌入式系統(tǒng)設(shè)計的軟件,它也是計算機(jī)軟件的一種,同樣由程序及其文檔組成,是嵌入式系統(tǒng)的重要組成部分[2]
。
第一階段:早期的嵌入式系統(tǒng)設(shè)計方法,通常是采用“硬件優(yōu)先”原則。即在只粗略估計軟件任務(wù)需求的情況下,首先進(jìn)行硬件設(shè)計與實現(xiàn)。然后,在此硬件平臺之上,再進(jìn)行軟件設(shè)計。因而很難達(dá)到充分利用硬件軟件資源,取得最佳性能的效果。同時,一旦在測試時發(fā)現(xiàn)問題,需要對設(shè)計進(jìn)行修改時,整個設(shè)計流程將重新進(jìn)行,對成本和設(shè)計周期的影響很大。這種傳統(tǒng)的設(shè)計方法只能改善硬件/軟件各自的性能,在有限的設(shè)計空間不可能對系統(tǒng)做出較好的性能綜合優(yōu)化,在很大程度上依賴于設(shè)計者的經(jīng)驗和反復(fù)實驗[3]
第二階段:90年代以來隨著電子系統(tǒng)功能的日益強(qiáng)大和微型化,系統(tǒng)設(shè)計所涉及的問題越來越多,難度也越來越大。同時硬件和軟件也不再是截然分開的兩個概念,而是緊密結(jié)合、相互影響的。因而出現(xiàn)了軟硬件協(xié)同(codesign)設(shè)計方法,即使用統(tǒng)一的方法和工具對軟硬件,協(xié)同設(shè)計軟硬件體系結(jié)構(gòu),以最大限度地挖掘系統(tǒng)軟硬件能力,避免由于獨(dú)立設(shè)計軟硬件體系結(jié)構(gòu)而帶來的種種弊病,得到高性能低代價的優(yōu)化設(shè)計方案[3]
嵌入式軟件具有以下的特點:[4]
獨(dú)特的實用性
嵌入式軟件是為嵌入式系統(tǒng)服務(wù)的,這就要求它與外部硬件和設(shè)備聯(lián)系緊密。嵌入式系統(tǒng)以應(yīng)用為中心,嵌入式軟件是應(yīng)用系統(tǒng),根據(jù)應(yīng)用需求定向開發(fā),面向產(chǎn)業(yè)、面向市場,需要特定的行業(yè)經(jīng)驗。每種嵌入式軟件都有自己獨(dú)特的應(yīng)用環(huán)境和實用價值[4]
靈活的適用性
嵌入式軟件通??梢哉J(rèn)為是一種模塊化軟件,它應(yīng)該能非常方便靈活地運(yùn)用到各種嵌入式系統(tǒng)中,而不能破壞或更改原有的系統(tǒng)特性和功能。嵌入式軟件要使用靈活,應(yīng)盡量優(yōu)化配置,減小對系統(tǒng)的整體繼承性,升級更換靈活方便[4]
程序代碼精簡
由于嵌入式系統(tǒng)本身的應(yīng)用有小體積、小存儲空間、低成本、低功耗等要求,嵌入式軟件和大型機(jī)上的軟件相比,具有代碼精簡、執(zhí)行效率高等特點[4]
可靠性、穩(wěn)定性高
嵌入式系統(tǒng)應(yīng)用要求一般較為苛刻,特別是在涉及安全相關(guān)的領(lǐng)域,如汽車電子、工業(yè)控制、航空航天等,這些領(lǐng)域的嵌入式系統(tǒng)不僅要求硬件可靠,還對嵌入式軟件提出了更高的要求。嵌入式軟件需要運(yùn)行可靠、穩(wěn)定,具有錯誤處理及故障恢復(fù)等功能[4]
按照通常的分類方法,嵌入式軟件可以分為系統(tǒng)軟件、應(yīng)用軟件和支撐軟件三大類[5]
系統(tǒng)軟件
系統(tǒng)軟件控制和管理嵌入式系統(tǒng)資源,為嵌入式應(yīng)用提供支持的各種軟件,如設(shè)備驅(qū)動程序、嵌入式操作系統(tǒng)、嵌入式中間件等[5]
應(yīng)用軟件
應(yīng)用軟件是嵌入式系統(tǒng)中的上層軟件,它定義了嵌入式設(shè)備的主要功能和用途,并負(fù)責(zé)與用戶進(jìn)行交互。應(yīng)用軟件是嵌入式系統(tǒng)功能的體現(xiàn),如飛行控制軟件、手機(jī)軟件、MP3播放軟件、電子地圖軟件等,一般面向特定的應(yīng)用領(lǐng)域[5]
支撐軟件
支撐軟件是指輔助軟件開發(fā)的工具軟件,如系統(tǒng)分析設(shè)計工具、在線仿真工具、交叉編譯器源程序模擬器和配置管理工具等[5]
在嵌入式系統(tǒng)當(dāng)中,系統(tǒng)軟件和應(yīng)用軟件運(yùn)行在目標(biāo)平臺上(即嵌入式設(shè)備上),而對于各種軟件開發(fā)工具來說,它們大部分都運(yùn)行在開發(fā)平臺(PC機(jī))上,運(yùn)行Windows或 Linux操作系統(tǒng)[5]
不同于通用計算機(jī)和工作站上的軟件開發(fā)工程,一個嵌入式軟件的開發(fā)過程具有很多特點和不確定性。其中最重要的一點是軟件跟硬件的緊密耦合特性。由于嵌入式系統(tǒng)的靈活性和多樣性,這樣就給軟件設(shè)計人員帶來了極大地困難:第一,在軟件設(shè)計過程中過多地考慮硬件,給開發(fā)和調(diào)試都帶來了很多不便;第二,如果所有的軟件工作都需要在硬件平臺就緒之后進(jìn)行,自然就延長了整個的系統(tǒng)開發(fā)周期。這些都是應(yīng)該從方法上加以改進(jìn)和避免的問題。為了解決這個問題,我們可以在特定的EDA工具環(huán)境下面進(jìn)行開發(fā),通過后再進(jìn)行移植到硬件平臺的工作。這樣既可以保證程序邏輯設(shè)計的正確性,同時使得軟件開發(fā)可平行甚至超前于硬件開發(fā)進(jìn)程[6]
。
嵌入式系統(tǒng)的硬件必須根據(jù)具體的應(yīng)用任務(wù),以功耗,成本,體積, 可靠性,處理能力等為指標(biāo)來選擇[7]
。
2022年1月至8月,中國嵌入式系統(tǒng)軟件收入5328億元。[8]