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

下載本文檔

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

文檔簡(jiǎn)介

1、第二章-嵌入式軟件開(kāi)發(fā)技術(shù)與方法,1,本章目錄,嵌入式軟件的應(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ò)程,2,嵌入式軟件的應(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) 可靠性 性能 成本,3,嵌入式軟件的成本,消費(fèi)產(chǎn)品的流行性和物美價(jià)廉的需要 大批量生產(chǎn)的需要 快速生產(chǎn)的需要,4,嵌入式軟件的可靠性,嵌入式軟件及其系統(tǒng)運(yùn)行時(shí)間可能是一天、

2、一月、一年等。 運(yùn)行中發(fā)生錯(cuò)誤,無(wú)法重啟。 良好的編程實(shí)踐能力&充分的測(cè)試,5,嵌入式軟件的性能指標(biāo),應(yīng)用程序新技術(shù) 多任務(wù)處理和調(diào)度 與各類(lèi)外部設(shè)備的交互方法、速度、成本、復(fù)雜度等 匯編語(yǔ)言的使用 由于數(shù)的可表示范圍,程序中關(guān)于越界的處理機(jī)制,6,嵌入式軟件設(shè)計(jì)與特點(diǎn),嵌入式軟件全生命周期開(kāi)發(fā)工具鏈 硬件與軟件的Co-Design: Verilog + C = ? Verilog HDL是應(yīng)用廣泛的硬件描述語(yǔ)言Verilog HDL可以用來(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ū)

3、動(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ì)算(Reconfigurable Computing)技術(shù) 可構(gòu)件化的嵌入式實(shí)時(shí)操作系統(tǒng)及其開(kāi)發(fā)環(huán)境,7,開(kāi)發(fā)技術(shù)、開(kāi)發(fā)方法設(shè)計(jì)流程自頂向下或自底向上設(shè)計(jì),自頂向下設(shè)計(jì),自底向上設(shè)計(jì),8,需求分析,作用 使用戶和設(shè)計(jì)者有效交流、溝通,明確設(shè)計(jì)目標(biāo) 設(shè)計(jì)者 設(shè)計(jì)什么?有哪些要求? 用戶 將得到的系統(tǒng)是什么樣的? 目標(biāo) 形成需求文檔 內(nèi)容 功能性需求 做什么? 輸入,輸出,功能, 非功能性需求 其他屬性 可靠性,速度,功耗, 成

4、本,大小,重量,設(shè)計(jì)時(shí)間, ,9,GPS移動(dòng)地圖系統(tǒng):示例,GPS移動(dòng)地圖是一種手持設(shè)備,該設(shè)備為用戶(如汽車(chē)駕駛員)顯示他當(dāng)前所處位置周?chē)牡貓D;顯示的地圖內(nèi)容應(yīng)隨用戶以及該設(shè)備所處位置的改變而改變。 該設(shè)備從GPS上得到其位置信息,移動(dòng)地圖看起來(lái)類(lèi)似紙張上的地圖。針對(duì)用戶的初步要求的系統(tǒng)需求表,10,評(píng)價(jià)標(biāo)準(zhǔn),正確性 無(wú)二義性 完整性 可檢驗(yàn)性 一致性 可修改性 可追蹤性,11,硬件 單片機(jī), X86, PowerPC, ARM, MIPS,板級(jí)支持程序,嵌入式操作系統(tǒng),應(yīng)用軟件,監(jiān)控程序,嵌入式計(jì)算機(jī)系統(tǒng)基本結(jié)構(gòu),12,嵌入式軟件子系統(tǒng),13,嵌入式系統(tǒng)的開(kāi)發(fā)流程,需求分析及規(guī)格說(shuō)明,選

