嵌入式系統(tǒng)及應(yīng)用Chapter3嵌入式軟件系統(tǒng)基礎(chǔ)課件_第1頁
嵌入式系統(tǒng)及應(yīng)用Chapter3嵌入式軟件系統(tǒng)基礎(chǔ)課件_第2頁
嵌入式系統(tǒng)及應(yīng)用Chapter3嵌入式軟件系統(tǒng)基礎(chǔ)課件_第3頁
嵌入式系統(tǒng)及應(yīng)用Chapter3嵌入式軟件系統(tǒng)基礎(chǔ)課件_第4頁
嵌入式系統(tǒng)及應(yīng)用Chapter3嵌入式軟件系統(tǒng)基礎(chǔ)課件_第5頁
已閱讀5頁,還剩95頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、嵌入式系統(tǒng)及應(yīng)用嵌入式系統(tǒng)及應(yīng)用第三章嵌入式軟件系統(tǒng)基礎(chǔ)第三章嵌入式軟件系統(tǒng)基礎(chǔ)主要內(nèi)容嵌入式軟件系統(tǒng)概述嵌入式操作系統(tǒng)嵌入式軟件開發(fā)工具主要內(nèi)容嵌入式軟件系統(tǒng)概述第一節(jié)嵌入式軟件系統(tǒng)概述軟件系統(tǒng)嵌入式軟件系統(tǒng)的分類嵌入式軟件系統(tǒng)的體系結(jié)構(gòu)嵌入式軟件運(yùn)行流程第一節(jié)嵌入式軟件系統(tǒng)概述軟件系統(tǒng)軟件系統(tǒng)軟件(software)是計(jì)算機(jī)系統(tǒng)中與硬件(hardware)相互依存的另一部分,它包括程序(program)、相關(guān)數(shù)據(jù)(data)及其說明文檔(document)。 其中:程序是按照事先設(shè)計(jì)的功能和性能要求執(zhí)行的指令序列;數(shù)據(jù)是程序能正常操縱信息的數(shù)據(jù)結(jié)構(gòu);文檔是與程序開發(fā)維護(hù)和使用有關(guān)的各種圖文

2、資料。軟件系統(tǒng)軟件(software)是計(jì)算機(jī)系統(tǒng)中與硬件(har軟件系統(tǒng)軟件是一種邏輯實(shí)體,具有抽象性。 這個(gè)特點(diǎn)使它與其它工程對(duì)象有著明顯的差異。人們可以把它記錄在紙上、內(nèi)存、和磁盤、光盤上,但卻無法看到軟件本身的形態(tài),必須通過觀察、分析、思考、判斷,才能了解它的功能、性能等特性。 軟件產(chǎn)品的特性軟件沒有明顯的制造過程。 一旦研制開發(fā)成功,就可以大量拷貝同一內(nèi)容的副本。所以對(duì)軟件的質(zhì)量控制,必須著重在軟件開發(fā)方面下工夫。 軟件在使用過程中,沒有磨損、老化的問題。 軟件在生存周期后期不會(huì)因?yàn)槟p而老化,但會(huì)為了適應(yīng)硬件、環(huán)境以及需求的變化而進(jìn)行修改,而這些修改有不可避免的引入錯(cuò)誤,導(dǎo)致軟件失

3、效率升高,從而使的軟件退化。當(dāng)修改的成本變得難以接受時(shí),軟件就被拋棄。軟件對(duì)硬件和環(huán)境有著不同程度的依賴性。這導(dǎo)致了軟件移植的問題。軟件的開發(fā)至今尚未完全擺脫手工作坊式的開發(fā)方式,生產(chǎn)效率低。軟件是復(fù)雜的,而且以后會(huì)更加復(fù)雜。 軟件是人類有史以來生產(chǎn)的復(fù)雜度最高的工業(yè)產(chǎn)品。軟件涉及人類社會(huì)的各行各業(yè)、方方面面,軟件開發(fā)常常涉及其它領(lǐng)域的專門知識(shí),這對(duì)軟件工程師提出了很高的要求。 軟件的成本相當(dāng)昂貴。 軟件開發(fā)需要投入大量、高強(qiáng)度的腦力勞動(dòng),成本非常高,風(fēng)險(xiǎn)也大?,F(xiàn)在軟件的開銷已大大超過了硬件的開銷。 軟件工作牽涉到很多社會(huì)因素。許多軟件的開發(fā)和運(yùn)行涉及機(jī)構(gòu)、體制和管理方式等問題,還會(huì)涉及到人們

4、的觀念和心理。這些人的因素,常常成為軟件開發(fā)的困難所在,直接影響到項(xiàng)目的成敗。 軟件系統(tǒng)軟件是一種邏輯實(shí)體,具有抽象性。軟件產(chǎn)品的特性軟件沒嵌入式軟件系統(tǒng)的分類嵌入式軟件系統(tǒng)軟件支撐軟件應(yīng)用軟件控制、管理計(jì)算機(jī)系統(tǒng)的資源嵌入式操作系統(tǒng)嵌入式中間件(CORBA、 Java)等等輔助軟件開發(fā)的工具系統(tǒng)分析設(shè)計(jì)工具仿真開發(fā)工具交叉開發(fā)工具測(cè)試工具配置管理工具維護(hù)工具等面向應(yīng)用領(lǐng)域手機(jī)軟件路由器軟件交換機(jī)軟件飛控軟件等嵌入式軟件系統(tǒng)的分類嵌入式軟件系統(tǒng)軟件支撐軟件應(yīng)用軟件控制、嵌入式軟件系統(tǒng)的分類從運(yùn)行平臺(tái)來分,嵌入式軟件可以分為運(yùn)行在開發(fā)平臺(tái)上的軟件:設(shè)計(jì)、開發(fā)、測(cè)試工具等。運(yùn)行在嵌入式系統(tǒng)上的軟件

5、:嵌入式操作系統(tǒng)、應(yīng)用程序、驅(qū)動(dòng)程序及部分開發(fā)工具。嵌入式軟件系統(tǒng)的分類從運(yùn)行平臺(tái)來分,嵌入式軟件可以分為嵌入式軟件系統(tǒng)的體系結(jié)構(gòu)硬件應(yīng)用層驅(qū)動(dòng)層操作系統(tǒng)層中間件層板級(jí)初始化FLASH驅(qū)動(dòng)RTC/定時(shí)器驅(qū)動(dòng)串口 驅(qū)動(dòng)以太網(wǎng)驅(qū)動(dòng)LCD 驅(qū)動(dòng)鍵盤驅(qū)動(dòng)其他驅(qū)動(dòng)內(nèi)核TCP/IP網(wǎng)絡(luò)系統(tǒng)文件系統(tǒng)嵌入式GUI電源管理嵌入式CORBA嵌入式JAVA嵌入式DCOM面向應(yīng)用領(lǐng)域的中間件應(yīng)用任務(wù)1應(yīng)用任務(wù)2應(yīng)用任務(wù)n嵌入式軟件系統(tǒng)的體系結(jié)構(gòu)硬件應(yīng)用層驅(qū)動(dòng)層操作系統(tǒng)層中間件層板嵌入式軟件系統(tǒng)的體系結(jié)構(gòu)驅(qū)動(dòng)層 驅(qū)動(dòng)層是直接與硬件打交道的一層,它對(duì)操作系統(tǒng)和應(yīng)用提供所需的驅(qū)動(dòng)的支持。該層主要包括三種類型的程序。板級(jí)初始

