第2章 嵌入式系統(tǒng)設計基本知識 嵌入式系統(tǒng)(大連理工)_第1頁
第2章 嵌入式系統(tǒng)設計基本知識 嵌入式系統(tǒng)(大連理工)_第2頁
第2章 嵌入式系統(tǒng)設計基本知識 嵌入式系統(tǒng)(大連理工)_第3頁
第2章 嵌入式系統(tǒng)設計基本知識 嵌入式系統(tǒng)(大連理工)_第4頁
第2章 嵌入式系統(tǒng)設計基本知識 嵌入式系統(tǒng)(大連理工)_第5頁
已閱讀5頁,還剩147頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

2.2嵌入式系統(tǒng)的軟件基礎2.2.1軟件系統(tǒng)概述軟件(software)是計算機系統(tǒng)中與硬件(hardware)相互依存的另一部分,它包括程序(program)、相關數(shù)據(jù)(data)及其說明文檔(document)。其中:程序是按照事先設計的功能和性能要求執(zhí)行的指令序列;數(shù)據(jù)是程序能正常操縱信息的數(shù)據(jù)結構;文檔是與程序開發(fā)維護和使用有關的各種圖文資料。1軟件系統(tǒng)概述軟件是一種邏輯實體,具有抽象性。

這個特點使它與其它工程對象有著明顯的差異。人們可以把它記錄在紙上、內(nèi)存、和磁盤、光盤上,但卻無法看到軟件本身的形態(tài),必須通過觀察、分析、思考、判斷,才能了解它的功能、性能等特性。

軟件產(chǎn)品的特性軟件沒有明顯的制造過程。一旦研制開發(fā)成功,就可以大量拷貝同一內(nèi)容的副本。所以對軟件的質量控制,必須著重在軟件開發(fā)方面下工夫。軟件在使用過程中,沒有磨損、老化的問題。軟件在生存周期后期不會因為磨損而老化,但會為了適應硬件、環(huán)境以及需求的變化而進行修改,而這些修改有不可避免的引入錯誤,導致軟件失效率升高,從而使的軟件退化。當修改的成本變得難以接受時,軟件就被拋棄。軟件對硬件和環(huán)境有著不同程度的依賴性。這導致了軟件移植的問題。軟件的開發(fā)至今尚未完全擺脫手工作坊式的開發(fā)方式,生產(chǎn)效率低。軟件是復雜的,而且以后會更加復雜。軟件是人類有史以來生產(chǎn)的復雜度最高的工業(yè)產(chǎn)品。軟件涉及人類社會的各行各業(yè)、方方面面,軟件開發(fā)常常涉及其它領域的專門知識,這對軟件工程師提出了很高的要求。軟件的成本相當昂貴。軟件開發(fā)需要投入大量、高強度的腦力勞動,成本非常高,風險也大。現(xiàn)在軟件的開銷已大大超過了硬件的開銷。軟件工作牽涉到很多社會因素。許多軟件的開發(fā)和運行涉及機構、體制和管理方式等問題,還會涉及到人們的觀念和心理。這些人的因素,常常成為軟件開發(fā)的困難所在,直接影響到項目的成敗。2軟件系統(tǒng)概述嵌入式系統(tǒng)軟件也是嵌入式系統(tǒng)的核心之一,它由嵌入式操作系統(tǒng)及相應的各種應用軟件構成。面向嵌入式系統(tǒng)的操作軟件有以下特點:編碼體積小,在嵌入式系統(tǒng)的有效存儲空間運行;面向應用,可裁減和移置;實時性強,有時也稱為實時多任務操作系統(tǒng)RTOS;可靠性高,無需人工干預獨立運行,并處理不同時間的故障。31、嵌入式軟件系統(tǒng)的分類嵌入式軟件系統(tǒng)軟件支撐軟件應用軟件控制、管理計算機系統(tǒng)的資源嵌入式操作系統(tǒng)嵌入式中間件(CORBA、

Java)等等輔助軟件開發(fā)的工具系統(tǒng)分析設計工具仿真開發(fā)工具交叉開發(fā)工具測試工具配置管理工具維護工具等面向應用領域手機軟件、路由器軟件交換機軟件、飛控軟件視頻圖像、語音、網(wǎng)絡等4嵌入式軟件系統(tǒng)的分類從運行平臺來分,嵌入式軟件可以分為運行在開發(fā)平臺上的軟件:設計、開發(fā)、測試工具等。運行在嵌入式系統(tǒng)上的軟件:嵌入式操作系統(tǒng)、應用程序、驅動程序及部分開發(fā)工具。52、嵌入式軟件系統(tǒng)的體系結構硬件

應用層驅動層操作系統(tǒng)層中間件層板級初始化FLASH驅動RTC/定時器驅動串口驅動以太網(wǎng)驅動LCD

驅動鍵盤驅動其他驅動內(nèi)核TCP/IP網(wǎng)絡系統(tǒng)文件系統(tǒng)嵌入式GUI電源管理嵌入式CORBA嵌入式JAVA嵌入式DCOM面向應用領域的中間件應用任務1應用任務2……應用任務n6嵌入式系統(tǒng)軟件設計的層次結構

嵌入式系統(tǒng)軟件結構一般包含4個層面:設備驅動層、操作系統(tǒng)OS、中間層、應用程序層。也有些書籍將應用程序接口API歸屬于OS層。由于硬件電路的可裁減性和嵌入式系統(tǒng)本身的特點,其軟件部分也是可裁減的。

7(1)驅動層驅動層程序是嵌入式系統(tǒng)中不可缺少的重要部分,使用任何外部設備都需要有相應驅動層程序的支持,它為上層軟件提供了設備的接口。上層軟件不用理會設備的具體內(nèi)部操作,只需調(diào)用驅動層程序提供的接口即可。驅動層程序一般包括硬件抽象層HAL(提高系統(tǒng)的可移植性)、板極支持包BSP(提供訪問硬件設備寄存器的函數(shù)包)和設備驅動程序。8驅動層板級初始化程序這些程序在嵌入式系統(tǒng)上電后初始化系統(tǒng)的硬件環(huán)境,包括嵌入式微處理器、存儲器、中斷控制器、DMA、定時器等的初始化。與系統(tǒng)軟件相關的驅動這類驅動是操作系統(tǒng)和中間件等系統(tǒng)軟件所需的驅動程序,它們的開發(fā)要按照系統(tǒng)軟件的要求進行。9目前操作系統(tǒng)內(nèi)核所需的硬件支持一般都已集成在嵌入式微處理器中了,因此操作系統(tǒng)廠商提供的內(nèi)核驅動一般不用修改。與應用軟件相關的驅動

與應用軟件相關的驅動不一定需要與操作系統(tǒng)連接,這些驅動的設計和開發(fā)由應用決定。10(2)操作系統(tǒng)OS層在設計一個簡單的應用程序時,可以不使用操作系統(tǒng)。僅有應用程序和設備驅動程序。比如一個指紋識別系統(tǒng)只是完成簡單的指紋錄入和指紋識別,它在指紋識別的過程中需要高速的算法,所以需要32位處理器。但是它的任務并不復雜,也不牽連什么復雜的協(xié)議和管理,對于這樣的系統(tǒng)就沒有安裝操作系統(tǒng)的必要。如果一定要安裝操作系統(tǒng),反而會帶來新的系統(tǒng)開銷,降低系統(tǒng)的性能。因為運行和存儲操作系統(tǒng)需要大量的RAM和ROM,啟動操作系統(tǒng)需要時間。11在設計較復雜的程序時,可能就需要一個操作系統(tǒng)(OS)來管理和控制內(nèi)存、多任務、周邊資源等。依據(jù)系統(tǒng)所提供的程序界面來編寫應用程序,可大大減少應用程序員的負擔?,F(xiàn)代高性能嵌入式系統(tǒng)的應用越來越廣泛,操作系統(tǒng)的使用成為必然發(fā)展趨勢。一般如果系統(tǒng)具有以下特點,系統(tǒng)運行較多任務,任務調(diào)度、內(nèi)存分配復雜;系統(tǒng)需要大量協(xié)議支持,如網(wǎng)絡協(xié)議、文件系統(tǒng)等;系統(tǒng)需要很好的圖形用戶接口GUI。那么建議使用操作系統(tǒng)。12操作系統(tǒng)的功能簡單來說就是隱藏硬件細節(jié),而只提供給應用程序開發(fā)人員一個個抽象的接口。用戶只需要和這些抽象的接口打交道,而不用在意這些抽象的接口和函數(shù)是如何與物理資源相聯(lián)系的,也不用去管那些功能是如何通過操作系統(tǒng)調(diào)用具體的硬件資源來完成的。這樣,如果以后硬件體系發(fā)生變化,只要在新的硬件體系下還運行著同樣的操作系統(tǒng),那么原來的程序還能一絲不錯的完成原有的功能。13操作系統(tǒng)OS層構成

操作系統(tǒng)層包括嵌入式內(nèi)核、嵌入式TCP/IP網(wǎng)絡系統(tǒng)、嵌入式文件系統(tǒng)、嵌入式GUI系統(tǒng)和電源管理等部分。其中嵌入式內(nèi)核是基礎和必備的部分,其他部分要根據(jù)嵌入式系統(tǒng)的需要來確定。14

