什(shén)麽是(shì)嵌入式軟件(jiàn)?"≠♣
嵌入式軟件(jiàn)就(♦§jiù)是(shì)嵌入在硬件(jiàn)中的(de)操作(zuò)系統和(hé)開(kāi™♠)發工(gōng)具軟件(jiàn),它在産業(yè)中的(de)關聯關系體(tǐ)現(xiàn)為(wèi):芯片設計(jì)制(zhì)造→嵌入式系統軟件(jiàn)→嵌入式電(diàn)子(♣≤®zǐ)設備開(kāi)發、制(zhì)造。
 ₹$ ×;嵌入式軟件(jiàn)最基本的(de)理(lǐ)解是(shì)軟件(jiàn)+硬件(jiàn)結合,來(lái)對(duì)産品做(zuò)出定義,而非嵌入式軟件(jiàn)又(yò'¶ u)或是(shì)純互聯網行(xíng)業(yè)則是(shì)單純的(de)對(d₩>uì)軟件(jiàn)做(zuò)出定義,其兼容性γ™∏差,軟件(jiàn)移植性差。
傳統行(xíng)業γβ∑π(yè)上(shàng)對(duì)嵌入式的(de)應用(yòng)較為β∞(wèi)廣闊,即便現(xiàn)在互聯網行(xíng)業(yè)如(rú)此發>達,但(dàn)是(shì)不(bù)得(de)不(bù)承認,傳統行(xíng)業(yè)在↕✔✔€社會(huì)發展中有(yǒu)不(bù)可(kě)替代的(de)地(★<dì)位。傳統行(xíng)業(yè)與互聯網的(de)結和(hé)的(¥∑λde)嵌入式開(kāi)發應用(yòng)更是( ↑£shì)具有(yǒu)光(guāng)明(míng)前景的(de)。
嵌入式系統γ±←一(yī)般由嵌入式微(wēi)處理(lǐ)器(qì)、外(w→∞≠ài)圍硬件(jiàn)設備、嵌入式操作(zuò)系統™£以及用(yòng)戶的(de)應用(yòng)程序4個(gè)部分(fēn)組成,用(yòng)于實現(xiàn)對(duì)其他(tā)設&備的(de)控制(zhì)、監視(shì)或管理(lǐ)等功能(nénⶶ÷g)。嵌入式軟件(jiàn)就(jiù)是(shì)基于嵌入式系統設計(jì)的(de)軟件(j∞•±iàn),它也(yě)是(shì)計(jì)算(suàn)機(jī)軟件(j≠≠£♠iàn)的(de)一(yī)種,同樣由程序及其文(wén)檔組成,"₹是(shì)嵌入式系統的(de)重要(yào)組成部分(fēn)。
嵌'¶入式中硬件(jiàn)和(hé)軟件(jiàn)也(yě)不(bù≈≈♦)再是(shì)截然分(fēn)開(kāi)的(de)兩個(g÷γè)概念,而是(shì)緊密結合、相(xiàng)互影(yǐng)響的(d§e)。因而出現(xiàn)了(le)軟硬件(jiàn)協同(codesign)設×®Ω∑計(jì)方法,即使用(yòng)統一(yī)的(de)方法和(hé)工(g&α±ōng)具對(duì)軟硬件(jiàn),協同設計(jì)軟硬件(jiàn)體(tǐ)系結構,以最↑σ大(dà)限度地(dì)挖掘系統軟硬件(jiàn)能(néng)力,避免由于獨立©♦設計(jì)軟硬件(jiàn)體(tǐ)系結構而帶來">↕(lái)的(de)種種弊病,得(de)到(dào)高(gāo)性$ 能(néng)低(dī)代價的(de)優£¶™化(huà)設計(jì)方案。
嵌入式軟件(jiàn)的(de)特點:
獨特的(de)實用(yòng)性
嵌入式軟件(jiàn)要(yào)求 ∏↓它與外(wài)部硬件(jiàn)和(hé)設備聯系緊密,嵌入式系統以應用(yòng)為π'&(wèi)中心,嵌入式軟件(jiàn)是(shì)≠δ≠≈應用(yòng)系統,根據應用(yòng)需求定向開(kλ→εεāi)發,面向産業(yè)、需要(yào)特定的(de)行(xíng)業(yè₽→)經驗。每種嵌入式軟件(jiàn)都(dōu)有(yǒu)自(φ±zì)己獨特的(de)應用(yòng)環境和(hé)實用(yòng)價值。
靈活的(de)适用(yòng)性
嵌入式軟件(jiàn)通(tōng)✔₽∞α常可(kě)以認為(wèi)是(shì)一(yī)種模塊化(huà)軟件(ji←±àn),它應該能(néng)非常方便靈活地α§(dì)運用(yòng)到(dào)各種嵌入式系統中,而不(bù)能(néng)破壞或更改原 ♥©®有(yǒu)的(de)系統特性和(hé)功能∏€ (néng)。嵌入式軟件(jiàn)要(π¶γyào)使用(yòng)靈活,應盡量優化(huà)配置,減小(xiǎo)對(duì)系統★←→的(de)整體(tǐ)繼承性,升級更換靈活方便。
程序代碼精簡
&≤¶ ∑nbsp;由于嵌入式系統本身(shēn)的(de)應用(yòng)有(yǒu)小¥ ÷₹(xiǎo)體(tǐ)積、小(xiǎo)存儲空(kōng)間(jiān)、低(σσλdī)成本、低(dī)功耗等要(yào)求,嵌入式©$軟件(jiàn)和(hé)大(dà)型機(jī)上(shàng)的(dλλe)軟件(jiàn)相(xiàng)比,具有(yǒu)代碼¶£≥精簡、執行(xíng)效率高(gāo)等✘§∏★特點。
可(kě)靠性、穩定性高(gāo)
嵌入式系統應用(yòngΩλ♦)要(yào)求一(yī)般較為(wèi)苛刻,特别是(shì)♦β在涉及安全相(xiàng)關的(de)領域,如€ε"(rú)汽車(chē)電(diàn)子(zǐ)(下(xià)面會(huì)γ£具體(tǐ)說(shuō)明(míng)汽車(chē)軟件(jiàn)嵌入式的(de)相(xiàn★∞g)關內(nèi)容)、還(hái)有(yǒu)工(gōng)業(yè)控制(zhì)、航空(kō £σ∏ng)航天等,這(zhè)些(xiē)領域的(de)嵌入式系統不(bù)僅要(y✘αào)求硬件(jiàn)可(kě)靠,還(hái)對(λ↑φduì)嵌入式軟件(jiàn)提出了(le)更高(gāo)的(de)要(yào)求。嵌γ<ε入式軟件(jiàn)需要(yào)運行(xíng)可(kě)靠、穩©☆定,具有(yǒu)錯(cuò)誤處理(lǐ)及故障恢複$πΩ≥等功能(néng)。
嵌入式軟件(jiàn)分(fēn)類:
按照(zhào)通(tōng)✔©λ"常的(de)分(fēn)類方法,嵌入式軟件(jiàn)可(kě)以分(fēn)為≠ γ(wèi)系統軟件(jiàn)、應用(yòn♠g)軟件(jiàn)和(hé)支撐軟件(jiàn)三大(dà)類:
系統軟件(jiàn)
™ 系統軟件(jiàn)控制(zhì←®")和(hé)管理(lǐ)嵌入式系統資源,為(wèi)嵌入₹¥ ≈式應用(yòng)提供支持的(de)各種軟件(jiàn),如(rú)設備驅動程序、εδ&嵌入式操作(zuò)系統、嵌入式中間(ji≠♣>ān)件(jiàn)等。
應用(yòng)軟件(jiàn)
應用(yòng)軟件(jiàn)是(s£$☆hì)嵌入式系統中的(de)上(shàng)層軟件(jiàn),它定義≥→了(le)嵌入式設備的(de)主要(yào)功能(néng)和(hé)用(yòng)途,并負≠≠責與用(yòng)戶進行(xíng)交互。應用(yòng)軟件(jiàn)是(shì)嵌入式系統₽₽®功能(néng)的(de)體(tǐ)現(xiàn),如(rú)飛(fēi)行(xíng)控制∑→÷(zhì)軟件(jiàn)、手機(jī)軟件(ji☆α•✘àn)、MP3播放(fàng)軟件(jiàn)、電(diàn)子(zǐ)地(d↕ ì)圖軟件(jiàn)等,一(yī)般面向特定的(de)應用(yò∏★ng)領域。
支撐軟件(jiàn)
支撐軟件(jiàn)是(shì)指♥©♠←輔助軟件(jiàn)開(kāi)發的(de)工(gōn£₽☆g)具軟件(jiàn),如(rú)在線仿真¶φ$工(gōng)具、交叉編譯器(qì)源程∑♦序模拟器(qì)和(hé)配置管理(lǐ)工(gōng)具等。
在嵌入式系統當中,系統軟件(jiàn)和(h♥β÷é)應用(yòng)軟件(jiàn)運行(xíng)在δ"目标平台上(shàng)(即嵌入式設備上(shàng)),而對(duì↑"←←)于各種軟件(jiàn)開(kāi)發工(gōng)具來(lái)說(∑≠₩shuō),它們大(dà)部分(fēn)都(dōu)運行(x♥∏≥íng)在開(kāi)發平台(PC機(jī))上(shàng)✔∞,運行(xíng)Windows或 Linux操作(zuò)系統。
嵌入式軟件(jiàn)和(hé)非嵌入式軟件(jiàn)的(de)區(qū)别
嵌入式:在已有(yǒu)的(de)硬件(jiàn)上(shàng)移φ€植(需要(yào)修改操作(zuò)系統源碼,™&安裝不(bù)需要(yào))操作(zuò)系統解決軟硬件(jiàn¥₽ )耦合導緻的(de)問(wèn)題。
嵌入式軟件(jiàn)和(hé)非嵌入式軟件↓λ(jiàn)的(de)區(qū)别(即傳統開(kāi)發和(hé)嵌入©∏÷式開(kāi)發的(de)優缺點):
傳統開(kāi)發的(de)缺點:
軟硬件(jiàn)耦合度高(gāo)導緻軟件(jiàn)移植性差
軟件(jiàn)開(kāi)發人(rén)員(yuán)必須懂(dǒng)硬件(jiàn)✘≈λ✔
軟件(jiàn)功能(néng)性差
優點:簡單,開(kāi)發成本低(dī)
嵌入式開(kāi)發的(de)優點:
解決傳統開(kāi)發軟硬件(jiàn)耦合度導緻的(de)問(☆δ₽wèn)題
多(duō)任務機(jī)制(zhì)
提供了(le)豐富的(de)網絡協議(yì)§≤'棧
提供了(le)豐富的(de)開(kāi)源軟✘≥≥↔件(jiàn)和(hé)工(gōng)具
缺點:硬件(jiàn)成本高(gāo)
汽車(chē)嵌入式軟件(jiàn)方向
嵌入式軟件(jiàn)φ→€>部分(fēn)分(fēn)為(wèi)軟件₹₹ (jiàn)架構、軟件(jiàn)刷寫、底層軟件(↔β✘jiàn)、應用(yòng)層軟件(jiàn€≤β€)和(hé)故障診斷等幾個(gè)部分(fēn)。
軟件(jiàn)架構:
(1)Boot-loader;
(2)軟件(jiàn)平台層;
(3)策略應用(yòng)層。
Boot-loa←↓der作(zuò)為(wèi)一(yī)個(gè)單獨的(de)工(g€ōng)程開(kāi)發,生(shēng)♣">成一(yī)個(gè)獨立的(de)二進制(zhì)文(wén§↕Ω)件(jiàn)。
下(xià)圖π↑為(wèi)基于UDS協議(yì)的(de)Boot-loader架構:
下(xià)圖為↕±(wèi)軟件(jiàn)架構:
軟件(j£ε≤iàn)刷寫:控制(zhì)器(qì)複位後,将根據外(wài)部硬件(jiàn)配置↕♣₹選擇boot-to-flash模式,跳(tiào)轉到(dào)Boot-loa§☆der,執行(xíng)RAM自(zì)檢。若自(zì)" 檢成功并且檢測到(dào)有(yǒu)效的(deσ↕')應用(yòng)軟件(jiàn),将跳(tiào)轉到(dào)應用(yòng)<✘>軟件(jiàn),否則,進入boot-loader模式,等待刷新有(yǒ♦§•>u)效的(de)應用(yòng)軟件(jiàn)。下(xià)圖是(shì)Bo✔₹ot-loader軟件(jiàn)邏輯。
底層軟件(jiàn)架構
&nb&φ™$sp; 硬件(jiàn)依賴層(底層驅動):包括複雜(zá)驅動¶∑£©、看(kàn)門(mén)狗、基礎服務(系統調度所需定時(shí)器(qì)、中斷管©↕ασ理(lǐ)和(hé)一(yī)些(xiē)通(tōng)用(yòng)處理(lǐφ↓₩£)函數(shù),如(rú)PLL驅動、Flash驅動、內(n§© èi)存管理(lǐ)驅動、定時(shí)↕φ器(qì)驅動)、IO、CAN等其他(tā)驅動。✘↕
硬件(jiàn)抽←"象層:對(duì)IO口、PWM、CAN、SPI等功能(néng)模塊進行(xíng)抽象定∞✘₩₩義,使得(de)應用(yòng)程序實現(xiàn)不(bù)同底層平台的(de)移植。
軟件(jiàn)集成:軟件(jiàn)集成>↕←就(jiù)是(shì)将應用(yòng)層軟≥↑×件(jiàn)與底層軟件(jiàn)集成為(wèi)一(yī)個(gè)可¥←(kě)刷寫到(dào)硬件(jiàn)中的(d↕e)軟件(jiàn),軟件(jiàn)集成的(de)變量映射關系詳見(j &÷iàn)下(xià)圖:
底層會(hλεuì)根據硬線或者CAN線輸入,生(shēng)成一(yī)系列≠™γ™的(de)接口變量(函數(shù)),應用(yòng) ♦ 層直接調用(yòng)底層上(shàng)傳£"λ♦的(de)接口變量(函數(shù))。硬件(÷γjiàn)抽象層(HAL)将完成對(duì)底層信号到(dào)全局變量的(de↑φ>ε)映射。為(wèi)實現(xiàn)硬件(jiàn)更改及平台移植,底層軟件(jiàn)平台采用(πyòng)宏和(hé)腳本來(lái)完成全局變量和(hé)APIγ®(應用(yòng)程序接口,例如(rú)函數(shù))的(de)自(zì)動生(shē÷± ¥ng)成。
VCU整車(chē)控制(zhì)策略:
按功能(néng)模塊劃≠±分(fēn)有(yǒu)如(rú)下(xià)功能(néng)模塊:輸入信号處理(lǐ)、↕¥✘輸出信号處理(lǐ)、轉矩控制(zhì)、上(shàng)γ♣下(xià)電(diàn)控制(zhì)、檔位模式、系統能(néng)力估算(suàn)、α£故障診斷處理(lǐ)、附件(jiàn)管理(lǐ)等。₹γε
從(cóng)上(shàng) 圖可(kě)以看(kàn)出,整車(chē)控制(zhì)器(qì)分(fēn)為(wè↑>®i)三個(gè)層次:最上(shàng)層•←£為(wèi)應用(yòng)層,也(yě)稱為(wèi)控制(zhì)策略層>±∞★;中間(jiān)一(yī)層為(wèi)底層,也(yě)成為(wèi)基α£φ®礎平台軟件(jiàn)層,它的(de)作(zuò)Ω©€γ用(yòng)類似電(diàn)腦(nǎo)中的(de)操作(zuò)系統,最下(xià)面一(β yī)層為(wèi)硬件(jiàn)層,就(jiù)是(shì)電(diàΩγαΩn)腦(nǎo)中的(de)電(diàn)路(lù) λ ☆闆。
轉自(zì)汽車(chē)電(diàn)子(zǐ)與軟件(jià☆φn)