6、化程序 這些程序在嵌入式系統(tǒng)上電后初始化系統(tǒng)的硬件環(huán)境,包括嵌入式微處理器、存儲(chǔ)器、中斷控制器、DMA、定時(shí)器等的初始化。 與系統(tǒng)軟件相關(guān)的驅(qū)動(dòng)這類驅(qū)動(dòng)是操作系統(tǒng)和中間件等系統(tǒng)軟件所需的驅(qū)動(dòng)程序,它們的開發(fā)要按照系統(tǒng)軟件的要求進(jìn)行。目前操作系統(tǒng)內(nèi)核所需的硬件支持一般都已集成在嵌入式微處理器中了,因此操作系統(tǒng)廠商提供的內(nèi)核驅(qū)動(dòng)一般不用修改。與應(yīng)用軟件相關(guān)的驅(qū)動(dòng) 與應(yīng)用軟件相關(guān)的驅(qū)動(dòng)不一定需要與操作系統(tǒng)連接,這些驅(qū)動(dòng)的設(shè)計(jì)和開發(fā)由應(yīng)用決定。嵌入式軟件系統(tǒng)的體系結(jié)構(gòu)驅(qū)動(dòng)層板級(jí)初始化程序與系統(tǒng)軟件相關(guān)的嵌入式軟件系統(tǒng)的體系結(jié)構(gòu)操作系統(tǒng)層操作系統(tǒng)層包括嵌入式內(nèi)核、嵌入式TCP/IP網(wǎng)絡(luò)系統(tǒng)、嵌入式文件系

7、統(tǒng)、嵌入式GUI系統(tǒng)和電源管理等部分。其中嵌入式內(nèi)核是基礎(chǔ)和必備的部分,其他部分要根據(jù)嵌入式系統(tǒng)的需要來確定。嵌入式軟件系統(tǒng)的體系結(jié)構(gòu)操作系統(tǒng)層嵌入式軟件系統(tǒng)的體系結(jié)構(gòu)中間件層 目前在一些復(fù)雜的嵌入式系統(tǒng)中也開始采用中間件技術(shù),主要包括嵌入式CORBA、嵌入式Java、嵌入式DCOM和面向應(yīng)用領(lǐng)域的中間件軟件。如基于嵌入式CORBA的應(yīng)用于軟件無線電臺(tái)的應(yīng)用中間件SCA(Software Core Architecture)等。嵌入式軟件系統(tǒng)的體系結(jié)構(gòu)中間件層 嵌入式軟件系統(tǒng)的體系結(jié)構(gòu)應(yīng)用層 應(yīng)用層軟件主要由多個(gè)相對(duì)獨(dú)立的應(yīng)用任務(wù)組成每個(gè)應(yīng)用任務(wù)完成特定的工作,如I/O任務(wù)、計(jì)算的任務(wù)、通信任

8、務(wù)等,由操作系統(tǒng)調(diào)度各個(gè)任務(wù)的運(yùn)行。 嵌入式軟件系統(tǒng)的體系結(jié)構(gòu)應(yīng)用層 嵌入式軟件運(yùn)行流程上電復(fù)位系統(tǒng)升級(jí)引導(dǎo)/升級(jí)系統(tǒng)系統(tǒng)初始化應(yīng)用初始化多任務(wù)應(yīng)用板級(jí)初始化遠(yuǎn)程升級(jí)本地升級(jí)基于多任務(wù)操作系統(tǒng)的嵌入式軟件的主要運(yùn)行流程該運(yùn)行流程主要分為5個(gè)階段嵌入式軟件運(yùn)行流程上電復(fù)位系統(tǒng)升級(jí)引導(dǎo)/升級(jí)系統(tǒng)系統(tǒng)初始化應(yīng)嵌入式軟件運(yùn)行流程上電復(fù)位、板級(jí)初始化階段嵌入式系統(tǒng)上電復(fù)位后完成板級(jí)初始化工作。板級(jí)初始化程序具有完全的硬件特性,一般采用匯編語言實(shí)現(xiàn)。不同的嵌入式系統(tǒng),板級(jí)初始化時(shí)要完成的工作具有一定的特殊性,但以下工作一般是必須完成的:CPU中堆棧指針寄存器的初始化。BSS段(Block Storage

9、Space表示未被初始化的數(shù)據(jù))的初始化。CPU芯片級(jí)的初始化:中斷控制器、內(nèi)存等的初始化。返回嵌入式軟件運(yùn)行流程上電復(fù)位、板級(jí)初始化階段返回嵌入式軟件運(yùn)行流程系統(tǒng)引導(dǎo)/升級(jí)階段根據(jù)需要分別進(jìn)入系統(tǒng)軟件引導(dǎo)階段或系統(tǒng)升級(jí)階段。軟件可通過測(cè)試通信端口數(shù)據(jù)或判斷特定開關(guān)的方式分別進(jìn)入不同階段。 嵌入式軟件運(yùn)行流程系統(tǒng)引導(dǎo)/升級(jí)階段嵌入式軟件運(yùn)行流程系統(tǒng)引導(dǎo)階段系統(tǒng)引導(dǎo)有幾種情況:將系統(tǒng)軟件從NOR Flash中讀取出來加載到RAM中運(yùn)行:這種方式可以解決成本及Flash速度比RAM慢的問題。軟件可壓縮存儲(chǔ)在Flash中。不需將軟件引導(dǎo)到RAM中而是讓其直接在NorFlash上運(yùn)行,進(jìn)入系統(tǒng)初始化階

10、段。將軟件從外存(如NandFlash、CF卡、MMC等)中讀取出來加載到RAM中運(yùn)行:這種方式的成本更低。嵌入式軟件運(yùn)行流程系統(tǒng)引導(dǎo)階段嵌入式軟件運(yùn)行流程系統(tǒng)升級(jí)階段進(jìn)入系統(tǒng)升級(jí)階段后系統(tǒng)可通過網(wǎng)絡(luò)進(jìn)行遠(yuǎn)程升級(jí)或通過串口進(jìn)行本地升級(jí)。遠(yuǎn)程升級(jí)一般支持TFTP、FTP、HTTP等方式。本地升級(jí)可通過Console口使用超級(jí)終端或特定的升級(jí)軟件進(jìn)行。返回嵌入式軟件運(yùn)行流程系統(tǒng)升級(jí)階段返回嵌入式軟件運(yùn)行流程系統(tǒng)初始化階段 在該階段進(jìn)行操作系統(tǒng)等系統(tǒng)軟件各功能部分必需的初始化工作,如根據(jù)系統(tǒng)配置初始化數(shù)據(jù)空間、初始化系統(tǒng)所需的接口和外設(shè)等。系統(tǒng)初始化階段需要按特定順序進(jìn)行,如首先完成內(nèi)核的初始化,然

11、后完成網(wǎng)絡(luò)、文件系統(tǒng)等的初始化,最后完成中間件等的初始化工作。 返回嵌入式軟件運(yùn)行流程系統(tǒng)初始化階段 返回嵌入式軟件運(yùn)行流程應(yīng)用初始化階段在該階段進(jìn)行應(yīng)用任務(wù)的創(chuàng)建,信號(hào)量、消息隊(duì)列的創(chuàng)建和與應(yīng)用相關(guān)的其它初始化工作。多任務(wù)應(yīng)用運(yùn)行階段各種初始化工作完成后,系統(tǒng)進(jìn)入多任務(wù)狀態(tài),操作系統(tǒng)按照已確定的算法進(jìn)行任務(wù)的調(diào)度,各應(yīng)用任務(wù)分別完成特定的功能。 嵌入式軟件運(yùn)行流程應(yīng)用初始化階段第二節(jié)嵌入式操作系統(tǒng)概述嵌入式操作系統(tǒng)的演變嵌入式操作系統(tǒng)分類嵌入式操作系統(tǒng)體系結(jié)構(gòu)嵌入式操作系統(tǒng)的組成第二節(jié)嵌入式操作系統(tǒng)概述概述嵌入式操作系統(tǒng)可以統(tǒng)稱為應(yīng)用在嵌入式系統(tǒng)的操作系統(tǒng),它具有一般操作系統(tǒng)的功能,同時(shí)具有