對于使用操作系統(tǒng)的嵌入式系統(tǒng)而言,操作系統(tǒng)一般以內(nèi)核映像的形式下載到目標系統(tǒng)中。以μCLinux為例子,在系統(tǒng)開發(fā)完成之后,將整個系統(tǒng)部分做成內(nèi)核映像文件,與文件系統(tǒng)一起傳送到目標系統(tǒng)中。然后通過BootLoader指定地址運行μCLinux內(nèi)核,啟動已經(jīng)下載好的嵌入式Linux系統(tǒng);再通過操作系統(tǒng)解開文件系統(tǒng),運行應用程序。15

整個嵌入式系統(tǒng)與通用操作系統(tǒng)類似,功能比不帶有操作系統(tǒng)的嵌入式系統(tǒng)強大了很多。內(nèi)核中通常必需的基本部件是進程管理、進程間通信、內(nèi)存管理部分,其他部件如文件系統(tǒng)、驅動程序、網(wǎng)絡協(xié)議等都可根據(jù)用戶要求進行配置,并以相關的方式實現(xiàn)。16

系統(tǒng)中最重要的資源是中央處理單元(CPU),一般由很多正在執(zhí)行的程序所共用。操作系統(tǒng)負責確定可在CPU上執(zhí)行的程序及其執(zhí)行時間的長短,此功能稱為進程調(diào)度,調(diào)度的方法由操作系統(tǒng)所定的優(yōu)先策略決定。另一個很重要的資源是存儲器,包括存儲空間,這些也由在CPU上執(zhí)行的應用程序共享。除了為高級應用程序管理提供環(huán)境以外,操作系統(tǒng)還提供各種硬件中斷服務所需的軟件,以及驅動系統(tǒng)中存在的外設驅動程序??傊?,操作系統(tǒng)將底層硬件細節(jié)抽象化,并通過系統(tǒng)調(diào)用提供應用程序與硬件之間的接口。17

一般而言,開機后操作系統(tǒng)會初始化所有外設,如存儲器控制器、計時器和輸入/輸出設備,并安裝硬件中斷服務子程序,以便處理這些設備所產(chǎn)生的各種信號;然后安裝軟件中斷(由軟件所產(chǎn)生的中斷),以便處理下面將介紹的系統(tǒng)調(diào)用(高級應用程序為請求操作系統(tǒng)服務所產(chǎn)生的調(diào)用)。

系統(tǒng)調(diào)用是應用程序請求操作系統(tǒng)服務的一種機制,很像高級程序語言中的程序或函數(shù)調(diào)用,當程序需要操作系統(tǒng)服務時,會產(chǎn)生一個預定義的軟件中斷,由操作系統(tǒng)提供服務。請求服務所需的參數(shù)一般由應用程序通過CPU的寄存器傳遞給操作系統(tǒng)。18操作系統(tǒng)的應用程序接口API

API(ApplicationProgrammingInterface,應用程序編程接口)是一系列復雜的函數(shù)、消息和結構的集合體。嵌入式操作系統(tǒng)下的API和一般操作系統(tǒng)下的API在功能、含義及知識體系上完全一致??蛇@樣理解API:在計算機系統(tǒng)中有很多可通過硬件或外部設備去執(zhí)行的功能,這些功能的執(zhí)行可通過計算機操作系統(tǒng)或硬件預留的標準指令調(diào)用。19操作系統(tǒng)的應用程序接口API

API的出現(xiàn),使軟件人員在編制應用程序時,就不需要為各種通過硬件或外設執(zhí)行的功能而重新編制程序,只需按系統(tǒng)或某些硬件事先提供的API函數(shù)調(diào)用即可完成功能的執(zhí)行。因此在操作系統(tǒng)中提供標準的API函數(shù),可加快用戶應用程序的開發(fā),統(tǒng)一應用程序的開發(fā)標準,也為操作系統(tǒng)版本的升級帶來了方便。在API函數(shù)中,提供了大量的常用模塊,可大大簡化用戶應用程序的編寫。20(3)中間層(驅動層軟件)使用任何外設都需要有驅動程序的支持,驅動程序不僅要實現(xiàn)設備的基本功能函數(shù),如初始化、中斷響應、發(fā)送、接收等,而且還要提供完備的錯誤處理函數(shù)。中間層為上層軟件提供了設備的操作接口。上層程序只需調(diào)用驅動程序提供的接口,而不用理會設備具體的內(nèi)部操作。驅動層軟件(中間層)將系統(tǒng)軟件與底層硬件部分進行了隔離,使得系統(tǒng)的底層設備驅動程序與硬件無關。具體包括硬件抽象層HAL和板級支持包BSP。

21(3)中間件層

目前在一些復雜的嵌入式系統(tǒng)中也開始采用中間件技術,主要包括嵌入式CORBA、嵌入式Java、嵌入式DCOM和面向應用領域的中間件軟件。如基于嵌入式CORBA的應用于軟件無線電臺的應用中間件SCA(SoftwareCoreArchitecture)等。22(4)應用程序

應用層應用層軟件主要由多個相對獨立的應用任務組成每個應用任務完成特定的工作,如I/O任務、計算的任務、通信任務等,由操作系統(tǒng)調(diào)度各個任務的運行。

在一般簡易的嵌入式系統(tǒng)中常采用匯編語言來編程。較復雜的系統(tǒng)中,匯編語言很難勝任。高級語言就有通用性強、編程方便、易于移植及可維護等優(yōu)點,常用的高級語言有C/C++等。23應用程序

實際的嵌入式系統(tǒng)應用軟件建立在系統(tǒng)的主任務(MainTask)基礎之上。用戶應用程序主要通過調(diào)用系統(tǒng)的API函數(shù)對系統(tǒng)進行操作,完成用戶應用功能開發(fā)。在用戶的應用程序中,也可創(chuàng)建用戶自己的任務。任務之間的協(xié)調(diào)主要依賴于系統(tǒng)的消息隊列。操作系統(tǒng)是為應用程序提供基礎服務的軟件。而應用程序是在CPU上執(zhí)行的一個或多個程序,在執(zhí)行過程中會使用輸入數(shù)據(jù)并產(chǎn)生輸出數(shù)據(jù)。應用程序的管理包括程序載入和執(zhí)行,程序對系統(tǒng)資源的共享和分配,并避免分配到的資源被其他程序破壞。24應用程序

應用程序的設計流程是,先用編輯程序編寫源代碼,源代碼可以由多個文件組成,以實現(xiàn)模塊化;然后用編譯程序或匯編個文件;接著使用鏈接程序將這些二進制文件組合為可執(zhí)行文件。這些工作歸結起來,可看作是實現(xiàn)階段。然后,通過調(diào)試程序提供的命令運行得到的可執(zhí)行文件,以測試所設計的程序。有時可利用解析程序找出程序中存在的性能瓶頸。在此驗證階段,如果找到錯誤或性能瓶頸,可以返回到實現(xiàn)階段進行改進,并重復次流程。253、嵌入式軟件運行流程上電復位系統(tǒng)升級引導/升級系統(tǒng)系統(tǒng)初始化應用初始化多任務應用板級初始化遠程升級本地升級基于多任務操作系統(tǒng)的嵌入式軟件的主要運行流程該運行流程主要分為5個階段26嵌入式軟件運行流程

上電復位、板級初始化階段嵌入式系統(tǒng)上電復位后完成板級初始化工作。板級初始化程序具有完全的硬件特性,一般采用匯編語言實現(xiàn)。不同的嵌入式系統(tǒng),板級初始化時要完成的工作具有一定的特殊性,但以下工作一般是必須完成的:CPU中堆棧指針寄存器的初始化。BSS段(BlockStorageSpace表示未被初始化的數(shù)據(jù))的初始化。CPU芯片級的初始化:中斷控制器、內(nèi)存等。27嵌入式軟件運行流程系統(tǒng)引導/升級階段根據(jù)需要分別進入系統(tǒng)軟件引導階段或系統(tǒng)升級階段。軟件可通過測試通信端口數(shù)據(jù)或判斷特定開關的方式分別進入不同階段。28嵌入式軟件運行流程系統(tǒng)引導階段系統(tǒng)引導有幾種情況:將系統(tǒng)軟件從NORFlash中讀取出來加載到RAM中運行:這種方式可以解決成本及Flash速度比RAM慢的問題。軟件可壓縮存儲在Flash中。不需將軟件引導到RAM中而是讓其直接在NorFlash上運行,進入系統(tǒng)初始化階段。將軟件從外存(如NandFlash、CF卡、MMC等)中讀取出來加載到RAM中運行:這種方式的成本更低。29嵌入式軟件運行流程

系統(tǒng)升級階段進入系統(tǒng)升級階段后系統(tǒng)可通過網(wǎng)絡進行遠程升級或通過串口進行本地升級。遠程升級一般支持TFTP、FTP、HTTP等方式。本地升級可通過Console口使用超級終端或特定的升級軟件進行。30嵌入式軟件運行流程系統(tǒng)初始化階段

在該階段進行操作系統(tǒng)等系統(tǒng)軟件各功能部分必需的初始化工作,如根據(jù)系統(tǒng)配置初始化數(shù)據(jù)空間、初始化系統(tǒng)所需的接口和外設等。系統(tǒng)初始化階段需要按特定順序進行,如首先完成內(nèi)核的初始化,然后完成網(wǎng)絡、文件系統(tǒng)等的初始化,最后完成中間件等的初始化工作。31嵌入式軟件運行流程應用初始化階段