5、擇主要芯片,確定編程語(yǔ)言,選擇開(kāi)發(fā)環(huán)境,RTOS的使用,選擇開(kāi)發(fā)方案,測(cè)試工具與其他輔助設(shè)備,14,開(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)境,15,選擇實(shí)時(shí)操作系統(tǒng)RTOS,對(duì)于復(fù)雜的嵌入式系統(tǒng)應(yīng)考慮使用RTOS RTOS的作用: 提供API(應(yīng)用編程接口):操作系統(tǒng)為應(yīng)用程序員提供可供調(diào)用的API,允許程序員致力于應(yīng)用程序的開(kāi)發(fā) 簡(jiǎn)化系統(tǒng)設(shè)計(jì):實(shí)時(shí)

6、嵌入式系統(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/OS Linux,16,嵌入式系統(tǒng)編程語(yǔ)言,Data from Japan ITRON survey for new embedded systems,17,實(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)核能夠兼容。,18,如何構(gòu)建嵌入式應(yīng)用程序-1,桌面應(yīng)用程序的構(gòu)建和加載運(yùn)行 工具 軟件組件 過(guò)

7、程:編譯器或匯編器產(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)行。,19,如何構(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)行。,20,嵌入式系統(tǒng)開(kāi)

8、發(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)的軟件部分。,21,交叉開(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)行,,22,什么是交叉編譯技術(shù)?,把在宿主機(jī)

9、上編寫(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)。,23,采用宿主機(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)境,其硬

10、件軟件是為特定應(yīng)用定制的,一般由處理器、裝入嵌入式系統(tǒng)的ROM映像的ROM內(nèi)存芯片、堆棧、中間變量、緩沖區(qū)、外設(shè)和接口組成。,24,嵌入式軟件開(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)行。,25,采用交叉調(diào)試方法的嵌入式軟件開(kāi)發(fā)存在一定的缺陷。,比如:依賴(lài)硬件支持,必須有

11、目標(biāo)機(jī)或評(píng)估板;普通編程人員不易熟悉;開(kāi)發(fā)成本高;可移植性、可擴(kuò)展性不強(qiáng);較難進(jìn)行團(tuán)隊(duì)開(kāi)發(fā);開(kāi)發(fā)周期較長(zhǎng)等。,26,采用非交叉調(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ā)的方法。,27,軟件仿真開(kāi)發(fā),軟件仿真開(kāi)發(fā)(Simulator)的基本思路是,在宿主機(jī)機(jī)器上安裝一種軟件仿真器,即仿真程序,利用該仿真程序的運(yùn)行,在宿主機(jī)上創(chuàng)建一個(gè)虛擬的目標(biāo)機(jī)環(huán)境,再將

12、應(yīng)用系統(tǒng)下載到這個(gè)虛擬目標(biāo)機(jī)上運(yùn)行、調(diào)試。,28,軟件仿真開(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)行。,29,實(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ù),定

13、義模塊間接口。 模塊設(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)證。,30,一個(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)。,31,實(shí)時(shí)軟件結(jié)構(gòu)圖,32,實(shí)現(xiàn)具體實(shí)時(shí)應(yīng)用業(yè)務(wù)邏輯一般采用分解任務(wù)的方法,將一個(gè)實(shí)時(shí)應(yīng)用功能劃分為多個(gè)并發(fā)執(zhí)行的任務(wù)。 分配任務(wù)不同的優(yōu)先級(jí),賦予任務(wù)自主延遲功能

14、,進(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é)束。,33,34,任務(wù)模型的框架結(jié)構(gòu)與構(gòu)建,35,任務(wù)分解,任務(wù)分解是如何將一個(gè)實(shí)時(shí)應(yīng)用業(yè)務(wù)邏輯,按照任務(wù)的管理和控制接口,劃分為若干獨(dú)立的任務(wù),并發(fā)運(yùn)行,實(shí)現(xiàn)應(yīng)用功能。 簡(jiǎn)單地分為設(shè)計(jì)階段、編碼階段。,36,任務(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)。 編碼階段的主要工作包括 完成每個(gè)任務(wù)的程序設(shè)計(jì)。將

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論