12、嵌入式軟件的特點(diǎn),主要有:可固化 可配置、可剪裁 獨(dú)立的板級(jí)支持包,可修改 不同的CPU有不同的版本 應(yīng)用的開發(fā)需要有集成的交叉開發(fā)工具概述嵌入式操作系統(tǒng)可以統(tǒng)稱為應(yīng)用在嵌入式系統(tǒng)的操作系統(tǒng),它概述近十年來,嵌入式操作系統(tǒng)得到飛速的發(fā)展從支持8位微處理器到16位、32位甚至64位微處理器;從支持單一品種的微處理器芯片到支持多品種微處理器芯片;從只有內(nèi)核到除了內(nèi)核外還提供其他功能模塊,如文件系統(tǒng),TCP/IP網(wǎng)絡(luò)系統(tǒng),窗口圖形系統(tǒng)等。隨著嵌入式系統(tǒng)應(yīng)用領(lǐng)域的擴(kuò)展,目前嵌入式操作系統(tǒng)的市場(chǎng)在不斷細(xì)分,出現(xiàn)了針對(duì)不同領(lǐng)域的產(chǎn)品,這些產(chǎn)品按領(lǐng)域的要求和標(biāo)準(zhǔn)提供特定的功能。概述近十年來,嵌入式操作系統(tǒng)得

13、到飛速的發(fā)展嵌入式操作系統(tǒng)的演變*Percent of total software supplied by RTOS vendor in a typical embedded device10%*Kernel30%*KernelNetworkingFile System75%*KernelNetworkingFile SystemMultiprocessingMemory ManagementNetworking UtilityWindows APIApplicationApplicationApplicationApplication90%*KernelNetworkingFile Sys

14、temMultiprocessingFault ToleranceDistributed ObjectsAdvanced NetworkingAdvanced InterconnectJavaBrowser / GUI嵌入式操作系統(tǒng)的演變*Percent of total so嵌入式操作系統(tǒng)的演變?cè)谇度胧较到y(tǒng)的發(fā)展過程中,從操作系統(tǒng)的角度來看,大致經(jīng)歷了以下幾個(gè)階段:無操作系統(tǒng)階段簡單操作系統(tǒng)階段實(shí)時(shí)操作系統(tǒng)階段面向Internet的階段嵌入式操作系統(tǒng)的演變?cè)谇度胧较到y(tǒng)的發(fā)展過程中,從操作系統(tǒng)的嵌入式操作系統(tǒng)的演變無操作系統(tǒng)階段嵌入式系統(tǒng)最初的應(yīng)用是基于單片機(jī)的,大多以可編程控制器的形式出現(xiàn),

15、具有監(jiān)測(cè)、伺服、設(shè)備指示等功能,通常應(yīng)用于各類工業(yè)控制和飛機(jī)、導(dǎo)彈等武器裝備中,一般沒有操作系統(tǒng)的支持,只能通過匯編語言對(duì)系統(tǒng)進(jìn)行直接控制,運(yùn)行結(jié)束后再清除內(nèi)存。這些裝置雖然已經(jīng)初步具備了嵌入式的應(yīng)用特點(diǎn),但僅僅只是使用8位的CPU芯片來執(zhí)行一些單線程的程序,因此嚴(yán)格地說還談不上系統(tǒng)的概念。這一階段嵌入式系統(tǒng)的主要特點(diǎn)是:系統(tǒng)結(jié)構(gòu)和功能相對(duì)單一,處理效率較低,存儲(chǔ)容量較小,幾乎沒有用戶接口。由于這種嵌入式系統(tǒng)使用簡便、價(jià)格低廉,因而曾經(jīng)在工業(yè)控制領(lǐng)域中得到了非常廣泛的應(yīng)用,但卻無法滿足現(xiàn)今對(duì)執(zhí)行效率、存儲(chǔ)容量都有較高要求的信息家電等場(chǎng)合的需要。嵌入式操作系統(tǒng)的演變無操作系統(tǒng)階段嵌入式操作系統(tǒng)的

16、演變簡單操作系統(tǒng)階段20世紀(jì)80年代,隨著微電子工藝水平的提高,IC制造商開始把嵌入式應(yīng)用中所需要的微處理器、I/O接口、串行接口以及RAM、ROM等部件統(tǒng)統(tǒng)集成到一片VLSI中,制造出面向I/O設(shè)計(jì)的微控制器,并一舉成為嵌入式系統(tǒng)領(lǐng)域中異軍突起的新秀。與此同時(shí),嵌入式系統(tǒng)的程序員也開始基于一些簡單的操作系統(tǒng)開發(fā)嵌入式應(yīng)用軟件,大大縮短了開發(fā)周期、提高了開發(fā)效率。這一階段嵌入式系統(tǒng)的主要特點(diǎn)是:出現(xiàn)了大量高可靠、低功耗的嵌入式CPU(如Power PC等),各種簡單的嵌入式操作系統(tǒng)開始出現(xiàn)并得到迅速發(fā)展。此時(shí)的嵌入式操作系統(tǒng)雖然還比較簡單,但已經(jīng)初步具有了一定的兼容性和擴(kuò)展性,內(nèi)核精巧且效率高

17、,主要用來控制系統(tǒng)負(fù)載以及監(jiān)控應(yīng)用程序的運(yùn)行。嵌入式操作系統(tǒng)的演變簡單操作系統(tǒng)階段嵌入式操作系統(tǒng)的演變實(shí)時(shí)操作系統(tǒng)階段20世紀(jì)90年代,在分布控制、柔性制造、數(shù)字化通信和信息家電等巨大需求的牽引下,嵌入式系統(tǒng)進(jìn)一步飛速發(fā)展,而面向?qū)崟r(shí)信號(hào)處理算法的DSP產(chǎn)品則向著高速度、高精度、低功耗的方向發(fā)展。隨著硬件實(shí)時(shí)性要求的提高,嵌入式系統(tǒng)的軟件規(guī)模也不斷擴(kuò)大,逐漸形成了實(shí)時(shí)多任務(wù)操作系統(tǒng)(RTOS),并開始成為嵌入式系統(tǒng)的主流。這一階段嵌入式系統(tǒng)的主要特點(diǎn)是:操作系統(tǒng)的實(shí)時(shí)性得到了很大改善,已經(jīng)能夠運(yùn)行在各種不同類型的微處理器上,具有高度的模塊化和擴(kuò)展性。此時(shí)的嵌入式操作系統(tǒng)已經(jīng)具備了文件和目錄管理

18、、設(shè)備管理、多任務(wù)、網(wǎng)絡(luò)、圖形用戶界面(GUI)等功能,并提供了大量的應(yīng)用程序接口(API),從而使得應(yīng)用軟件的開發(fā)變得更加簡單。嵌入式操作系統(tǒng)的演變實(shí)時(shí)操作系統(tǒng)階段嵌入式操作系統(tǒng)的演變面向Internet的階段21世紀(jì)無疑將是一個(gè)網(wǎng)絡(luò)的時(shí)代,將嵌入式系統(tǒng)應(yīng)用到各種網(wǎng)絡(luò)環(huán)境中去的呼聲自然也越來越高。目前大多數(shù)嵌入式系統(tǒng)還孤立于Internet之外,隨著Internet的進(jìn)一步發(fā)展,以及Internet技術(shù)與信息家電、工業(yè)控制技術(shù)等的結(jié)合日益緊密,嵌入式設(shè)備與Internet的結(jié)合才是嵌入式技術(shù)的真正未來。信息時(shí)代和數(shù)字時(shí)代的到來,為嵌入式系統(tǒng)的發(fā)展帶來了巨大的機(jī)遇,同時(shí)也對(duì)嵌入式系統(tǒng)廠商提出了