在該階段進行應用任務的創(chuàng)建,信號量、消息隊列的創(chuàng)建和與應用相關的其它初始化工作。多任務應用運行階段

各種初始化工作完成后,系統(tǒng)進入多任務狀態(tài),操作系統(tǒng)按照已確定的算法進行任務的調(diào)度,各應用任務分別完成特定的功能。32

5、集成開發(fā)環(huán)境(IDE)進行嵌入式系統(tǒng)開發(fā)時,選擇合適的開發(fā)工具可以加快進度、降低開發(fā)成本。因此,含有編輯軟件、編譯軟件、匯編軟件、鏈接軟件、調(diào)試軟件、工程管理以及函數(shù)庫的集成開發(fā)環(huán)境IDE是必不可少的。

嵌入式軟件開發(fā)的實現(xiàn)是在臺式計算機上使用的交叉編譯程序(crosscompiler)、交叉匯編程序(crossassembler)等可以完成這些工作。然后通過JTAG、串口或網(wǎng)絡接口定位下載到目標機上進行交叉編譯和交叉調(diào)試。真正的差異存在于嵌入式系統(tǒng)的驗證階段(即測試最后的可執(zhí)行文件)。下面將介紹一下常用的幾種開發(fā)工具。33

(1)常用的幾種開發(fā)工具。

匯編程序(assembler)將匯編語言指令翻譯成二進制機器指令,除了將操作碼、操作數(shù)轉換為相應的二進制編碼外,匯編程序還將符號標簽轉換為實際地址。編譯程序(complier)將結構化程序翻譯成機器(或匯編)程序。結構化程序語言具有可以大大簡化編程工作的高級結構(如循環(huán)結構),因此每個高級結構都可以轉變成幾條或數(shù)十條機器語言指令。編譯程序技術應用了許多程序最優(yōu)化技術,可以生成很大且性能很高的代碼。交叉編譯程序可以在開發(fā)處理器上運行,進而生成在目標處理器上執(zhí)行的代碼。34ARM的C編譯器的選擇常見的ARM的C編譯器主要有,SDT2.5(ARMSoftwareDevelopmentToolkit)ADS1.1/1.2(ARMDeveloperSuite)RealViewDeveloperSuitearm-elf-gcc、arm-linux-gcc35

(2)鏈接程序(linker)可以將分開匯編或編譯的文件合并為一個程序。在此過程中,將所有機器指令組合成單個程序,并插入標準函數(shù)庫中的指令。專為嵌入式處理器所設計的鏈接程序還可以刪除未被調(diào)用程序和函數(shù)相關的二進制代碼,刪除分配給未使用變量的存儲器,以降低整個程序存儲空間的大小。36

6、測試和調(diào)試階段測試和調(diào)試階段是整體設計流程的主要部分,尤其是開發(fā)將在嵌入式系統(tǒng)執(zhí)行的程序。編程很容易出錯,在編寫大型程序時存在錯誤和缺陷是難免的。驗證程序正確性的最常用方法是運行程序,在運行過程中應使用大量輸入數(shù)據(jù),以檢查系統(tǒng)的行為,尤其是檢查邊界情況。如果開發(fā)的是將在臺式計算機上運行的程序,則程序的驗證相對容易一些。對于嵌入式系統(tǒng)程序員而言,這項任務更具挑戰(zhàn)性,因為在嵌入式系統(tǒng)上運行的程序大都是實時的。37(1)調(diào)試程序(debugger)

調(diào)試程序(debugger)幫助程序員評估并更正程序。調(diào)試程序在宿主機處理器上執(zhí)行,并支持單步執(zhí)行。另外還允許程序執(zhí)行到使用者所定義的斷點。程序執(zhí)行停止后,使用者可檢查各存儲器地址和寄存器中的值。由于當今很多程序都相當復雜而且很難一次編寫正確,因此具有良好的調(diào)試能力是極為重要的。由于調(diào)試程序在宿主機處理器上執(zhí)行,但所執(zhí)行的代碼確是為目標處理器而設計的,因此可以模仿或模擬目標處理器的功能。這些調(diào)試程序也稱為指令集仿真程序或虛擬機(VM,VirtualMachine)。38 (2)測試測試將在嵌入式系統(tǒng)中執(zhí)行的程序有3種方式:利用指令集仿真程序調(diào)試;利用硬件仿真器仿真;以及將程序直接下載到目標處理器做現(xiàn)場測試。這些方法的差別如下:使用在開發(fā)計算機上執(zhí)行的調(diào)試程序,其設計周期很快,但較不精確,因為它與系統(tǒng)中其他部分以及環(huán)境的交互有限;使用硬件仿真器時的調(diào)試時間要長一些,這是因為程序代碼必須下載到仿真器的硬件中后才可以進行仿真調(diào)試。但硬件仿真器可以與系統(tǒng)的其他部分實時交互,其測試更精確;39

利用JTAG下載器將程序下載到目標處理器的設計周期是三種方法中最長的。這是因為每次調(diào)試時必須將經(jīng)編譯和連接后的目標代碼程序下載到應用系統(tǒng)中后,啟動系統(tǒng)進行實際觀察,如發(fā)現(xiàn)錯誤后,再返回到宿主機上重新編輯修改和編譯下載后,再人工觀察有無錯誤,這樣需經(jīng)多次反復后,直到無誤后才可認為調(diào)試結束。但此種方式的優(yōu)點是讓系統(tǒng)和環(huán)境可以自由交互,能提供最高的執(zhí)行精確度。一般具有一定調(diào)試經(jīng)驗的工程師常采用此方法。402.2.2嵌入式實時操作系統(tǒng)簡介操作系統(tǒng)可以簡單分為通用操作系統(tǒng)和實時操作系統(tǒng)兩類。我們平時在PC機上使用的Windows、Dos、Linux等操作系統(tǒng)都屬于通用操作系統(tǒng)。這類操作系統(tǒng)的任務類型多種多樣,它們一般比較強調(diào)系統(tǒng)的運行效率。實時操作系統(tǒng)就是“在給定的時間內(nèi)提供某種程度的服務,如果在規(guī)定的時間內(nèi)沒有得到結果,那整個的系統(tǒng)就是失敗”。對于實時操作系統(tǒng)其首要任務是調(diào)度一切可利用的資源完成實時控制任務,其次才著眼提高計算機系統(tǒng)的使用效率。41

實時多任務操作系統(tǒng)(RTOS)是嵌入式系統(tǒng)應用最多的系統(tǒng)軟件。RTOS是一段嵌入在目標代碼中的程序,系統(tǒng)復位后首先執(zhí)行,相當于用戶的主程序,其他程序都建立在RTOS之上。同時RTOS還是一個標準的內(nèi)核,將CPU時間、中斷、I/O、定時器等資源都包含起來,留給用戶一個標準的API,并根據(jù)各個任務的優(yōu)先級,合理的在不同任務之間分配CPU時間。

42

RTOS是針對不同處理器優(yōu)化設計的高效實時多任務內(nèi)核,可以面對幾十個系列的嵌入式處理器提供類似的API接口?;赗TOS的C語言工具具有極大的可移植性(只需修改10%左右的內(nèi)容)。在RTOS基礎上可以編寫出各種硬件驅動程序、專家?guī)旌瘮?shù)、行業(yè)庫函數(shù)、產(chǎn)品庫函數(shù),和通用性的應用程序一起可以作為可以作為產(chǎn)品銷售。

RTOS最關鍵的部分是實時多任務內(nèi)核,它的基本功能包括任務管理、定時器管理、存儲器管理、資源管理、事件管理、系統(tǒng)管理、消息管理、隊列管理、旗語管理等,這些管理功能是通過內(nèi)核服務函數(shù)形式交給用戶調(diào)用的,也就是RTOS的API。431)實時操作系統(tǒng)的特點

隨著硬件實時性要求的提高,嵌入式系統(tǒng)的軟件規(guī)模也不斷擴大,逐漸形成了實時多任務操作系統(tǒng)(RTOS),并開始成為嵌入式系統(tǒng)的主流。這一階段嵌入式系統(tǒng)的主要特點是:操作系統(tǒng)的實時性得到了很大改善,已經(jīng)能夠運行在各種不同類型的微處理器上,具有高度的模塊化和擴展性。此時的嵌入式操作系統(tǒng)已經(jīng)具備了文件和目錄管理、設備管理、多任務、網(wǎng)絡、圖形用戶界面(GUI)等功能,并提供了大量的應用程序接口(API),從而使得應用軟件的開發(fā)變得更加簡單。44實時操作系統(tǒng)的特點

(1)多任務一個任務也稱作一個線程,是一個簡單的運行程序。每個任務都是整個應用的某一部分,每個任務被賦予一定的優(yōu)先級,有它自己的一套CPU寄存器和自己的棧空間多任務運行的實現(xiàn),實際上是靠CPU(中央處理單元)在許多任務之間轉換、調(diào)度。CPU只有一個,輪番服務于一系列任務中的某一個。多任務運行使CPU的利用率得到最大的發(fā)揮,并使應用程序模塊化。在實際應用中,多任務的最大特點是,開發(fā)人員可以將很復雜的應用程序層次化。45(2)任務的事件驅動

