嵌入式軟件開(kāi)發(fā)技術(shù)與方法_第1頁(yè)
嵌入式軟件開(kāi)發(fā)技術(shù)與方法_第2頁(yè)
嵌入式軟件開(kāi)發(fā)技術(shù)與方法_第3頁(yè)
嵌入式軟件開(kāi)發(fā)技術(shù)與方法_第4頁(yè)
嵌入式軟件開(kāi)發(fā)技術(shù)與方法_第5頁(yè)
已閱讀5頁(yè),還剩33頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第二章-嵌入式軟件開(kāi)發(fā)技術(shù)與方法本章目錄嵌入式軟件的應(yīng)用與特點(diǎn)嵌入式軟件設(shè)計(jì)與特點(diǎn)開(kāi)發(fā)技術(shù)、開(kāi)發(fā)方法實(shí)時(shí)軟件分析設(shè)計(jì)方法開(kāi)發(fā)平臺(tái)、開(kāi)發(fā)過(guò)程嵌入式軟件的應(yīng)用與特點(diǎn)微處理器已嵌入到你見(jiàn)到的幾乎所有的電器中汽車(chē)、飛機(jī)、停車(chē)場(chǎng)、超市、手機(jī)嵌入式軟件的開(kāi)發(fā)需求日益激增多線程編程風(fēng)格&嵌入式軟件高可靠性嵌入式軟件中常使用的C語(yǔ)言功能和特性多數(shù)學(xué)生具有高級(jí)語(yǔ)言編寫(xiě)桌面應(yīng)用程序的經(jīng)驗(yàn)嵌入式應(yīng)用程序的特點(diǎn)可靠性性能成本嵌入式軟件的成本消費(fèi)產(chǎn)品的流行性和物美價(jià)廉的需要大批量生產(chǎn)的需要快速生產(chǎn)的需要嵌入式軟件的可靠性嵌入式軟件及其系統(tǒng)運(yùn)行時(shí)間可能是一天、一月、一年等。運(yùn)行中發(fā)生錯(cuò)誤,無(wú)法重啟。良好的編程實(shí)踐能力&充分的測(cè)試嵌入式軟件的性能指標(biāo)應(yīng)用程序新技術(shù)多任務(wù)處理和調(diào)度與各類(lèi)外部設(shè)備的交互方法、速度、成本、復(fù)雜度等匯編語(yǔ)言的使用由于數(shù)的可表示范圍,程序中關(guān)于越界的處理機(jī)制嵌入式軟件設(shè)計(jì)與特點(diǎn)嵌入式軟件全生命周期開(kāi)發(fā)工具鏈硬件與軟件的Co-Design:Verilog+C=?VerilogHDL是應(yīng)用廣泛的硬件描述語(yǔ)言.VerilogHDL可以用來(lái)進(jìn)行各種層次的邏輯設(shè)計(jì),也可以進(jìn)行數(shù)字系統(tǒng)的邏輯綜合,仿真驗(yàn)證和時(shí)序分析等。適合算法級(jí),寄存器級(jí),邏輯級(jí),開(kāi)關(guān)級(jí)、系統(tǒng)級(jí)和版圖級(jí)等各個(gè)層次的設(shè)計(jì)和描述.

驅(qū)動(dòng)程序的設(shè)計(jì)和生成技術(shù)(嵌入式軟件開(kāi)發(fā)中最令人頭疼的問(wèn)題)嵌入式軟件的可靠性問(wèn)題:正確性驗(yàn)證技術(shù)、測(cè)試技術(shù)、調(diào)試技術(shù)等(可靠性問(wèn)題是嵌入式軟件開(kāi)發(fā)的基本問(wèn)題)可重構(gòu)計(jì)算(ReconfigurableComputing)技術(shù)可構(gòu)件化的嵌入式實(shí)時(shí)操作系統(tǒng)及其開(kāi)發(fā)環(huán)境開(kāi)發(fā)技術(shù)、開(kāi)發(fā)方法——