19、新的挑戰(zhàn)。嵌入式操作系統(tǒng)的演變面向Internet的階段嵌入式操作系統(tǒng)的演變目前,嵌入式技術(shù)與Internet技術(shù)的結(jié)合正在推動(dòng)著嵌入式技術(shù)的飛速發(fā)展,嵌入式系統(tǒng)的研究和應(yīng)用產(chǎn)生了如下新的顯著變化:新的微處理器層出不窮,嵌入式操作系統(tǒng)自身結(jié)構(gòu)的設(shè)計(jì)更加便于移植,能夠在短時(shí)間內(nèi)支持更多的微處理器。 嵌入式系統(tǒng)的開發(fā)成了一項(xiàng)系統(tǒng)工程,開發(fā)廠商不僅要提供嵌入式操作系統(tǒng)本身,同時(shí)還要提供強(qiáng)大的軟件開發(fā)支持包。 通用計(jì)算機(jī)上使用的新技術(shù)、新觀念開始逐步移植到嵌入式系統(tǒng)中,如嵌入式數(shù)據(jù)庫、移動(dòng)代理、實(shí)時(shí)CORBA、Java等,嵌入式軟件平臺(tái)得到進(jìn)一步完善。 嵌入式操作系統(tǒng)的演變目前,嵌入式技術(shù)與Inter

20、net技術(shù)嵌入式操作系統(tǒng)的演變各類嵌入式Linux操作系統(tǒng)迅速發(fā)展,由于具有源代碼開放、系統(tǒng)內(nèi)核小、執(zhí)行效率高、網(wǎng)絡(luò)結(jié)構(gòu)完整等特點(diǎn),很適合信息家電等嵌入式系統(tǒng)的需要,目前已經(jīng)形成了能與Windows CE、Symbian等嵌入式操作系統(tǒng)進(jìn)行有力競(jìng)爭的局面。 網(wǎng)絡(luò)化、信息化的要求隨著Internet技術(shù)的成熟和帶寬的提高而日益突出,以往功能單一的設(shè)備如電話、手機(jī)、冰箱、微波爐等功能不再單一,結(jié)構(gòu)變得更加復(fù)雜,網(wǎng)絡(luò)互聯(lián)成為必然趨勢(shì)。 精簡系統(tǒng)內(nèi)核,優(yōu)化關(guān)鍵算法,降低功耗和軟硬件成本。 提供更加友好的多媒體人機(jī)交互界面。嵌入式操作系統(tǒng)的演變各類嵌入式Linux操作系統(tǒng)迅速發(fā)展,由嵌入式操作系統(tǒng)分類從

21、應(yīng)用領(lǐng)域來分面向信息家電的嵌入式操作系統(tǒng)面向智能手機(jī)的嵌入式操作系統(tǒng),如SymbianOS、MS Mobile OS、PalmOS、Embedded Linux等面向汽車電子的嵌入式操作系統(tǒng) 面向工業(yè)控制的嵌入式操作系統(tǒng) .從實(shí)時(shí)性的角度來分嵌入式實(shí)時(shí)操作系統(tǒng):具有強(qiáng)實(shí)時(shí)特點(diǎn),如VxWorks、QNX、Nuclear、OSE、DeltaOS、各種ITRON OS等。非實(shí)時(shí)嵌入式操作系統(tǒng):一般只具有弱實(shí)時(shí)特點(diǎn),如WinCE、版本眾多的嵌入式Linux、PalmOS等。從嵌入式系統(tǒng)的商業(yè)模式來分類商用型:功能穩(wěn)定、可靠,有完善的技術(shù)支持和售后服務(wù),開發(fā)費(fèi)用+版稅。開源型:開放源碼,只收服務(wù)費(fèi),沒有

22、版稅。 如Embedded linux,RTEMS,eCOS。嵌入式操作系統(tǒng)分類從應(yīng)用領(lǐng)域來分從實(shí)時(shí)性的角度來分從嵌入式系嵌入式操作系統(tǒng)體系結(jié)構(gòu)體系結(jié)構(gòu)是操作系統(tǒng)的基礎(chǔ),它定義了硬件與軟件的界限、內(nèi)核與操作系統(tǒng)其它組件(文件、網(wǎng)絡(luò)、GUI等)的組織關(guān)系、系統(tǒng)與應(yīng)用的接口。體系結(jié)構(gòu)是確保系統(tǒng)的性能、可靠性、靈活性、可移植性、可擴(kuò)展性的關(guān)鍵,就好比房子的梁架,只有梁架搭牢固了才提得上房子的質(zhì)量,再做一些錦上添花的工作才有意義。目前操作系統(tǒng)的體系結(jié)構(gòu)可分為:單塊結(jié)構(gòu)、層次結(jié)構(gòu)和客戶/服務(wù)器(微內(nèi)核)結(jié)構(gòu)。嵌入式操作系統(tǒng)體系結(jié)構(gòu)體系結(jié)構(gòu)是操作系統(tǒng)的基礎(chǔ),它定義了硬件嵌入式操作系統(tǒng)體系結(jié)構(gòu)硬 件系統(tǒng)服務(wù)

23、用戶態(tài)核心態(tài)應(yīng)用程序應(yīng)用程序單塊結(jié)構(gòu)嵌入式操作系統(tǒng)體系結(jié)構(gòu)硬 件系統(tǒng)服務(wù)用戶態(tài)核心態(tài)應(yīng)用程序應(yīng)嵌入式操作系統(tǒng)體系結(jié)構(gòu)硬件基本進(jìn)程管理虛存管理I/O和設(shè)備管理進(jìn)程間通信文件系統(tǒng)用戶用戶模式內(nèi)核模式層次結(jié)構(gòu)嵌入式操作系統(tǒng)體系結(jié)構(gòu)硬件基本進(jìn)程管理虛存管理I/O和設(shè)備管嵌入式操作系統(tǒng)體系結(jié)構(gòu)硬 件進(jìn)程服務(wù)用戶態(tài)核心態(tài)應(yīng)用程序客戶內(nèi)存服務(wù)微內(nèi)核文件服務(wù)網(wǎng)絡(luò)服務(wù)顯示服務(wù)發(fā)送應(yīng)答客戶/服務(wù)器結(jié)構(gòu)(微內(nèi)核結(jié)構(gòu))嵌入式操作系統(tǒng)體系結(jié)構(gòu)硬 件進(jìn)程服務(wù)用戶態(tài)核心態(tài)應(yīng)用程序客嵌入式操作系統(tǒng)體系結(jié)構(gòu)微內(nèi)核結(jié)構(gòu)的優(yōu)點(diǎn)提供一致的接口可擴(kuò)展性:擴(kuò)展對(duì)新的軟件/硬件支持靈活性:可伸縮可移植性分布式系統(tǒng)支持適用于面向?qū)ο蟛僮飨到y(tǒng)

24、環(huán)境性能問題:通過微內(nèi)核構(gòu)造和發(fā)送信息、接受應(yīng)答并解碼所花費(fèi)的時(shí)間比進(jìn)行一次系統(tǒng)調(diào)用的時(shí)間多很大程度取決于微內(nèi)核的大小和功能嵌入式操作系統(tǒng)體系結(jié)構(gòu)微內(nèi)核結(jié)構(gòu)的優(yōu)點(diǎn)嵌入式操作系統(tǒng)體系結(jié)構(gòu)目前嵌入式操作系統(tǒng)主要采用分層和模塊化相結(jié)合的結(jié)構(gòu)或微內(nèi)核結(jié)構(gòu)。分層和模塊化結(jié)合的結(jié)構(gòu)將操作系統(tǒng)分為硬件無關(guān)層、硬件抽象層和硬件相關(guān)層,每層再劃分功能模塊。這樣移植工作便集中在硬件相關(guān)層,與其余兩層無關(guān),功能的伸縮則集中在模塊上,從而確保其具有良好的可移植性和可伸縮性。而采用微內(nèi)核結(jié)構(gòu),則可利用其可伸縮的特點(diǎn)適應(yīng)硬件的發(fā)展,便于擴(kuò)展。 嵌入式操作系統(tǒng)體系結(jié)構(gòu)目前嵌入式操作系統(tǒng)主要采用分層和模塊化嵌入式操作系統(tǒng)體系