通用操作系統(tǒng)只注重平均性能,所有任務的平均響應時間是關鍵,并不關心單個任務的響應時間。而嵌入式實時系統(tǒng)是指在一個確定的時間內(nèi),實現(xiàn)系統(tǒng)功能并做出及時響應的系統(tǒng)。任務實時任務非實時任務事件驅動時間驅動內(nèi)部事件:運算結果、設備請求等外部事件:開關量輸入等絕對時間驅動相對時間驅動46CPU中斷控制器1中斷控制器2外部事件

(3)中斷與中斷優(yōu)先級

系統(tǒng)實現(xiàn)中斷可以帶來CPU和外設間的同步工作、實現(xiàn)實時處理和故障處理。47①異常中斷的優(yōu)先級

在嵌入式微處理器中通過給各異常中斷賦予一定的優(yōu)先級來實現(xiàn)這種處理順序。優(yōu)先級如下:復位(最高優(yōu)先級);數(shù)據(jù)異常中止;FIQ;IRQ;

預取指令異常中止;

SWI(軟件中斷)、未定義指令(包括缺協(xié)處理器)。這兩者是互斥的指令編碼,因此不可能同時發(fā)生。

復位是優(yōu)先級最高的異常中斷,這是因為復位從確定的狀態(tài)啟動微處理器,使得所有其他未解決的異常都沒有關系了。48②微處理器的異常中斷響應過程

當發(fā)生異常時,除了復位異常立即中止當前指令外,處理器盡量完成當前指令,然后脫離當前的指令處理序列去處理異常。

ARM處理器對異常中斷的響應過程如下:

首先,將當前程序狀態(tài)寄存器CPSR的內(nèi)容保存到將要執(zhí)行的異常中斷對應的備用程序狀態(tài)寄存器SPSR中,以實現(xiàn)對處理器當前狀態(tài)、中斷屏蔽位及各條件標志位的保存。各異常中斷模式都有自己相應的物理SPSR寄存器。49其次設置CPSR中的相應位設置CPSR模式控制位CPSR[4:0],使處理器進入相應的執(zhí)行模式;設置中斷標志位(CPSR[7]=1),禁止IRQ中斷;當進入Reset或FIQ模式時,還要設置中斷標志位(CPSR[6]=1),禁止FIQ中斷。

然后,將引起異常指令的下一條指令的地址保存到新的異常工作模式的R14即R14_mode中,使異常處理程序執(zhí)行完后能正確返回原程序。

最后,給程序計數(shù)器強制賦值,使程序在對應的矢量地址開始執(zhí)行中斷處理程序。一般矢量地址處將包含一條指向相應程序的轉移指令,從而可跳轉到相應的異常中斷處理程序處執(zhí)行異常中斷處理程序。50③從異常中斷處理程序中返回

從異常中斷處理程序中返回時,需要執(zhí)行以下4個基本操作:被修改過的用戶寄存器必須從處理程序的保護堆棧中恢復(即出棧,恢復現(xiàn)場)。將SPSR_mode寄存器內(nèi)容復制到CPSR中,使得CPSR從相應的SPSR中恢復,恢復被中斷的程序工作狀態(tài)。根據(jù)異常類型將程序計數(shù)器PC變回到用戶指令流中相應的指令處(恢復斷點)。最后清除CPSR(7或6位)中的中斷禁止標志位I/F。51(4)同步與異步

與系列時間相關事件稱為同步事件,驅動的任務為同步任務。隨機發(fā)生的事件稱為異步事件,驅動的任務為異步任務,如中斷等。

(5)資源與臨界資源

程序進行時可使用的軟硬件環(huán)境稱為資源,2個以上任務可同時訪問的共享資源稱為臨界資源。任何任務所占用的實體都可稱為資源。資源可以是輸入輸出設備,例如打印機、鍵盤、顯示器,資源也可以是一個變量、一個結構或一個數(shù)組等。52容錯:當系統(tǒng)軟、硬件發(fā)生故障時,系統(tǒng)仍能正常運轉,完成預定的任務或某些重要的不允許間斷的任務。包括系統(tǒng)自診斷、自恢復、自動切換等功能。安全性:是指系統(tǒng)對自身文件和用戶文件的存取合法性的控制。如口令、加密。(6)容錯與安全532)嵌入式操作系統(tǒng)體系結構體系結構是操作系統(tǒng)的基礎,它定義了硬件與軟件的界限、內(nèi)核與操作系統(tǒng)其它組件(文件、網(wǎng)絡、GUI等)的組織關系、系統(tǒng)與應用的接口。體系結構是確保系統(tǒng)的性能、可靠性、靈活性、可移植性、可擴展性的關鍵,就好比房子的梁架,只有梁架搭牢固了才提得上房子的質量,再做一些錦上添花的工作才有意義。目前操作系統(tǒng)的體系結構可分為:單塊結構、層次結構和客戶/服務器(微內(nèi)核)結構。54嵌入式操作系統(tǒng)體系結構硬件基本進程管理虛存管理I/O和設備管理進程間通信文件系統(tǒng)用戶用戶模式內(nèi)核模式層次結構55嵌入式操作系統(tǒng)體系結構硬件進程服務用戶態(tài)核心態(tài)應用程序客戶內(nèi)存服務微內(nèi)核文件服務網(wǎng)絡服務顯示服務發(fā)送應答客戶/服務器結構(微內(nèi)核結構)56嵌入式操作系統(tǒng)體系結構微內(nèi)核結構的優(yōu)點提供一致的接口可擴展性:擴展對新的軟件/硬件支持靈活性:可伸縮可移植性分布式系統(tǒng)支持適用于面向對象操作系統(tǒng)環(huán)境性能問題:通過微內(nèi)核構造和發(fā)送信息、接受應答并解碼所花費的時間比進行一次系統(tǒng)調(diào)用的時間多很大程度取決于微內(nèi)核的大小和功能57嵌入式操作系統(tǒng)體系結構目前嵌入式操作系統(tǒng)主要采用分層和模塊化相結合的結構或微內(nèi)核結構。分層和模塊化結合的結構將操作系統(tǒng)分為硬件無關層、硬件抽象層和硬件相關層,每層再劃分功能模塊。這樣移植工作便集中在硬件相關層,與其余兩層無關,功能的伸縮則集中在模塊上,從而確保其具有良好的可移植性和可伸縮性。而采用微內(nèi)核結構,則可利用其可伸縮的特點適應硬件的發(fā)展,便于擴展。

58嵌入式操作系統(tǒng)體系結構應用程序任務管理硬件用戶擴展處理調(diào)度管理硬件抽象層應用編程接口內(nèi)存管理中斷管理時鐘/定時器管理I/O管理出錯處理同步、通信管理(消息隊列,信號量,事件,異步信號))DeltaCORE的體系結構:層次+模塊結構分層次模塊化59嵌入式操作系統(tǒng)體系結構用戶模式應用應用應用網(wǎng)絡管理器圖形管理器設備管理器文件系統(tǒng)管理器網(wǎng)絡驅動圖形驅動設備驅動文件系統(tǒng)驅動硬件內(nèi)核模式內(nèi)核(微內(nèi)核)QNX4.25的體系結構:客戶/服務器結構60(1)嵌入式操作系統(tǒng)的組成…………61嵌入式系統(tǒng)軟件-操作系統(tǒng)(EOS)EmbeddedOperatingSystem(EOS)應用在嵌入式系統(tǒng)上的操作系統(tǒng)主要功能負責嵌入式系統(tǒng)的全部軟、硬件資源的分配、調(diào)度,將CPU時鐘、I/O、中斷等資源封裝起來給用戶提供一個標準的API接口,供用戶調(diào)用。組成應用程序接口、設備驅動程序接口、設備驅動、操作系統(tǒng)內(nèi)核等組成。62EOS的發(fā)展嵌入式軟件單線程程序事件驅動程序循環(huán)輪詢系統(tǒng)有限狀態(tài)機多任務系統(tǒng)中斷驅動系統(tǒng)分布式系統(tǒng)單機多任務系統(tǒng)63(2)嵌入式內(nèi)核內(nèi)核是嵌入式操作系統(tǒng)的基礎,也是必備的部分。內(nèi)核還提供特定的應用編程接口,但目前沒有統(tǒng)一的標準。任務管理內(nèi)存管理通信同步與互斥機制中斷管理時間管理任務擴展…………64多任務系統(tǒng)中,內(nèi)核負責管理各個任務,或者說為每個任務分配CPU時間,并且負責任務之間的通信。內(nèi)核提供的基本服務是任務切換。內(nèi)核本身也增加了應用程序的額外負荷,代碼空間增加了ROM的用量,內(nèi)核本身的數(shù)據(jù)結構增加了RAM的用量。內(nèi)核本身對CPU的占用時間一般在2到5個百分點左右。