設(shè)計(jì)流程—自頂向下或自底向上設(shè)計(jì)需求設(shè)計(jì)說(shuō)明體系結(jié)構(gòu)構(gòu)件設(shè)計(jì)系統(tǒng)集成自頂向下設(shè)計(jì)自底向上設(shè)計(jì)需求分析作用使用戶(hù)和設(shè)計(jì)者有效交流、溝通,明確設(shè)計(jì)目標(biāo)設(shè)計(jì)者-設(shè)計(jì)什么?有哪些要求?用戶(hù)-將得到的系統(tǒng)是什么樣的?目標(biāo)形成需求文檔內(nèi)容功能性需求做什么?輸入,輸出,功能,……非功能性需求其他屬性可靠性,速度,功耗,……成本,大小,重量,設(shè)計(jì)時(shí)間,……GPS移動(dòng)地圖系統(tǒng):示例項(xiàng)目說(shuō)明名稱(chēng)GPS移動(dòng)地圖目的為司機(jī)等用戶(hù)提供圖形狀的移動(dòng)地圖輸入一個(gè)電源開(kāi)關(guān)、兩個(gè)操作按鈕、GPS信號(hào)輸入輸出LCD顯示器,分辨率為400×600功能可接5種GPS接收器;三種用戶(hù)可選的地圖比例;總是顯示當(dāng)前經(jīng)緯度性能0.25秒內(nèi)即可更新一次屏幕,常溫下工作生產(chǎn)成本1500元(人民幣)功耗四節(jié)電池供電應(yīng)連續(xù)工作8小時(shí),功耗約100mW尺寸重量尺寸不大于20cm×30cm,重量不大于0.25公斤GPS移動(dòng)地圖是一種手持設(shè)備,該設(shè)備為用戶(hù)(如汽車(chē)駕駛員)顯示他當(dāng)前所處位置周?chē)牡貓D;顯示的地圖內(nèi)容應(yīng)隨用戶(hù)以及該設(shè)備所處位置的改變而改變。該設(shè)備從GPS上得到其位置信息,移動(dòng)地圖看起來(lái)類(lèi)似紙張上的地圖。針對(duì)用戶(hù)的初步要求的系統(tǒng)需求表評(píng)價(jià)標(biāo)準(zhǔn)正確性無(wú)二義性完整性可檢驗(yàn)性一致性可修改性可追蹤性

硬件單片機(jī),X86,PowerPC,ARM,MIPS,……板級(jí)支持程序嵌入式操作系統(tǒng)應(yīng)用軟件監(jiān)控程序嵌入式計(jì)算機(jī)系統(tǒng)基本結(jié)構(gòu)嵌入式軟件子系統(tǒng)嵌入式系統(tǒng)的開(kāi)發(fā)——流程需求分析及規(guī)格說(shuō)明選擇主要芯片確定編程語(yǔ)言選擇開(kāi)發(fā)環(huán)境RTOS的使用選擇開(kāi)發(fā)方案設(shè)計(jì)與調(diào)試測(cè)試與集成測(cè)試工具與其他輔助設(shè)備產(chǎn)品開(kāi)發(fā)平臺(tái)、開(kāi)發(fā)過(guò)程——開(kāi)發(fā)環(huán)境什么是嵌入式開(kāi)發(fā)環(huán)境:源程序編譯器目標(biāo)文件鏈接器可重定位程序定位器可執(zhí)行文件編譯器/匯編器/鏈接定位器調(diào)試器/仿真器主機(jī)(Host)及其工作平臺(tái)實(shí)時(shí)操作系統(tǒng)(可選)目標(biāo)評(píng)估系統(tǒng)(可選)測(cè)試工具(軟件/硬件/協(xié)議等,可選)其他輔助設(shè)備(可選)

典型的開(kāi)發(fā)環(huán)境選擇實(shí)時(shí)操作系統(tǒng)RTOS對(duì)于復(fù)雜的嵌入式系統(tǒng)應(yīng)考慮使用RTOSRTOS的作用:提供API(應(yīng)用編程接口):操作系統(tǒng)為應(yīng)用程序員提供可供調(diào)用的API,允許程序員致力于應(yīng)用程序的開(kāi)發(fā)