25、結(jié)構(gòu)應(yīng)用程序任務(wù)管理硬 件用戶擴(kuò)展處理調(diào)度管理硬件抽象層應(yīng)用編程接口內(nèi)存管理中斷管理時(shí)鐘/定時(shí)器管理I/O管理出錯(cuò)處理同步、通信管理(消息隊(duì)列,信號(hào)量,事件,異步信號(hào)))DeltaCORE的體系結(jié)構(gòu):層次模塊結(jié)構(gòu)分層次模塊化嵌入式操作系統(tǒng)體系結(jié)構(gòu)應(yīng)用程序任務(wù)管理硬 件用戶擴(kuò)展處理調(diào)嵌入式操作系統(tǒng)體系結(jié)構(gòu)用戶模式應(yīng)用應(yīng)用應(yīng)用網(wǎng)絡(luò)管理器圖形管理器設(shè)備管理器文件系統(tǒng)管理器網(wǎng)絡(luò)驅(qū)動(dòng)圖形驅(qū)動(dòng)設(shè)備驅(qū)動(dòng)文件系統(tǒng)驅(qū)動(dòng)硬件內(nèi)核模式 內(nèi)核(微內(nèi)核)QNX4.25的體系結(jié)構(gòu):客戶/服務(wù)器結(jié)構(gòu)嵌入式操作系統(tǒng)體系結(jié)構(gòu)用戶模式應(yīng)用應(yīng)用應(yīng)用網(wǎng)絡(luò)管理器圖形管理嵌入式操作系統(tǒng)嵌入式內(nèi)核嵌入式TCP/IP網(wǎng)絡(luò)系統(tǒng)嵌入式文件系統(tǒng)嵌

26、入式操作系統(tǒng)的組成嵌入式操作系統(tǒng)嵌入式內(nèi)核嵌入式TCP/IP嵌入式文件系統(tǒng)嵌入嵌入式內(nèi)核內(nèi)核是嵌入式操作系統(tǒng)的基礎(chǔ),也是必備的部分。內(nèi)核還提供特定的應(yīng)用編程接口,但目前沒有統(tǒng)一的標(biāo)準(zhǔn)。 任務(wù)管理內(nèi)存管理通信同步與互斥機(jī)制中斷管理時(shí)間管理任務(wù)擴(kuò)展返回嵌入式內(nèi)核內(nèi)核是嵌入式操作系統(tǒng)的基礎(chǔ),也是必備的部分。任務(wù)管嵌入式內(nèi)核任務(wù)管理內(nèi)核的核心部分,具有任務(wù)調(diào)度、創(chuàng)建任務(wù)、刪除任務(wù)、掛起任務(wù)、解掛任務(wù)、設(shè)置任務(wù)優(yōu)先級(jí)等功能。 通用計(jì)算機(jī)的操作系統(tǒng)追求的是最大的吞吐率,為了達(dá)到最佳整體性能,其調(diào)度原則是公平,采用Round-Robin或可變優(yōu)先級(jí)調(diào)度算法,調(diào)度時(shí)機(jī)主要以時(shí)間片為主驅(qū)動(dòng)。而嵌入式操作系統(tǒng)多采

27、用基于靜態(tài)優(yōu)先級(jí)的可搶占的調(diào)度,任務(wù)優(yōu)先級(jí)是在運(yùn)行前通過某種策略靜態(tài)分配好的,一旦有優(yōu)先級(jí)更高的任務(wù)就緒就馬上進(jìn)行調(diào)度。返回嵌入式內(nèi)核任務(wù)管理返回嵌入式內(nèi)核內(nèi)存管理嵌入式操作系統(tǒng)的內(nèi)存管理比較簡單。通常不采用虛擬存儲(chǔ)管理,而采用靜態(tài)內(nèi)存分配和動(dòng)態(tài)內(nèi)存分配(固定大小內(nèi)存分配和可變大小內(nèi)存分配)相結(jié)合的管理方式。有些內(nèi)核利用MMU機(jī)制提供內(nèi)存保護(hù)功能。通用操作系統(tǒng)廣泛使用了虛擬內(nèi)存的技術(shù),為用戶提供一個(gè)功能強(qiáng)大的虛存管理機(jī)制。返回嵌入式內(nèi)核內(nèi)存管理返回嵌入式內(nèi)核通信、同步和互斥機(jī)制這些機(jī)制提供任務(wù)間、任務(wù)與中斷處理程序間的通信、同步和互斥功能。一般包括信號(hào)量、消息、事件、管道、異步信號(hào)和共享內(nèi)存等

28、功能。與通用操作系統(tǒng)不同的是,嵌入式操作系統(tǒng)需要解決在這些機(jī)制的使用中出現(xiàn)的優(yōu)先級(jí)反轉(zhuǎn)問題。返回嵌入式內(nèi)核通信、同步和互斥機(jī)制返回嵌入式內(nèi)核中斷管理,一般具有以下功能:安裝中斷服務(wù)程序中斷發(fā)生時(shí),對(duì)中斷現(xiàn)場(chǎng)進(jìn)行保存,并且轉(zhuǎn)到相應(yīng)的服務(wù)程序上執(zhí)行中斷退出前,對(duì)中斷現(xiàn)場(chǎng)進(jìn)行恢復(fù)中斷棧切換中斷退出時(shí)的任務(wù)調(diào)度 返回嵌入式內(nèi)核中斷管理,一般具有以下功能:返回嵌入式內(nèi)核時(shí)間管理提供高精度、應(yīng)用可設(shè)置的系統(tǒng)時(shí)鐘,該時(shí)鐘是嵌入式系統(tǒng)的時(shí)基,可設(shè)置為十毫秒以下。提供日歷時(shí)間,負(fù)責(zé)與時(shí)間相關(guān)的任務(wù)管理工作如任務(wù)對(duì)資源有限等待的計(jì)時(shí)、時(shí)間片輪轉(zhuǎn)調(diào)度等,提供軟定時(shí)器的管理功能等。通用操作系統(tǒng)的系統(tǒng)時(shí)鐘的精度由操作系

29、統(tǒng)確定,應(yīng)用不可調(diào),且一般是幾十個(gè)毫秒。返回嵌入式內(nèi)核時(shí)間管理返回嵌入式內(nèi)核任務(wù)擴(kuò)展功能任務(wù)擴(kuò)展功能就是在內(nèi)核中設(shè)置一些Hook的調(diào)用點(diǎn),在這些調(diào)用點(diǎn)上內(nèi)核調(diào)用應(yīng)用設(shè)置的、應(yīng)用自己編寫的擴(kuò)展處理程序,以擴(kuò)展內(nèi)核的有關(guān)功能。Hook調(diào)用點(diǎn)有任務(wù)創(chuàng)建、任務(wù)切換、任務(wù)刪除、出錯(cuò)處理等。返回嵌入式內(nèi)核任務(wù)擴(kuò)展功能返回嵌入式TCP/IPTCP/IP協(xié)議已經(jīng)廣泛地應(yīng)用于嵌入式系統(tǒng)中嵌入式TCP/IP網(wǎng)絡(luò)系統(tǒng)提供符合TCP/IP協(xié)議標(biāo)準(zhǔn)的協(xié)議棧,提供Socket編程接口。Socket 接 口 UDP協(xié)議 TCP協(xié)議 IP 協(xié)議 ICMP/IGMP協(xié)議 網(wǎng)絡(luò)接口層 ARP/PPP協(xié)議 以太網(wǎng)驅(qū)動(dòng) 異步串口驅(qū)動(dòng)