系統(tǒng)內(nèi)核65嵌入式內(nèi)核任務管理內(nèi)核的核心部分,具有任務調(diào)度、創(chuàng)建任務、刪除任務、掛起任務、解掛任務、設置任務優(yōu)先級等功能。通用計算機的操作系統(tǒng)追求的是最大的吞吐率,為了達到最佳整體性能,其調(diào)度原則是公平,采用Round-Robin或可變優(yōu)先級調(diào)度算法,調(diào)度時機主要以時間片為主驅動。而嵌入式操作系統(tǒng)多采用基于靜態(tài)優(yōu)先級的可搶占的調(diào)度,任務優(yōu)先級是在運行前通過某種策略靜態(tài)分配好的,一旦有優(yōu)先級更高的任務就緒就馬上進行調(diào)度。66嵌入式內(nèi)核內(nèi)存管理嵌入式操作系統(tǒng)的內(nèi)存管理比較簡單。通常不采用虛擬存儲管理,而采用靜態(tài)內(nèi)存分配和動態(tài)內(nèi)存分配(固定大小內(nèi)存分配和可變大小內(nèi)存分配)相結合的管理方式。有些內(nèi)核利用MMU機制提供內(nèi)存保護功能。通用操作系統(tǒng)廣泛使用了虛擬內(nèi)存的技術,為用戶提供一個功能強大的虛存管理機制。返回67嵌入式內(nèi)核通信、同步和互斥機制這些機制提供任務間、任務與中斷處理程序間的通信、同步和互斥功能。一般包括信號量、消息、事件、管道、異步信號和共享內(nèi)存等功能。與通用操作系統(tǒng)不同的是,嵌入式操作系統(tǒng)需要解決在這些機制的使用中出現(xiàn)的優(yōu)先級反轉問題。返回68嵌入式內(nèi)核中斷管理,一般具有以下功能:安裝中斷服務程序中斷發(fā)生時,對中斷現(xiàn)場進行保存,并且轉到相應的服務程序上執(zhí)行中斷退出前,對中斷現(xiàn)場進行恢復中斷棧切換中斷退出時的任務調(diào)度返回69嵌入式內(nèi)核時間管理提供高精度、應用可設置的系統(tǒng)時鐘,該時鐘是嵌入式系統(tǒng)的時基,可設置為十毫秒以下。提供日歷時間,負責與時間相關的任務管理工作如任務對資源有限等待的計時、時間片輪轉調(diào)度等,提供軟定時器的管理功能等。通用操作系統(tǒng)的系統(tǒng)時鐘的精度由操作系統(tǒng)確定,應用不可調(diào),且一般是幾十個毫秒。返回70嵌入式內(nèi)核任務擴展功能任務擴展功能就是在內(nèi)核中設置一些Hook的調(diào)用點,在這些調(diào)用點上內(nèi)核調(diào)用應用設置的、應用自己編寫的擴展處理程序,以擴展內(nèi)核的有關功能。Hook調(diào)用點有任務創(chuàng)建、任務切換、任務刪除、出錯處理等。返回71嵌入式TCP/IPTCP/IP協(xié)議已經(jīng)廣泛地應用于嵌入式系統(tǒng)中嵌入式TCP/IP網(wǎng)絡系統(tǒng)提供符合TCP/IP協(xié)議標準的協(xié)議棧,提供Socket編程接口。Socket接口

UDP協(xié)議

TCP協(xié)議

IP協(xié)議

ICMP/IGMP協(xié)議網(wǎng)絡接口層

ARP/PPP協(xié)議以太網(wǎng)驅動異步串口驅動物理設備應用程序/應用協(xié)議72嵌入式TCP/IP嵌入式TCP/IP網(wǎng)絡系統(tǒng)具有以下的特點:可剪裁:能根據(jù)嵌入式系統(tǒng)的功能的要求選擇所需的協(xié)議,對完整的TCP/IP協(xié)議簇進行剪裁,以滿足用戶的需要。采用“零拷貝”(ZeroCopy)技術,提高實時性所謂“零拷貝”技術,是指TCP/IP協(xié)議棧沒有用于各層間數(shù)據(jù)傳遞的緩沖區(qū),協(xié)議棧各層間傳遞的都是數(shù)據(jù)指針,只有當數(shù)據(jù)最終要被驅動程序發(fā)送出去或是被應用程序取走時,才進行真正的數(shù)據(jù)搬移。73嵌入式TCP/IP采用靜態(tài)分配技術

在網(wǎng)絡初始化時就靜態(tài)分配通信緩沖區(qū),設置了專門的發(fā)送和接收緩沖(其大小一般小于或等于物理網(wǎng)絡上的MTU值),從而確保了每次發(fā)送或接收時處理的數(shù)據(jù)不會超過MTU值,也就避免了數(shù)據(jù)處理任務的阻塞等待。

74嵌入式文件系統(tǒng)通用操作系統(tǒng)文件系統(tǒng)通常具有以下功能:提供用戶對文件操作的命令提供用戶共享文件的機制管理文件的存儲介質提供文件的存取控制機制,保障文件及文件系統(tǒng)的安全性提供文件及文件系統(tǒng)的備份和恢復功能提供對文件的加密和解密功能75嵌入式文件系統(tǒng)嵌入式文件系統(tǒng)相比之下較為簡單,主要具有文件的存儲、檢索、更新等功能,一般不提供保護和加密等安全機制。它以系統(tǒng)調(diào)用和命令方式提供對文件的各種操作,主要有:設置和修改對文件和目錄的存取權限提供建立、修改、改變、刪除目錄等服務提供創(chuàng)建、打開、讀、寫、關閉、撤消文件等服務

76實時系統(tǒng)是面向具體應用,對外來事件在限定時間內(nèi)能做出反應的系統(tǒng)。限定時間的范圍很廣可以從微秒級(如信號處理)到分鐘級(如聯(lián)機查詢系統(tǒng))。在實時系統(tǒng)中主要有三個指標來衡量系統(tǒng)的實時性,即響應時間(ResponseTime)、生存時間(SurvivalTime)、吞吐量(Throughput)。3)實時系統(tǒng)的評價指標77

響應時間(ResponseTime):是計算機識別一個外部事件到作出響應的時間,在控制應用中它是最重要的指標,如果事件不能及時的處理,系統(tǒng)可能就會崩潰。生存時間(SurvivalTime):是數(shù)據(jù)有效等待時間,在這段時間里數(shù)據(jù)是有效的。吞吐量(Throughput):是在一給定時間內(nèi)(秒),系統(tǒng)可以處理的事件總數(shù)。例如通訊控制器用每秒鐘處理的字符數(shù)來表示吞吐量,吞吐量是平均響應時間的倒數(shù)。78這是操作系統(tǒng)的主要職責之一,它決定該輪到哪個任務運行了。 往往調(diào)度是基于任務的優(yōu)先級,根據(jù)其重要不同被賦予任務不同的優(yōu)先級。CPU總是讓處在就緒態(tài)的優(yōu)先級最高的任務先運行。 何時讓高優(yōu)先級任務掌握CPU的使用權,有兩種不同的情況,這要看用的是什么類型的內(nèi)核,是非占先式的還是占先式的內(nèi)核。

(2)任務調(diào)度(dispatcher)79

(3)任務優(yōu)先級(priority)

首先介紹一下任務優(yōu)先級的種類,每個任務都有其優(yōu)先級(priority),靜態(tài)優(yōu)先級和動態(tài)優(yōu)先級。

應用程序執(zhí)行過程中,如果各任務優(yōu)先級不變,則稱之為靜態(tài)優(yōu)先級。在靜態(tài)優(yōu)先級系統(tǒng)中,各任務以及它們的時間約束在程序編譯時是已知的。 應用程序執(zhí)行過程中,如果任務的優(yōu)先級是可變的,則稱之為動態(tài)優(yōu)先級。80(4)非占先式調(diào)度法與占先式調(diào)度法①非占先式(non-preemptive)式調(diào)度法非占先式也稱作合作型多任務(cooperativemultitasking),各個任務彼此合作共享一個CPU。中斷服務可以使一個高優(yōu)先級的任務由掛起狀態(tài)變?yōu)榫途w狀態(tài)。但中斷服務以后控制權還是回到原來被中斷了的那個任務,直到該任務主動放棄CPU的使用權時,那個高優(yōu)先級的任務才能獲得CPU的使用權。81

非占先式內(nèi)核的一個特點是幾乎不需要使用信號量保護共享數(shù)據(jù)。正在運行著的任務占有CPU,而不必擔心被別的任務搶占。非占先式內(nèi)核的最大缺陷在于其響應高優(yōu)先級的任務慢,中斷優(yōu)先級高的任務雖然已經(jīng)進入中斷就緒狀態(tài),但還不能立即運行,也許還需要等很長時間,直到當前正在運行的任務釋放CPU。內(nèi)核的任務及響應時間是不確定的,不知道什么時候最高優(yōu)先級的任務才能拿到CPU的控制權,完全取決于當前被中斷的任務什么時候釋放CPU。82低優(yōu)先級任務ISR高優(yōu)先級任務(1)(2)(3)(4)(5)(6)(7)中斷服務程序使高優(yōu)先級任務就緒低優(yōu)先級任務釋放CPU使用權TIME非占先式(Non-Preemptive)圖83②占先式(搶先式)preemptive)

當系統(tǒng)響應時間很重要時,要使用占先式內(nèi)核。最高優(yōu)先級的任務一旦就緒,總能得到CPU的控制權。即當一個運行著的任務使一個比它優(yōu)先級高的任務進入了就緒態(tài),當前任務的CPU使用權就被剝奪了,或者說被掛起了,那個高優(yōu)先級的任務立刻得到了CPU的控制權。使用占先式內(nèi)核時,應用程序應使用可重入型函數(shù),這樣在被多個任務同時調(diào)用,而不必擔心會破壞數(shù)據(jù)。84