簡(jiǎn)化系統(tǒng)設(shè)計(jì):實(shí)時(shí)嵌入式系統(tǒng)比非實(shí)時(shí)系統(tǒng)更難設(shè)計(jì).使用實(shí)時(shí)多任務(wù)的內(nèi)核能簡(jiǎn)化系統(tǒng)設(shè)計(jì),可將復(fù)雜的應(yīng)用程序分為幾個(gè)不同的任務(wù),由內(nèi)核去對(duì)他們協(xié)調(diào)處理實(shí)驗(yàn)平臺(tái)如下支持ARM的實(shí)時(shí)操作系統(tǒng):uC/OSLinux嵌入式系統(tǒng)編程語(yǔ)言DatafromJapanITRONsurveyfornewembeddedsystems實(shí)時(shí)內(nèi)核的作用有效管理響應(yīng)時(shí)間管理并發(fā)線程的CPU時(shí)間管理并發(fā)線程間內(nèi)存的使用比如專(zhuān)門(mén)用于消費(fèi)市場(chǎng)的典型的小型嵌入式系統(tǒng)內(nèi)核標(biāo)準(zhǔn)化工作,確立標(biāo)準(zhǔn),使各種嵌入式內(nèi)核能夠兼容。如何構(gòu)建嵌入式應(yīng)用程序-1桌面應(yīng)用程序的構(gòu)建和加載運(yùn)行工具軟件組件過(guò)程:編譯器或匯編器產(chǎn)生一個(gè)或多個(gè)目標(biāo)文件,與動(dòng)態(tài)連接庫(kù)或運(yùn)行時(shí)庫(kù)進(jìn)行鏈接,生成一個(gè)可執(zhí)行程序,作為文件存放在磁盤(pán)上。運(yùn)行:通過(guò)操作系統(tǒng)的加載程序,將可執(zhí)行文件從磁盤(pán)加載到內(nèi)存,運(yùn)行。桌面系統(tǒng)可運(yùn)行許多程序,可快速容易地加載運(yùn)行。如何構(gòu)建嵌入式應(yīng)用程序-2嵌入式系統(tǒng)軟件工具軟件組件過(guò)程:編譯器或匯編器產(chǎn)生一個(gè)或多個(gè)目標(biāo)文件,與實(shí)時(shí)內(nèi)核或可充入函數(shù)庫(kù)進(jìn)行鏈接,經(jīng)重定位后,生成一個(gè)ROM映像文件,經(jīng)ROM燒錄器,存入ROM只讀存儲(chǔ)器中。運(yùn)行:通電后通過(guò)程序初始化,將可執(zhí)行映像從磁盤(pán)加載到RAM存儲(chǔ)器中,運(yùn)行。桌面系統(tǒng)可運(yùn)行許多程序,可快速容易地加載運(yùn)行。嵌入式系統(tǒng)開(kāi)發(fā)及其環(huán)境