30、物 理 設(shè) 備應(yīng)用程序/應(yīng)用協(xié)議嵌入式TCP/IPTCP/IP協(xié)議已經(jīng)廣泛地應(yīng)用于嵌入式系統(tǒng)嵌入式TCP/IP嵌入式TCP/IP網(wǎng)絡(luò)系統(tǒng)具有以下的特點(diǎn):可剪裁: 能根據(jù)嵌入式系統(tǒng)的功能的要求選擇所需的協(xié)議,對(duì)完整的TCP/IP協(xié)議簇進(jìn)行剪裁,以滿足用戶的需要。采用“零拷貝”(Zero Copy)技術(shù),提高實(shí)時(shí)性 所謂“零拷貝”技術(shù),是指TCP/IP協(xié)議棧沒有用于各層間數(shù)據(jù)傳遞的緩沖區(qū),協(xié)議棧各層間傳遞的都是數(shù)據(jù)指針,只有當(dāng)數(shù)據(jù)最終要被驅(qū)動(dòng)程序發(fā)送出去或是被應(yīng)用程序取走時(shí),才進(jìn)行真正的數(shù)據(jù)搬移。 嵌入式TCP/IP嵌入式TCP/IP網(wǎng)絡(luò)系統(tǒng)具有以下的特點(diǎn):嵌入式TCP/IP采用靜態(tài)分配技術(shù) 在網(wǎng)

31、絡(luò)初始化時(shí)就靜態(tài)分配通信緩沖區(qū),設(shè)置了專門的發(fā)送和接收緩沖(其大小一般小于或等于物理網(wǎng)絡(luò)上的MTU值),從而確保了每次發(fā)送或接收時(shí)處理的數(shù)據(jù)不會(huì)超過MTU值,也就避免了數(shù)據(jù)處理任務(wù)的阻塞等待。 返回嵌入式TCP/IP采用靜態(tài)分配技術(shù)返回嵌入式文件系統(tǒng)通用操作系統(tǒng)的文件系統(tǒng)通常具有以下功能:提供用戶對(duì)文件操作的命令提供用戶共享文件的機(jī)制管理文件的存儲(chǔ)介質(zhì)提供文件的存取控制機(jī)制,保障文件及文件系統(tǒng)的安全性提供文件及文件系統(tǒng)的備份和恢復(fù)功能提供對(duì)文件的加密和解密功能嵌入式文件系統(tǒng)通用操作系統(tǒng)的文件系統(tǒng)通常具有以下功能:嵌入式文件系統(tǒng)嵌入式文件系統(tǒng)相比之下較為簡單,主要具有文件的存儲(chǔ)、檢索、更新等功能