也就是說,可重入型函數(shù)在任何時候都可以被中斷執(zhí)行,過一段時間以后又可以繼續(xù)運行,而不會在函數(shù)中斷的時候被其他的任務重新調(diào)用,影響函數(shù)中的數(shù)據(jù)。即可重入型函數(shù)使用的是局部變量,在通常的C編譯器中把局部變量分配在棧中。所以,多次調(diào)用同一個函數(shù)可以保證每次的變量互不受到影響。如果調(diào)入不可重入型函數(shù)時,低優(yōu)先級的任務CPU的使用權被高優(yōu)先級任務剝奪,不可重入型函數(shù)中的數(shù)據(jù)有可能被破壞。比如,不可重入型函數(shù)中使用的是全局變量,這樣全局變量可能會被更改。85低優(yōu)先級任務ISR高優(yōu)先級任務(1)(2)(3)(4)(5)(6)中斷服務程序使高優(yōu)先級任務就緒高優(yōu)先級任務得到CPU使用權TIME占先式(Preemptive)圖86占先式內(nèi)核的中斷處理872.2.3常用的嵌入式操作系統(tǒng)概述

簡單的嵌入式系統(tǒng)可以不使用操作系統(tǒng),被稱為裸機設計,如8位單片機。復雜的系統(tǒng)常常使用嵌入式操作系統(tǒng),這樣的系統(tǒng)一般可以擴展程序存儲器,資源相對較多,系統(tǒng)實現(xiàn)的功能比較復雜,軟件開發(fā)的工作量和開發(fā)難度比較大,維護費用較高。使用嵌入式操作系統(tǒng)可以有效的提高這些系統(tǒng)的開發(fā)效率。881、操作系統(tǒng)功能的概述

現(xiàn)在的操作系統(tǒng)十分復雜,它管理著計算機系統(tǒng)中各種不同的軟硬件資源。一般來說,操作系統(tǒng)主要功能有進程管理(處理機管理)、存儲器管理、設備管理和文件管理。進程管理的主要功能是完成CPU資源的調(diào)度和分配,以某種預定的策略運行系統(tǒng)中的任務。存儲器管理是操作系統(tǒng)的一個重要職責,主要完成計算機內(nèi)存資源的管理和分配任務。設備管理負責管理各種計算機外設,主要有設備驅動程序完成。文件管理負責管理磁盤上的各種文件和目錄。891)進程管理程序、進程與線程的定義程序是由程序員編寫的、存儲在外存上的一組計算機指令。程序是一個靜態(tài)的概念。進程是一個描述程序執(zhí)行時動態(tài)特征的概念,即執(zhí)行中的程序就叫進程。進程是動態(tài)的。一個進程的生命周期就是程序從程序開始運行到結束的過程。程序的每次執(zhí)行都要形成一個新的進程,因此機器會存在多個不同進程的情況。線程是進程中的一個實體,一個進程可以有多個線程。線程的引入是為了減少進程切換的開銷。進程控制:創(chuàng)建進程、分配資源和撤銷進程、釋放其所占用的各類資源以及控制進程的狀態(tài)轉換。90進程管理的功能進程調(diào)度:其任務就是按照調(diào)度策略和分配處理機,提高CPU的利用率。進程調(diào)度由調(diào)度程序負責,調(diào)度程序根據(jù)調(diào)度算法從可運行的進程中選擇一個進程來執(zhí)行。進程同步:由于進程是并發(fā)運行的,多個進程序共享一個CPU、內(nèi)存和I/O設備。其任務是對各進程的運行進行協(xié)調(diào),協(xié)調(diào)方式有進程互斥(指進程在訪問只允許一個進程獨立訪問的資源時應互斥進行)和進程同步(采用同步機制對完成共同任務的進程的執(zhí)行次序加以協(xié)調(diào))兩種方式。進程通信:實現(xiàn)相互合作進程間的信息交換。主要是用管道、信號量、消息隊列、共享內(nèi)存和Socket套接字等方式進行。912)存儲器管理其任務是對主存儲器資源的管理,提高存儲器的利用率,為程序的并發(fā)運行提供一個良好的環(huán)境,以便用戶使用。完成的功能:存儲器分配和回收;內(nèi)存共享與保護;地址映像;地址變換;存儲擴充。其中地址映像是把主存相應地址的內(nèi)容定位存放到Cache中某個地址中。地址變換是指把程序地址空間中的邏輯地址轉換為機器內(nèi)部主存空間對應的物理地址。923)設備管理

主要任務是:管理I/O設備,以提高CPU和I/O設備的利用率;處理用戶程序的I/O設備申請,并完成其請求的I/O操作;簡化I/O設備的使用并提高I/O設備的速度。具體完成時需具有緩沖管理、設備分配、設備處理和虛擬設備功能。虛擬設備功能是為使多個用戶能共享獨占設備(每次只允許一個進程是用的設備),系統(tǒng)通過某種技術是該設備在邏輯上能被多個用戶共享,以提高設備利用率及加速程序的執(zhí)行過程。934)文件管理

文件是信息和數(shù)據(jù)在外部存儲設備的保存方式。文件管理既是對文件的組織和管理。文件管理應具有以下功能:文件存儲空間的管理:由文件系統(tǒng)對文件的存儲空間進行統(tǒng)一管理,對文件存儲空間進行分配和回收。目錄管理:系統(tǒng)為每個文件建立了一個文件目錄項,它包含文件名、文件屬性、文件所在的物理位置等信息。每個目錄項就是一個文件的索引,目錄管理通過目錄項實現(xiàn)文件的有效組織和文件按名存取。94文件讀、寫管理:系統(tǒng)在對文件進行讀操作時,根據(jù)永固制定的目標地址、傳送字節(jié)數(shù),把文件信息從外存讀入緩沖區(qū)后,再復制到指定的區(qū)域。文件的寫操作是根據(jù)用戶指定的源地址、傳送字節(jié)數(shù),把信息從指定的區(qū)域寫到外部設備上。文件保護:為防止文件被偷竊和破壞,文件系統(tǒng)必須提供文件保護功能,以防止未經(jīng)核準的用戶存取文件,冒名頂替存取文件或者異步正當?shù)姆绞绞褂梦募?5

隨著集成電路規(guī)模的不斷提高,涌現(xiàn)出大量價格低廉、結構小巧、功能強大的微處理器,這樣給嵌入式系統(tǒng)提供了豐富的硬件平臺。目前限制嵌入式系統(tǒng)發(fā)展的瓶頸突出的表現(xiàn)在軟件方面。從20世紀80年代開始,出現(xiàn)了一些嵌入式操作系統(tǒng)。這些操作系統(tǒng)經(jīng)過不斷的發(fā)展,已經(jīng)逐漸成熟,在各個領域得到了廣泛的應用。比較常用的操作系統(tǒng)有uC/OS-II、Linux、WindowsCE和VxWorks等。962、嵌入式操作系統(tǒng)的演變

在嵌入式系統(tǒng)的發(fā)展過程中,從操作系統(tǒng)的角度來看,大致經(jīng)歷了以下幾個階段:無操作系統(tǒng)階段簡單操作系統(tǒng)階段實時操作系統(tǒng)階段面向Internet的階段97無操作系統(tǒng)階段嵌入式系統(tǒng)最初的應用是基于單片機的,大多以可編程控制器的形式出現(xiàn),具有監(jiān)測、伺服、設備指示等功能,通常應用于各類工業(yè)控制和飛機、導彈等武器裝備中,一般沒有操作系統(tǒng)的支持,只能通過匯編語言對系統(tǒng)進行直接控制,運行結束后再清除內(nèi)存。這些裝置雖然已經(jīng)初步具備了嵌入式的應用特點,但僅僅只是使用8位的CPU芯片來執(zhí)行一些單線程的程序,因此嚴格地說還談不上"系統(tǒng)"的概念。這一階段嵌入式系統(tǒng)的主要特點是:系統(tǒng)結構和功能相對單一,處理效率較低,存儲容量較小,幾乎沒有用戶接口。由于這種嵌入式系統(tǒng)使用簡便、價格低廉,因而曾經(jīng)在工業(yè)控制領域中得到了非常廣泛的應用,但卻無法滿足現(xiàn)今對執(zhí)行效率、存儲容量都有較高要求的信息家電等場合的需要。98簡單操作系統(tǒng)階段20世紀80年代,隨著微電子工藝水平的提高,IC制造商開始把嵌入式應用中所需要的微處理器、I/O接口、串行接口以及RAM、ROM等部件統(tǒng)統(tǒng)集成到一片VLSI中,制造出面向I/O設計的微控制器,并一舉成為嵌入式系統(tǒng)領域中異軍突起的新秀。與此同時,嵌入式系統(tǒng)的程序員也開始基于一些簡單的"操作系統(tǒng)"開發(fā)嵌入式應用軟件,大大縮短了開發(fā)周期、提高了開發(fā)效率。這一階段嵌入式系統(tǒng)的主要特點是:出現(xiàn)了大量高可靠、低功耗的嵌入式CPU(如PowerPC等),各種簡單的嵌入式操作系統(tǒng)開始出現(xiàn)并得到迅速發(fā)展。此時的嵌入式操作系統(tǒng)雖然還比較簡單,但已經(jīng)初步具有了一定的兼容性和擴展性,內(nèi)核精巧且效率高,主要用來控制系統(tǒng)負載以及監(jiān)控應用程序的運行。99實時操作系統(tǒng)階段20世紀90年代,在分布控制、柔性制造、數(shù)字化通信和信息家電等巨大需求的牽引下,嵌入式系統(tǒng)進一步飛速發(fā)展,而面向實時信號處理算法的DSP產(chǎn)品則向著高速度、高精度、低功耗的方向發(fā)展。隨著硬件實時性要求的提高,嵌入式系統(tǒng)的軟件規(guī)模也不斷擴大,逐漸形成了實時多任務操作系統(tǒng)(RTOS),并開始成為嵌入式系統(tǒng)的主流。這一階段嵌入式系統(tǒng)的主要特點是:操作系統(tǒng)的實時性得到了很大改善,已經(jīng)能夠運行在各種不同類型的微處理器上,具有高度的模塊化和擴展性。此時的嵌入式操作系統(tǒng)已經(jīng)具備了文件和目錄管理、設備管理、多任務、網(wǎng)絡、圖形用戶界面(GUI)等功能,并提供了大量的應用程序接口(API),從而使得應用軟件的開發(fā)變得更加簡單。100嵌入式操作系統(tǒng)的演變面向Internet的階段21世紀無疑將是一個網(wǎng)絡的時代,將嵌入式系統(tǒng)應用到各種網(wǎng)絡環(huán)境中去的呼聲自然也越來越高。目前大多數(shù)嵌入式系統(tǒng)還孤立于Internet之外,隨著Internet的進一步發(fā)展,以及Internet技術與信息家電、工業(yè)控制技術等的結合日益緊密,嵌入式設備與Internet的結合才是嵌入式技術的真正未來。信息時代和數(shù)字時代的到來,為嵌入式系統(tǒng)的發(fā)展帶來了巨大的機遇,同時也對嵌入式系統(tǒng)廠商提出了新的挑戰(zhàn)。101嵌入式操作系統(tǒng)的演變

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

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