嵌入式系統(tǒng)開(kāi)發(fā)需要宿主機(jī)(Host)和目標(biāo)機(jī)(Target)的支持。宿主機(jī)屬于嵌入式軟件的開(kāi)發(fā)平臺(tái),宿主機(jī)用于嵌入式軟件的設(shè)計(jì)、實(shí)現(xiàn)、調(diào)試和運(yùn)行等;目標(biāo)機(jī)屬于最終系統(tǒng)的運(yùn)行平臺(tái),目標(biāo)機(jī)作為可執(zhí)行程序的最終運(yùn)行平臺(tái),目標(biāo)機(jī)是嵌入式系統(tǒng)的硬件部分,運(yùn)行程序?qū)儆谇度胧较到y(tǒng)的軟件部分。交叉開(kāi)發(fā)環(huán)境是指用于嵌入式軟件開(kāi)發(fā)中使用的所有工具軟件的集合一般包括文本編輯器、交叉編譯器、交叉調(diào)試器、仿真器、下載器等工具。交叉開(kāi)發(fā)環(huán)境由宿主機(jī)和目標(biāo)機(jī)組成,宿主機(jī)與目標(biāo)機(jī)之間在物理連接的基礎(chǔ)上建立起邏輯連接。使得嵌入式軟件可在兩個(gè)平臺(tái)上得以運(yùn)行,什么是交叉編譯技術(shù)?把在宿主機(jī)上編寫(xiě)的高級(jí)語(yǔ)言程序,編譯成可以運(yùn)行在目標(biāo)機(jī)上的代碼,即在宿主機(jī)上能夠編譯生成另一種CPU(嵌入式微處理器)上的二進(jìn)制程序。采用交叉編譯技術(shù)的原因在于,嵌入式軟件必須在開(kāi)發(fā)過(guò)程中,進(jìn)行反復(fù)調(diào)試才能產(chǎn)生正確的運(yùn)行結(jié)果。此時(shí)才有必要將可執(zhí)行程序移植到目標(biāo)機(jī)上,移植技術(shù)關(guān)鍵在于在宿主機(jī)上可以生成目標(biāo)機(jī)上運(yùn)行的可執(zhí)行程序。具有交叉編譯技術(shù)的編譯程序,實(shí)現(xiàn)了這一目標(biāo)。采用宿主機(jī)和目標(biāo)機(jī)支持嵌入式系統(tǒng)開(kāi)發(fā)的原因宿主機(jī)是用于開(kāi)發(fā)嵌入式系統(tǒng)的計(jì)算機(jī),一般為PC機(jī)或者工作站,具備豐富的軟硬件資源,為嵌入式軟件的開(kāi)發(fā)提供方便易行的全過(guò)程支持。目標(biāo)機(jī)即所開(kāi)發(fā)的嵌入式系統(tǒng),是嵌入式軟件的運(yùn)行環(huán)境,其硬件軟件是為特定應(yīng)用定制的,一般由處理器、裝入嵌入式系統(tǒng)的ROM映像的ROM內(nèi)存芯片、堆棧、中間變量、緩沖區(qū)、外設(shè)和接口組成。嵌入式軟件開(kāi)發(fā)的實(shí)現(xiàn)階段可分為三個(gè)步驟:生成、調(diào)試和固化運(yùn)行。軟件生成主要是在宿主機(jī)上進(jìn)行,利用各種工具完成對(duì)應(yīng)用程序的編輯、交叉編譯和鏈接工作,生成可供調(diào)試或固化的目標(biāo)程序。軟件調(diào)試是通過(guò)交叉調(diào)試器完成軟件的調(diào)試工作。調(diào)試完成后還需進(jìn)行必要的測(cè)試工作。軟件固化運(yùn)行是先用一定的工具將應(yīng)用程序固化到目標(biāo)機(jī)上,然后啟動(dòng)目標(biāo)機(jī),在沒(méi)有任何工具干預(yù)的情況下應(yīng)用程序能自動(dòng)地啟動(dòng)運(yùn)行。采用交叉調(diào)試方法的嵌入式軟件開(kāi)發(fā)存在一定的缺陷。比如:依賴(lài)硬件支持,必須有目標(biāo)機(jī)或評(píng)估板;普通編程人員不易熟悉;開(kāi)發(fā)成本高;可移植性、可擴(kuò)展性不強(qiáng);較難進(jìn)行團(tuán)隊(duì)開(kāi)發(fā);開(kāi)發(fā)周期較長(zhǎng)等。采用非交叉調(diào)試方式的優(yōu)點(diǎn)即仿真開(kāi)發(fā)方式,這幾點(diǎn)理由在某種程度上,解決了交叉調(diào)試開(kāi)發(fā)方法的缺陷。嵌入式應(yīng)用的開(kāi)發(fā)經(jīng)常會(huì)遭遇這樣的問(wèn)題,由于經(jīng)費(fèi)和構(gòu)建條件所限,缺少目標(biāo)機(jī)環(huán)境、缺乏目標(biāo)機(jī)芯片等資源。而開(kāi)發(fā)過(guò)程又不可能停止,因此自然就提出了根據(jù)不同的應(yīng)用需要,利用較易構(gòu)建的仿真器件及仿真環(huán)境進(jìn)行開(kāi)發(fā)的方法。軟件仿真開(kāi)發(fā)軟件仿真開(kāi)發(fā)(Simulator)的基本思路是,在宿主機(jī)機(jī)器上安裝一種軟件仿真器,即仿真程序,利用該仿真程序的運(yùn)行,在宿主機(jī)上創(chuàng)建一個(gè)虛擬的目標(biāo)機(jī)環(huán)境,再將應(yīng)用系統(tǒng)下載到這個(gè)虛擬目標(biāo)機(jī)上運(yùn)行、調(diào)試。軟件仿真開(kāi)發(fā)環(huán)境嵌入式軟件開(kāi)發(fā)人員只需要了解所使用的編程語(yǔ)言、編譯器及其使用方法、操作系統(tǒng)系統(tǒng)API接口及系統(tǒng)函數(shù),就可以實(shí)施并完成嵌入式軟件的程序設(shè)計(jì),生成虛擬機(jī)環(huán)境下可運(yùn)行的可執(zhí)行程序。可以在宿主機(jī)環(huán)境下查看到運(yùn)行的結(jié)果,進(jìn)行運(yùn)行結(jié)果的分析,并反復(fù)進(jìn)行軟件的調(diào)試,最終生成一個(gè)認(rèn)可的可執(zhí)行軟件。待時(shí)機(jī)條件具備時(shí)安裝到目標(biāo)機(jī)上運(yùn)行。實(shí)時(shí)軟件分析設(shè)計(jì)方法