32、,一般不提供保護(hù)和加密等安全機(jī)制。它以系統(tǒng)調(diào)用和命令方式提供對(duì)文件的各種操作,主要有:設(shè)置和修改對(duì)文件和目錄的存取權(quán)限 提供建立、修改、改變、刪除目錄等服務(wù)提供創(chuàng)建、打開、讀、寫、關(guān)閉、撤消文件等服務(wù) 嵌入式文件系統(tǒng)嵌入式文件系統(tǒng)相比之下較為簡單,主要具有文件的第三節(jié)嵌入式軟件開發(fā)工具嵌入式軟件開發(fā)工具分類嵌入式軟件的交叉開發(fā)環(huán)境嵌入式軟件實(shí)現(xiàn)階段的開發(fā)過程嵌入式軟件開發(fā)工具的發(fā)展趨勢(shì)第三節(jié)嵌入式軟件開發(fā)工具嵌入式軟件開發(fā)工具分類嵌入式軟件開發(fā)工具的分類嵌入式軟件開發(fā)階段 需求分析(Requirement Analysis)設(shè)計(jì)(Software Design)編碼(Coding)測(cè)試(Tes

33、t)發(fā)布、維護(hù)(Release)嵌入式軟件開發(fā)工具的分類嵌入式軟件開發(fā)階段 需求分析(Req嵌入式軟件開發(fā)工具的分類根據(jù)不同的階段,嵌入式軟件開發(fā)工具可以分為:需求分析工具(Requirement Analysis Tools)軟件設(shè)計(jì)工具(Software Design Tools)編碼、調(diào)試工具(Coding Tools)測(cè)試工具(Testing Tools)配置管理工具、維護(hù)工具等嵌入式軟件開發(fā)工具的分類根據(jù)不同的階段,嵌入式軟件開發(fā)工具可主要嵌入式軟件開發(fā)工具產(chǎn)品RequirementAnalysisSoftwareDesignCodingTestReleasePhasesTAUObj

34、ectGeodeRational Rose RealTimeRhapsodyTornadopRISM+SpectraWin CE PlatformBuilderCodeWarriorXray DebuggerLogiscopeCodeTESTLambdaTOOL主要嵌入式軟件開發(fā)工具產(chǎn)品RequirementSoftwa嵌入式軟件開發(fā)工具的分類嵌入式軟件的開發(fā)可以分為以下幾種 :編寫簡單的板級(jí)測(cè)試軟件,主要是輔助硬件的調(diào)試 開發(fā)基本的驅(qū)動(dòng)程序 開發(fā)特定嵌入式操作系統(tǒng)的驅(qū)動(dòng)程序(板級(jí)支持包) 開發(fā)嵌入式系統(tǒng)軟件,如:嵌入式操作系統(tǒng)等 開發(fā)應(yīng)用軟件嵌入式軟件開發(fā)工具的分類嵌入式軟件的開發(fā)可以分為以

35、下幾種 :嵌入式軟件開發(fā)工具的分類從以上嵌入式軟件開發(fā)分類來看,嵌入式軟件開發(fā)工具可以分為:與嵌入式OS相關(guān)的開發(fā)工具,用于開發(fā):基于嵌入式OS的應(yīng)用部分驅(qū)動(dòng)程序等與嵌入式OS無關(guān)的開發(fā)工具,用于開發(fā):基本的驅(qū)動(dòng)程序輔助硬件調(diào)試程序系統(tǒng)軟件等嵌入式軟件開發(fā)工具的分類從以上嵌入式軟件開發(fā)分類來看,嵌入式嵌入式軟件的交叉開發(fā)環(huán)境交叉開發(fā)環(huán)境是指用于嵌入式軟件開發(fā)的所有工具軟件的集合,一般包括:文本編輯器交叉編譯器交叉調(diào)試器仿真器下載器等交叉開發(fā)環(huán)境由宿主機(jī)和目標(biāo)機(jī)組成,宿主機(jī)與目標(biāo)機(jī)之間在物理連接的基礎(chǔ)上建立起邏輯連接。嵌入式軟件的交叉開發(fā)環(huán)境交叉開發(fā)環(huán)境是指用于嵌入式軟件開發(fā)的交叉開發(fā)環(huán)境目標(biāo)機(jī)

36、硬件目標(biāo)機(jī)應(yīng)用系統(tǒng) 應(yīng)用軟件 應(yīng)用中間件 目標(biāo)機(jī)OS宿主機(jī)硬件宿主機(jī)OS調(diào)試代理運(yùn)行庫宿主機(jī)開發(fā)環(huán)境 編輯 編譯 連接 調(diào)試運(yùn)行平臺(tái)Target開發(fā)平臺(tái)HostDownLoad交叉開發(fā)環(huán)境目標(biāo)機(jī)硬件目標(biāo)機(jī)應(yīng)用系統(tǒng) 應(yīng)用軟件 嵌入式軟件的交叉開發(fā)環(huán)境宿主機(jī)(Host) :是用于開發(fā)嵌入式系統(tǒng)的計(jì)算機(jī)。一般為PC機(jī)(或者工作站),具備豐富的軟硬件資源,為嵌入式軟件的開發(fā)提供全過程支持。目標(biāo)機(jī)(Target):即所開發(fā)的嵌入式系統(tǒng),是嵌入式軟件的運(yùn)行環(huán)境,其硬件軟件是為特定應(yīng)用定制的。在開發(fā)過程中,目標(biāo)機(jī)端需接收和執(zhí)行宿主機(jī)發(fā)出的各種命令如設(shè)置斷點(diǎn)、讀內(nèi)存、寫內(nèi)存等,將結(jié)果返回給宿主機(jī),配合宿主機(jī)各

37、方面的工作。嵌入式軟件的交叉開發(fā)環(huán)境宿主機(jī)(Host) :是用于開發(fā)嵌入嵌入式軟件的交叉開發(fā)環(huán)境物理連接和邏輯連接 物理連接是指宿主機(jī)與目標(biāo)機(jī)通過物理線路連接在一起,連接方式主要有三種:串口以太口OCD(On Chip Debug)方式,如JTAG、BDM等物理連接是邏輯連接的基礎(chǔ)。邏輯連接指宿主機(jī)與目標(biāo)機(jī)間按某種通信協(xié)議建立起來的通信連接,目前逐步形成了一些通信協(xié)議的標(biāo)準(zhǔn)。嵌入式軟件的交叉開發(fā)環(huán)境物理連接和邏輯連接 嵌入式軟件實(shí)現(xiàn)階段的開發(fā)過程設(shè)計(jì)完成后,嵌入式軟件的開發(fā)進(jìn)入實(shí)現(xiàn)階段,可分為三個(gè)步驟:生成、調(diào)試和固化運(yùn)行。軟件的生成主要是在宿主機(jī)上進(jìn)行,利用各種工具完成對(duì)應(yīng)用程序的編輯、交叉

38、編譯和鏈接工作,生成可供調(diào)試或固化的目標(biāo)程序。調(diào)試是通過交叉調(diào)試器完成軟件的調(diào)試工作。調(diào)試完成后還需進(jìn)行必要的測(cè)試工作。固化運(yùn)行是先用一定的工具將應(yīng)用程序固化到目標(biāo)機(jī)上,然后啟動(dòng)目標(biāo)機(jī),在沒有任何工具干預(yù)的情況下應(yīng)用程序能自動(dòng)地啟動(dòng)運(yùn)行。嵌入式軟件實(shí)現(xiàn)階段的開發(fā)過程設(shè)計(jì)完成后,嵌入式軟件的開發(fā)進(jìn)入嵌入式軟件生成階段三個(gè)過程源代碼程序的編寫編譯成各個(gè)目標(biāo)模塊鏈接成可供下載調(diào)試或固化的目標(biāo)程序編輯器交叉編譯器交叉鏈接器源程序目標(biāo)模塊可供調(diào)試/固化庫文件嵌入式軟件生成階段三個(gè)過程編輯器交叉編譯器交叉鏈接器目標(biāo)模塊交叉編譯把在宿主機(jī)上編寫的高級(jí)語言程序編譯成可以運(yùn)行在目標(biāo)機(jī)上的代碼,即在宿主機(jī)上能夠編

39、譯生成另一種CPU(嵌入式微處理器)上的二進(jìn)制程序。 交叉編譯把在宿主機(jī)上編寫的高級(jí)語言程序編譯成可以運(yùn)行在目標(biāo)機(jī)嵌入式軟件的調(diào)試交叉調(diào)試器是指調(diào)試程序和被調(diào)試程序運(yùn)行在不同機(jī)器上的調(diào)試器調(diào)試器通過某種方式能控制目標(biāo)機(jī)上被調(diào)試程序的運(yùn)行方式通過調(diào)試器能查看和修改目標(biāo)機(jī)上的內(nèi)存、寄存器以及被調(diào)試程序中的變量等嵌入式軟件的調(diào)試交叉調(diào)試器交叉調(diào)試非交叉調(diào)試調(diào)試器和被調(diào)試程序運(yùn)行在不同的計(jì)算機(jī)上調(diào)試器和被調(diào)試程序運(yùn)行在同一臺(tái)計(jì)算機(jī)上可獨(dú)立運(yùn)行,無需操作系統(tǒng)支持需要操作系統(tǒng)的支持被調(diào)試程序的裝載由調(diào)試器完成被調(diào)試程序的裝載由專門的Loader程序完成需要通過外部通信的方式來控制被調(diào)試程序不需要通過外部通

40、信的方式來控制被調(diào)試程序可以直接調(diào)試不同指令集的程序只能直接調(diào)試相同指令集的程序交叉調(diào)試非交叉調(diào)試調(diào)試器和被調(diào)試程序運(yùn)行在不同的計(jì)算機(jī)上調(diào)試嵌入式軟件的調(diào)試交叉調(diào)試方式 Crash and Burn Rom Monitor Rom Emulator In Circuit Emulator On Chip DebuggingSimulator方式(非交叉)嵌入式軟件的調(diào)試交叉調(diào)試方式Crash and Burn 最早的嵌入式應(yīng)用軟件調(diào)試方法。在宿主機(jī)上編寫代碼反復(fù)檢查代碼,直到編譯通過,生成可執(zhí)行程序?qū)⒊绦蚬袒˙urn)到目標(biāo)機(jī)的非易失性存儲(chǔ)器(E2PROM、FLASH等)中在宿主機(jī)上反復(fù)檢查

41、碼,查找問題根源改寫代碼啟動(dòng)目標(biāo)機(jī)運(yùn)行,觀察程序是否正常工作NY結(jié)束Crash and Burn 最早的嵌入式應(yīng)用軟件調(diào)試方ROM MonitorROM Monitor是被固化且運(yùn)行在目標(biāo)機(jī)上的一段程序,負(fù)責(zé)監(jiān)控目標(biāo)機(jī)上被調(diào)試程序的運(yùn)行,與宿主機(jī)端的調(diào)試器一起完成對(duì)應(yīng)用程序的調(diào)試。調(diào)試器與ROM Monitor之間的通信遵循遠(yuǎn)程調(diào)試協(xié)議。ROM MonitorROM Monitor是被固化且運(yùn)行在ROM Monitor調(diào)試方式調(diào)試器Windows或其它桌面操作系統(tǒng)PC機(jī)等硬件嵌入式硬件監(jiān)控程序(ROM Monitor)被調(diào)試程序宿主機(jī)目標(biāo)機(jī)邏輯上的連接物理上的連接ROM Monitor調(diào)試方式

42、嵌入式宿主機(jī)目標(biāo)機(jī)邏輯上的連接ROM Monitor在目標(biāo)機(jī)上電或復(fù)位后首先執(zhí)行的就是ROM Monitor,它對(duì)目標(biāo)機(jī)進(jìn)行一些必要的初始化初始化要求的外圍設(shè)備,如最基本的串口和用于內(nèi)存刷新的系統(tǒng)計(jì)時(shí)器芯片;初始化用于下載映像的內(nèi)存系統(tǒng);初始化中斷控制器和安裝中斷處理程序。初始化自己的程序空間等待宿主機(jī)端的命令ROM Monitor在目標(biāo)機(jī)上電或復(fù)位后首先執(zhí)行的就是ROROM MonitorROM Monitor能配合調(diào)試器完成:程序映像下載對(duì)目標(biāo)機(jī)系統(tǒng)內(nèi)存的讀寫對(duì)寄存器的讀寫設(shè)置和清除不同類型的斷點(diǎn)單步執(zhí)行指令復(fù)位系統(tǒng)等調(diào)試功能ROM MonitorROM Monitor能配合調(diào)試器完成RO