uC/OS-II(MicroControlerOperatingSystem)是美國人JeanJ.Labrosse開發(fā)的實時操作系統(tǒng)內(nèi)核。這個內(nèi)核的產(chǎn)生與Linux優(yōu)點相似,他花了一年多的時間開發(fā)了這個最初名為uC/OS的實時操作系統(tǒng),并且將介紹文章在1992年的《EmbeddedSystemProgramming》雜志上發(fā)表,其源代碼公布在該雜志的網(wǎng)站上,1993年出書。這本書的熱銷以及源代碼的公開推動了uC/OS-II本身的發(fā)展。uC/OS-II目前已經(jīng)被移植到Intel、Philips、Motorola等公司不同的處理器上了。

104μC/OS-II簡介μC/OS-II是一個搶占式實時多任務內(nèi)核。它是用ANSI的C語言編寫的,包含一小部分匯編語言代碼,使之可以提供給不同架構的微處理器使用。至今,從8位到64位,μC/OS-II已經(jīng)在40多種不同架構的微處理器上使用。使用μC/OS的領域包括:照相機行業(yè)、航空業(yè)、醫(yī)療器械、網(wǎng)絡設備、自動提款機以及工業(yè)機器人等。

105嵌入式實時操作系統(tǒng)μC/OS-II簡介μC/OS-II全部以源代碼的方式提供,大約有5500行。CPU相關的部分使用的是針對Intel80x86微處理器的代碼。μC/OS-II可以很容易地移植到不同架構的嵌入式微處理器上。

1061)uC/OS-II內(nèi)核的基本功能包括作為一個實時操作系統(tǒng),uC/OS-II的進程調(diào)度是按搶占式、多任務系統(tǒng)設計的,即它總是執(zhí)行處于就緒隊列中優(yōu)先級最高的任務。uC/OS-II將進程的狀態(tài)分為5個:就緒狀態(tài)(Ready)、運行(Running)、等待(Waiting)、休眠(Dormant)和中斷ISR。

uC/OS-II內(nèi)核的基本功能包括:任務管理、定時器管理、事件管理、系統(tǒng)管理、消息管理、信號量管理等,這些管理功能都是通過應用接口函數(shù)API由用戶調(diào)用的。

107

uC/OS-II不支持時間片輪轉調(diào)度法,所以賦予每個任務的優(yōu)先級必須是不同。優(yōu)先級號越低,任務的優(yōu)先級越高。它的基本代碼尺寸不到5KB,對存儲器容量要求低,滿足了嵌入式系統(tǒng)對體積苛刻。uC/OS-II由完整的TCP/IP協(xié)議棧、GUI和文件管理系統(tǒng),可以隨內(nèi)核一起移動。

1082)嵌入式實時操作系統(tǒng)μC/OS-II簡介μC/OS-II的特點:源代碼可移植可固化可裁減可搶占性支持多任務可確定性任務棧系統(tǒng)服務中斷管理穩(wěn)定性和可靠性109 嵌入式uC/OS-II的特點公開源代碼,全部核心代碼只有8.3KB。它只包含了進程調(diào)度、時鐘管理、內(nèi)存管理和進程間的通信與同步等基本功能,沒有包括I/O管理、文件系統(tǒng)、網(wǎng)絡等額外模塊。可移植性、可固化、可裁減。在uC/OS-II操作系統(tǒng)中涉及到系統(tǒng)移植的源代碼文件只有3個,只要編寫4個匯編語言的函數(shù)、6個C函數(shù)、定義3個宏和1個常量,代碼長度不過二三百行,移植起來并不困難。110

占先式uC/OS-II總是運行就需條件下優(yōu)先級最高的任務。多任務

uC/OS-II可以管理64個任務,其中8個系統(tǒng)占用??纱_定性

uC/OS-II的函數(shù)調(diào)用與服務的執(zhí)行時間具有其可確定性。另外還有任務棧、系統(tǒng)服務、中斷管理和穩(wěn)定性和可靠性。uC/OS-II的源代碼絕大部分是用C語言編寫的,經(jīng)過編譯就能在PC機上運行。僅有與CPU密切相關的一部分是用匯編語言寫成的。111源代碼文件介紹對函數(shù)和環(huán)境的定義:PC.C與處理器類型無關部分:

OS_CORE.COS_FLAG.COS_MBOX.COS_MEM.COS_MUTEX.COS_Q.COS_SEM.COS_TASK.COS_TIME.CμCOS-II.CμCOS-II.H與處理器類型相關部分:

OS_CPU_A.S OS_CPU_C.C OS_CPU.H給整個內(nèi)核庫提供總體的include文件:INCLUDES.H

配置文件,定義使用μC/OS-II中的哪些功能:OS_CFG.H112uCOS-II的不足之處只有多任務調(diào)度的簡單內(nèi)核內(nèi)存管理過于簡單,幾乎沒有動態(tài)內(nèi)存管理功能文件系統(tǒng)和圖形界面需要外掛對于設備驅動程序沒有專門統(tǒng)一的接口113對uCOS-II進行必要的擴展要想實現(xiàn)一個相對完整、實用的嵌入式操作系統(tǒng),還需要相當多的擴展性的工作。以在UP-NETARM3000平臺所開展的工作為例:建立了FAT兼容的文件系統(tǒng)——可用U盤方式交互外設及驅動程序的實現(xiàn)基于Unicode的漢字庫基本繪圖函數(shù)的實現(xiàn)其它實用API函數(shù)114總體擴展框圖115注意:μC/OS-IIμC/OS-II不是自由軟件,用于商業(yè)目的時須取得許可證1164、Linux操作系統(tǒng)簡介

嵌入式系統(tǒng)越來越追求數(shù)字化、網(wǎng)絡化和智能化。因此原來在某些設備或領域中占主導地位的軟件系統(tǒng)越來越難以為繼,整個系統(tǒng)必須是開放的、提供標準的API,并且能夠方便地與眾多第三方的軟硬件溝通。

Linux在嵌入式領域異軍突起,不過是近兩年的事情。過去的一年中有13%的用戶已經(jīng)開始使用嵌入式Linux系統(tǒng)進行開發(fā)工作;有52%的用戶決定在未來24個月內(nèi)開始使用Linux作為嵌入式操作系統(tǒng)的開發(fā)原型。117

隨著Linux的迅速發(fā)展,嵌入式Linux現(xiàn)在已經(jīng)有了許多版本,包括強實時的嵌入式Linux(RT-Linux和KURT-Linux)和一般的嵌入式Linux(如uClinux和PorketLinux等)。其中,RT-Linux通過把通常的Linux任務優(yōu)先級設為最低,而所有的實時任務的優(yōu)先級都高于它,以達到既兼容通常的Linux任務,又保證強實時性能的目的。118(1)嵌入式uCLinux另一種常用的嵌入式Linux是uClinux,它是指對Linux經(jīng)過小型化裁剪后,能夠固化在容量只有幾百K字節(jié)或幾兆字節(jié)的存儲器芯片中,即針對沒有MMU的處理器而設計的。它不能使用處理器的虛擬內(nèi)存管理技術,對內(nèi)存的訪問是直接的,所有程序中的地址都是實際的物理地址。它專為嵌入式系統(tǒng)作了許多小型化的工作。嵌入式Linux(EmbeddedLinux)應用于特定嵌入式場合。嵌入式Linux的開發(fā)和研究是目前操作系統(tǒng)領域的一個熱點。119

(2)Linux的特點