嵌入式實(shí)時(shí)軟件系統(tǒng)的生命周期分為以下幾個(gè)階段:需求分析與詳細(xì)說(shuō)明:對(duì)系統(tǒng)功能及性能的需求進(jìn)行描述。系統(tǒng)設(shè)計(jì):任務(wù)分解,定義任務(wù)間接口關(guān)系。任務(wù)設(shè)計(jì):按模塊方式設(shè)計(jì)每個(gè)任務(wù),定義模塊間接口。模塊設(shè)計(jì)與實(shí)現(xiàn):完成每個(gè)模塊的詳細(xì)設(shè)計(jì)、編碼和單元測(cè)試。任務(wù)與系統(tǒng)集成:任務(wù)單獨(dú)運(yùn)行及并發(fā)運(yùn)行調(diào)試,查看每個(gè)任務(wù)的運(yùn)行結(jié)果。系統(tǒng)測(cè)試:針對(duì)需求分析結(jié)果,對(duì)系統(tǒng)功能性能進(jìn)行測(cè)試和驗(yàn)證。一個(gè)基于實(shí)時(shí)操作系統(tǒng)內(nèi)核的實(shí)時(shí)軟件開(kāi)發(fā)模型下圖表示實(shí)時(shí)軟件設(shè)計(jì)編程和運(yùn)行層次結(jié)構(gòu)。該圖對(duì)實(shí)現(xiàn)實(shí)時(shí)應(yīng)用程序功能設(shè)計(jì)接口和運(yùn)行機(jī)制進(jìn)行層次劃分。指明基于操作系統(tǒng)內(nèi)核進(jìn)行應(yīng)用開(kāi)發(fā)的編程層次和接口。從而形成實(shí)時(shí)應(yīng)用程序內(nèi)部結(jié)構(gòu)。調(diào)用調(diào)度RTOS內(nèi)核任務(wù)調(diào)度管理具體業(yè)務(wù)邏輯功能硬件系統(tǒng)RTOS內(nèi)核系統(tǒng)函數(shù)接口實(shí)時(shí)軟件結(jié)構(gòu)圖實(shí)現(xiàn)具體實(shí)時(shí)應(yīng)用業(yè)務(wù)邏輯一般采用分解任務(wù)的方法將一個(gè)實(shí)時(shí)應(yīng)用功能劃分為多個(gè)并發(fā)執(zhí)行的任務(wù)。分配任務(wù)不同的優(yōu)先級(jí),賦予任務(wù)自主延遲功能,進(jìn)行必要的任務(wù)通信,設(shè)置關(guān)鍵任務(wù)的中斷響應(yīng)。明確任務(wù)的執(zhí)行條件、中斷條件和掛起條件等因素。每個(gè)任務(wù)是系統(tǒng)中一個(gè)獨(dú)立的執(zhí)行調(diào)度單位和資源分配單位。調(diào)用RTOS內(nèi)核系統(tǒng)函數(shù)接口,創(chuàng)建實(shí)時(shí)任務(wù);任務(wù)的運(yùn)行從接受內(nèi)核調(diào)度開(kāi)始,按照自身流程設(shè)計(jì)循環(huán)執(zhí)行。直至系統(tǒng)運(yùn)行結(jié)束。實(shí)時(shí)應(yīng)用軟件功能運(yùn)行界面實(shí)時(shí)操作系統(tǒng)內(nèi)核系統(tǒng)硬件平臺(tái)實(shí)時(shí)應(yīng)用任務(wù)2實(shí)時(shí)應(yīng)用任務(wù)1實(shí)時(shí)應(yīng)用任務(wù)n……任務(wù)模型的框架結(jié)構(gòu)與構(gòu)建

任務(wù)分解任務(wù)通信任務(wù)創(chuàng)建任務(wù)響應(yīng)任務(wù)與內(nèi)核連接任務(wù)分解任務(wù)分解是如何將一個(gè)實(shí)時(shí)應(yīng)用業(yè)務(wù)邏輯,按照任務(wù)的管理和控制接口,劃分為若干獨(dú)立的任務(wù),并發(fā)運(yùn)行,實(shí)現(xiàn)應(yīng)用功能。簡(jiǎn)單地分為設(shè)計(jì)階段、編碼階段。任務(wù)分解的設(shè)計(jì)階段、編碼階段設(shè)計(jì)階段的主要工作包括:根據(jù)應(yīng)用程序功能需求,將應(yīng)用程序功能劃分為若干并發(fā)任務(wù)。首先將需要并發(fā)執(zhí)行的子功能確立為任務(wù),任務(wù)優(yōu)先級(jí)按響應(yīng)的迫切程度確定。確定每個(gè)任務(wù)處理流程,確保完成任務(wù)功能。確定任務(wù)功能實(shí)現(xiàn)是否與其它任務(wù)的執(zhí)行有關(guān)聯(lián)。編碼階段的主要工作包括完成每

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論