43、M Monitor調(diào)試過程(1)啟動(dòng)目標(biāo)機(jī),監(jiān)控器掌握對(duì)目標(biāo)機(jī)的控制,等待和調(diào)試器建立連接;(2)啟動(dòng)調(diào)試器,并和監(jiān)控器建立起通信連接;(3)使用調(diào)試器將應(yīng)用程序下載到目標(biāo)機(jī)上的RAM空間中;(4)使用調(diào)試器進(jìn)行調(diào)試,發(fā)出各種調(diào)試命令,監(jiān)控器解釋并執(zhí)行這些命令,通過目標(biāo)機(jī)上的各種異常來獲取對(duì)目標(biāo)機(jī)的控制,將命令執(zhí)行結(jié)果回傳給調(diào)試器; (5)如果程序有問題,在調(diào)試器的幫助下定位錯(cuò)誤;修改之后再重新編譯鏈接并下載程序,開始新的調(diào)試,如此反復(fù)直至程序正確運(yùn)行為止。 ROM Monitor調(diào)試過程ROM Monitor優(yōu)點(diǎn)提高調(diào)試程序的效率 ,縮短開發(fā)周期,降低成本簡單、方便可擴(kuò)展性強(qiáng),可支持許多高級(jí)

44、調(diào)試功能成本低廉,不需專門的調(diào)試硬件支持幾乎所有的交叉調(diào)試器都支持這種方式 ROM Monitor優(yōu)點(diǎn)ROM Monitor缺點(diǎn)Debug Monitor需要用Crash and Burn方法開發(fā)。當(dāng)ROM Monitor占用CPU時(shí),應(yīng)用程序不響應(yīng)外部的中斷,因此不便調(diào)試有時(shí)間特性的程序。某些調(diào)試功能依賴于CPU硬件的支持(如硬件斷點(diǎn)功能)ROM Monitor要占用目標(biāo)機(jī)一定數(shù)量的資源,如CPU、RAM、ROM和通信設(shè)備等資源。調(diào)試環(huán)境不同于實(shí)際目標(biāo)環(huán)境。ROM Monitor缺點(diǎn)仿真開發(fā)方式嵌入式應(yīng)用的開發(fā)經(jīng)常會(huì)遭遇缺少目標(biāo)機(jī)環(huán)境、缺乏目標(biāo)機(jī)芯片等資源的問題,而開發(fā)過程又不可能停止,因此

45、自然就提出了根據(jù)不同的應(yīng)用需要,利用仿真器件、仿真環(huán)境進(jìn)行開發(fā)的方法。硬件仿真開發(fā)ROM EmulatorICEOCD軟件仿真開發(fā)仿真開發(fā)方式嵌入式應(yīng)用的開發(fā)經(jīng)常會(huì)遭遇缺少目標(biāo)機(jī)環(huán)境、缺乏ROM EmulatorROM Emulator是一種用于替代目標(biāo)機(jī)上的ROM芯片的設(shè)備,即ROM仿真器。利用這種設(shè)備,目標(biāo)機(jī)可以沒有ROM芯片,但目標(biāo)機(jī)的CPU可以讀取ROM Emulator設(shè)備上ROM芯片的內(nèi)容:ROM Emulator設(shè)備上的ROM芯片的地址可以實(shí)時(shí)地映射到目標(biāo)機(jī)的ROM地址空間,從而仿真(Emulation)目標(biāo)機(jī)的ROM。ROM EmulatorROM Emulator是一種用于R

46、OM EmulatorROM Emulator的調(diào)試方式是一種不完全的調(diào)試方式:ROM Emulator設(shè)備只是為目標(biāo)機(jī)提供ROM芯片和在Target和Host間建立一條高速的通信通道,因此它經(jīng)常和前面兩種調(diào)試方式結(jié)合起來形成一種完備的調(diào)試方式。ROM Emulator的典型應(yīng)用就是和ROM Monitor的調(diào)試方式相結(jié)合。ROM EmulatorROM Emulator的調(diào)試方式ROM Emulator優(yōu)點(diǎn)目標(biāo)機(jī)可以沒有ROM芯片、可以使用ROM Emulator提供的ROM空間且不需要用別的工具來寫ROM。缺點(diǎn)目標(biāo)機(jī)必須能支持外部ROM存儲(chǔ)空間,而且由于其通常要和ROM Monitor配合

47、使用,因此它擁有ROM Monitor的所有缺點(diǎn)。ROM Emulator優(yōu)點(diǎn)ICEICE(In-Circuit Emulator)是一種用于替代目標(biāo)機(jī)上CPU的設(shè)備,即在線仿真器。它比一般的CPU有更多的引出線,能夠?qū)?nèi)部的信號(hào)輸出到被控制的目標(biāo)機(jī)。ICE上的Memory也可以被映射到用戶的程序空間,這樣即使目標(biāo)機(jī)不存在的情形下也可以進(jìn)行代碼的調(diào)試。ICEICE(In-Circuit Emulator)是一種宿主開發(fā)平臺(tái)目標(biāo)平臺(tái)ICEICE調(diào)試結(jié)構(gòu)連接ICE和目標(biāo)機(jī)時(shí),一般是將目標(biāo)機(jī)的CPU取下,而將ICE的CPU引出線接到目標(biāo)機(jī)的CPU插槽。用ICE進(jìn)行調(diào)試時(shí),在Host端運(yùn)行的調(diào)試器通過

48、ICE來控制目標(biāo)機(jī)上運(yùn)行的程序。ICE宿主開目標(biāo)平臺(tái)ICEICE調(diào)試結(jié)構(gòu)連接ICE和目標(biāo)機(jī)時(shí),一般ICE功能特點(diǎn)同時(shí)支持軟斷點(diǎn)和硬件斷點(diǎn)的設(shè)置設(shè)置各種復(fù)雜的斷點(diǎn)和觸發(fā)器實(shí)時(shí)跟蹤目標(biāo)程序的運(yùn)行,并可實(shí)現(xiàn)選擇性的跟蹤支持“Time Stamp” 允許用戶設(shè)置“Timer” 提供“Shadow RAM”,能在不中斷被調(diào)試程序的運(yùn)行下查看內(nèi)存和變量即非干擾調(diào)試查詢ICE功能特點(diǎn)ICE適用于:調(diào)試實(shí)時(shí)的應(yīng)用系統(tǒng)調(diào)試設(shè)備驅(qū)動(dòng)程序?qū)τ布M(jìn)行功能和性能的測(cè)試實(shí)時(shí)性能分析缺點(diǎn):價(jià)格太昂貴,不利于團(tuán)隊(duì)開發(fā)所仿CPU有限ICE適用于:OCDOCD(On Chip Debugging)是CPU芯片提供的一種調(diào)試功能(片上調(diào)試),可以認(rèn)為是一種廉價(jià)的ICE功能:OCD的價(jià)格只有ICE的20%,但提供了ICE 80%的功能。OCDOCD(On Chip Debugging)是CPUOCD調(diào)試結(jié)構(gòu)調(diào)試器Windows或其它桌面操作系統(tǒng)PC機(jī)等硬件被調(diào)試程序OCD接口嵌入式硬件宿主機(jī)目標(biāo)機(jī)邏輯上的連接物理連接仿真器針形連接器并口、串口或網(wǎng)絡(luò)接口為特定處理器而建造OCD調(diào)試結(jié)構(gòu)OCD接口嵌入式硬件宿主機(jī)目標(biāo)機(jī)邏輯上的連接物OCD調(diào)試方法將CPU的模式分為一般模式和調(diào)試模式一般模式下, CPU從內(nèi)存讀取指令執(zhí)行

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論