自由免費軟件Linux的出現(xiàn)對目前商用嵌入式操作系統(tǒng)帶來了沖擊。它可移植到多個不同結構的CPU和硬件平臺上,具有一定的穩(wěn)定性、各種性能的升級能力,而且開發(fā)更加容易。由于嵌入式系統(tǒng)越來越追求數(shù)字化、網(wǎng)絡化和智能化,因此要求整個系統(tǒng)必須是開放的、提供標準的API,并能夠方便的與第三方的軟硬件溝通。開放源代碼,不存在黑箱技術。內(nèi)核小、功能強大、運行穩(wěn)定、效率高。120

特點開放源代碼的操作系統(tǒng)易于定制裁減,在價格上極具競爭力。不僅支持X86CPU,還可支持其他數(shù)十種CPU芯片。有大量的且不斷增加的開發(fā)工具和開發(fā)環(huán)境。沿用了Unix的發(fā)展方式,遵循國際標準,可方便的獲得眾多第三方軟硬件廠商的支持。Linux內(nèi)核的結構在網(wǎng)絡方面是非常完整的,提供了對十兆、百兆、千兆以太網(wǎng)、無線網(wǎng)絡、令牌網(wǎng)、光纖網(wǎng)、衛(wèi)星等多種聯(lián)網(wǎng)方式的全面支持。此外在圖像處理、文件管理及多任務支持諸多方面也都非常出色。121

國外應用Linux的產(chǎn)品有PDA、照相機、機頂盒、手機、書寫板等。國內(nèi)的中科紅旗軟件、藍點、網(wǎng)虎科技等公司也推出了一些相應的產(chǎn)品。一個可用的Linux系統(tǒng)包括內(nèi)核和應用程序兩個部分。應用程序包括系統(tǒng)的部分初始化、基本的人機界面和必要的命令等內(nèi)容。內(nèi)核為應用程序提供了一個虛擬的硬件平臺,以統(tǒng)一的方式對資源進行訪問,并且透明的支持多任務。

Linux內(nèi)核可分為6部分:進程調(diào)度、內(nèi)存管理、文件管理、進程間通信、網(wǎng)絡和驅動程序。1223、嵌入式中的LinuxLinux的版本ucLinuxRTLinux嵌入式linuxARM-Linux2.6.01231)Linux開發(fā)工具vim或vi

文本編輯器gcc

編譯,生成可執(zhí)行代碼gdb

調(diào)試,通過串口可進行交叉編譯Makefile

(或makefile)

用于形成make,makeclean等命令,實現(xiàn)自動編譯、清除等操作。1242)內(nèi)核的裁減配置內(nèi)核三種方式makeconfig

最老的配置方式,以文本行的形式逐行回答yes或者nomakemenuconfig

以文本窗口的形式進行配置,具有較好的人機界面。makexconfig

與makemenuconfig相同,當都只能在

Xwindow下運行125裁剪內(nèi)核界面1263)驅動的編寫及過程Linux系統(tǒng)的設備分為字符設備(chardevice),塊設備(blockdevice)和網(wǎng)絡設備(networkdevice)三種。字符設備是指存取時沒有緩存的設備。塊設備的讀寫都有緩存來支持,并且塊設備必須能夠隨機存取(randomaccess),字符設備則沒有這個要求。典型的字符設備包括鼠標,鍵盤,串行口等。塊設備主要包括硬盤軟盤設備,CD-ROM等。一個文件系統(tǒng)要安裝進入操作系統(tǒng)必須在塊設備上。網(wǎng)絡設備在Linux里做專門的處理。Linux的網(wǎng)絡系統(tǒng)主要是基于BSDunix的socket機制。在系統(tǒng)和驅動程序之間定義有專門的數(shù)據(jù)結構(sk_buff)進行數(shù)據(jù)的傳遞。系統(tǒng)里支持對發(fā)送數(shù)據(jù)和接收數(shù)據(jù)的緩存,提供流量控制機制,提供對多協(xié)議的支持。1274)應用程序的開發(fā)圖形界面miniguiqt多線程網(wǎng)絡1285、WindowsCE操作系統(tǒng)簡介

1)概述

WindowsCE是Microsoft公司為開發(fā)各類信息設備而開發(fā)出來的一個嵌入式軟實時操作系統(tǒng)。

WindowsCE是一個非常小巧精致的操作系統(tǒng)。這個操作系統(tǒng)的核心全部是由C語言開發(fā)的,操作系統(tǒng)本身還包含許多由各個廠家用C語言和匯編語言開發(fā)的驅動程序。WindowsCE的內(nèi)核提供內(nèi)存管理、搶先多任務和中斷處理功能。內(nèi)核的上面是圖形用戶界面GUI和桌面應用程序。在GUI內(nèi)部運行著所有的應用程序,而且多個應用程序可以同時運行。WindowsCE沒有DOS模式。129

WindowsCE可以看作是Windows98/NT的微縮版,專門為體積小、資源要求低、便攜的機器而設計。但它們之間還存在著一些明顯的差別,WindowsCE不得不放棄某些復雜的特性。

WindowsCE是針對有限資源的平臺而設計的多線程、完整優(yōu)先權、多任務的操作系統(tǒng),但它不是一個強實時操作系統(tǒng),高度模塊化是它的重要特性,它適合作為可裁減的32位嵌入式操作系統(tǒng)。WinCE既適用于工業(yè)設備的嵌入式控制模塊,也適用于消費類電子產(chǎn)品,如電話、機頂盒和掌上電腦等。針對不同的目標設備硬件環(huán)境,可以在內(nèi)核基礎上添加各種模塊,從而形成一個定制的嵌入式操作系統(tǒng)。130

WindowsCE的核允許每個進程有256個優(yōu)先級,采用搶占式優(yōu)先權調(diào)度法。WindowsCE內(nèi)核至少約為200KB的ROM。對于應用程序開發(fā)者來說,WindowsCE提供了Windows程序員熟悉的各種開發(fā)環(huán)境,例如,MicrosoftWin32API(應用程序接口)、ActiveX控件、消息隊列、COM接口、ATL和MFC。它們不僅有助于提高開發(fā)者的開發(fā)效率,而且有利于從其他Wicrosoft平臺上移植各種成功的應用程序。

WindowsCE通過ActiveSync實現(xiàn)嵌入式設備與臺式計算機之間的通信。1312)WinCE與Windows操作系統(tǒng)的區(qū)別⑴WindowsCE不能運行現(xiàn)有的應用程序這意味著所有建立在WindowsCE上的實時應用軟件都必須為WindowsCE重新編譯連接。因此,這違背了Windows向下兼容的原則。⑵WindowsCE有嚴格的內(nèi)存限制。雖然目前桌面或PC的內(nèi)存容量驚人地快速增長,為Windows的運行提供了充分的內(nèi)存空間,但在WindowsCE下情況卻不同。WindowsCE的內(nèi)存限制主要別現(xiàn)在以下三個方面。132

①減少物理內(nèi)存數(shù)量:大多數(shù)WindowsCE設備只能裝入相對較小的物理內(nèi)存。例如掌上型PC設備通常只有4MB或8MB內(nèi)存。②WindowsCE設備的用戶可以控制分配程序和存儲使用的內(nèi)存。③WindowsCE程序能夠處理低內(nèi)存狀態(tài)。尤其是無論操作系統(tǒng)何時需要內(nèi)存,它們都盡量釋放一些正在使用的內(nèi)存,這與使用Windows98/NT不同。由上述可知,在編寫WindowsCE程序時,程序員應該對內(nèi)存多加注意。133⑶WindowsCE有精簡的運行庫和API

WindowsCE和Windows98/NT平臺的一個很大區(qū)別是前者縮減了C/C++運行庫(RTL)和API。許多常見的ANSI函數(shù)已被WindowsAPI函數(shù)代替或被完全刪除。也就是說,現(xiàn)有的Windows程序可能一開始不能被WindowsCE編譯,必須做一些相應的修改。134

⑷WindowsCE設備通常沒有鼠標大部分WindowsCE設備沒有鼠標。WindowsCE設備中用一個被稱為指示筆的筆樣工具來代替鼠標。與鼠標不同,指示筆在屏幕上沒有固定的指示標志,也就是所謂光標。

WindowsCE的指示筆只在用戶用它輕擊(敲擊或觸擊)屏幕上的觸摸屏時才與操作系統(tǒng)和應用程序交互,但是,WindowsCE的指示筆仍然能有效的選擇對象、導航菜單項等,WindowsCE的窗口不能改變大小,窗口要么是最大化,要么是創(chuàng)建時的尺寸。

135⑸WinCE硬件并不十分標準化

Windows98/NT可以運行在任意標準配置的硬件上,如配備有Intel(或兼容)的芯片、適當內(nèi)存、適當彩色或分辨率的顯示器的計算機上。但WindowsCE卻并非如此,每個WindowsCE設備廠商以不同方式進行設計,因此WindowsCE設備不像計算機那樣有標準配置。ActiveSync提供了從串行口、紅外線接口到網(wǎng)絡電纜的各種目前常用的通信手段。為了消費類電子產(chǎn)品,WindowsCE內(nèi)建了對多媒體、通信(TCP/IP、SNMP及TAPI等)和安全的支持,并已經(jīng)有了各種常用的應用程序。利用這些開發(fā)環(huán)境,可以比較容易的實現(xiàn)娛樂、通信和事務處理等嵌入式應用。136

WinCE主要包括:內(nèi)核、存儲、圖形及多媒體、進程間通信、通信服務、安全服務、用戶界

溫馨提示

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

評論

0/150

提交評論