嵌入式系統(tǒng)設(shè)計課件嵌入式系統(tǒng)設(shè)計實驗指導(dǎo)書_第1頁
嵌入式系統(tǒng)設(shè)計課件嵌入式系統(tǒng)設(shè)計實驗指導(dǎo)書_第2頁
嵌入式系統(tǒng)設(shè)計課件嵌入式系統(tǒng)設(shè)計實驗指導(dǎo)書_第3頁
嵌入式系統(tǒng)設(shè)計課件嵌入式系統(tǒng)設(shè)計實驗指導(dǎo)書_第4頁
嵌入式系統(tǒng)設(shè)計課件嵌入式系統(tǒng)設(shè)計實驗指導(dǎo)書_第5頁
已閱讀5頁,還剩159頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

東莞理工學院城市學院

《嵌入式系統(tǒng)設(shè)計》課程實驗指導(dǎo)書

編寫人:李建輝

審核人:劉林泉、李建輝

教研室主任:龍允聰

系主任:廉玉忠

城市學院計算機與信息科學系

二O一五年三月

第一章嵌入式系統(tǒng)

1.1嵌入式系統(tǒng)概述

嵌入式系統(tǒng)一般指非PC系統(tǒng),它包括硬件和軟件兩部分。硬件包括處理器、微處理器、

存儲器及外設(shè)器件和I/O端口、圖形控制器等。軟件部分包括操作系統(tǒng)軟件(OS)(要求

實時和多任務(wù)操作)和應(yīng)用程序編程。有時設(shè)計人員把這兩種軟件組合在一起。應(yīng)用程序控

制著系統(tǒng)的運作和行為;而操作系統(tǒng)控制著應(yīng)用程序編程與硬件的交互作用。

嵌入式系統(tǒng)的核心是嵌入式微處理器。嵌入式微處理器一般就具備以下4個特點:

(1)對實時多任務(wù)有很強的支持能力,能完成多任務(wù)并且有較短的中斷響應(yīng)時間,從而

使內(nèi)部的代碼和實時內(nèi)核心的執(zhí)行時間減少到最低限度。

(2)具有功能很強的存儲區(qū)保護功能。這是由于嵌入式系統(tǒng)的軟件結(jié)構(gòu)已模塊化,而為

了避免在軟件模塊之間出現(xiàn)錯誤的交叉作用,需要設(shè)計強大的存儲區(qū)保護功能,同時也有利

于軟件診斷。

(3)可擴展的處理器結(jié)構(gòu),以能最迅速地開展出滿足應(yīng)用的最高性能的嵌入式微處

理器。

(4)嵌入式微處理器必須功耗很低,尤其是用于便攜式的無線及移動的計算和通信設(shè)備

中靠電池供電的嵌入式系統(tǒng)更是如此,如需要功耗只有mW甚至NW級。

嵌入式計算機系統(tǒng)同通用型計算機系統(tǒng)相比具有以下特點:

(1)嵌入式系統(tǒng)通常是面向特定應(yīng)用的嵌入式CPU與通用型的最大不同就是嵌入式CPU

大多工作在為特定用戶群設(shè)計的系統(tǒng)中,它通常都具有低功耗、體積小、集成度高等特點,

能夠把通用CPU中許多由板卡完成的任務(wù)集成在芯片內(nèi)部,從而有利于嵌入式系統(tǒng)設(shè)計趨于

小型化,移動能力大大增強,跟網(wǎng)絡(luò)的耦合也越來越緊密。

(2)嵌入式系統(tǒng)是將先進的計算機技術(shù)、半導(dǎo)體技術(shù)和電子技術(shù)與各個行業(yè)的具體應(yīng)用

相結(jié)合后的產(chǎn)物。這一點就決定了它必然是一個技術(shù)密集、資金密集、高度分散、不斷創(chuàng)新

的知識集成系統(tǒng)。

(3)嵌入式系統(tǒng)的硬件和軟件都必須高效率地設(shè)計,量體裁衣、去除冗余,力爭在同樣

的硅片面積上實現(xiàn)更高的性能,這樣才能在具體應(yīng)用中對處理器的選擇更具有競爭力

(4)嵌入式系統(tǒng)和具體應(yīng)用有機地結(jié)合在一起,它的升級換代也是和具體產(chǎn)品同步進

行,因此嵌入式系統(tǒng)產(chǎn)品一旦進入市場,具有較長的生命周期。

(5)為了提高執(zhí)行速度和系統(tǒng)可靠性,嵌入式系統(tǒng)中的軟件一般都固化在存儲器芯片或

單片機本身中,而不是存貯于磁盤等載體中。

(6)嵌入式系統(tǒng)本身不具備自舉開發(fā)能力,即使設(shè)計完成以后用戶通常也是不能對其中

的程序功能進行修改的,必須有一套開發(fā)工具和環(huán)境才能進行開發(fā)。

1.2嵌入式處理器

嵌入式系統(tǒng)的核心部件是各種類型的嵌入式處理器,目前據(jù)不完全統(tǒng)計,全世界嵌入式

處理器的品種總量已經(jīng)超過1000多種,流行體系結(jié)構(gòu)有30幾個系列,其中8051體系的占

有多半。生產(chǎn)8051單片機的半導(dǎo)體廠家有20多個,350共多種衍生產(chǎn)品,僅Philips就有

近100種。現(xiàn)在幾乎每個半導(dǎo)體制造商都生產(chǎn)嵌入式處理器,越來越多的公司有自己的處理

器設(shè)計部門。嵌入式處理器的尋址空間一般從64kB至IJ16MB,處理速度從0.1MIPS到2000

MIPS,常用封裝從8個引腳到144個引腳。根據(jù)其現(xiàn)狀,嵌入式計算機可以分成下面幾類.

(1)嵌入式微處理器(EmbeddedMicroprocessorUnit,EMPU)

嵌入式微處理器的基礎(chǔ)是通用計算機中的CPU。在應(yīng)用中,將微處理器裝配在專門設(shè)計

的電路板上,只保留和嵌入式應(yīng)用有關(guān)的母板功能,這樣可以大幅度減小系統(tǒng)體積和功耗。

為了滿足嵌入式應(yīng)用的特殊要求,嵌入式微處理器雖然在功能上和標準微處理器基本是一樣

的,但在工作溫度、抗電磁干擾、可靠性等方面一般都做了各種增強。和工業(yè)控制計算機相

比,嵌入式微處理器具有體積小、重量輕、成本低、可靠性高的優(yōu)點,但是在電路板上必須

包括ROM、RAM、總線接口、各種外設(shè)等器件,從而降低了系統(tǒng)的可靠性,技術(shù)保密性也較

差。嵌入式微處理器及其存儲器、總線、外設(shè)等安裝在一塊電路板上,稱為單板計算機。如

STD-BUS,PC104等。近年來,德國、日本的一些公司又開發(fā)出了類似“火柴盒”式名片大

小的嵌入式計算機系列OEM產(chǎn)品。嵌入式處理器目前主要有Aml86/88、386EX、SC-400,Power

PC、68000、MIPS、ARM系列等。

(2)嵌入式微控制器(MicrocontrollerUnit,MCU)

嵌入式微控制器又稱單片機,顧名思義,就是將整個計算機系統(tǒng)集成到一塊芯片中。嵌

入式微控制器一般以某一種微處理器內(nèi)核為核心,芯片內(nèi)部集成ROM/EPROM、RAM、總線、總

線邏輯、定時/計數(shù)器、WatchDog、I/O、串行口、脈寬調(diào)制輸出、A/D、D/A、FlashRAM、

EEPROM等各種必要功能和外設(shè)。為適應(yīng)不同的應(yīng)用需求,一般一個系列的單片機具有多種

衍生產(chǎn)品,每種衍生產(chǎn)品的處理器內(nèi)核都是一樣的,不同的是存儲器和外設(shè)的配置及封裝。

這樣可以使單片機最大限度地和應(yīng)用需求相匹配,功能不多不少,從而減少功耗和成本。

和嵌入式微處理器相比,微控制器的最大特點是單片化,體積大大減小,從而使功耗

和成本下降、可靠性提高。微控制器是目前嵌入式系統(tǒng)工業(yè)的主流。微控制器的片上外設(shè)資

源一般比較豐富,適合于控制,因此稱微控制器。

嵌入式微控制器目前的品種和數(shù)量最多,比較有代表性的通用系列包括8051、P51XA、

MCS-25KMCS-96/196/296,C166/167,MC68HC05/11/12/16,68300等。另外還有許多半通

用系列如:支持USB接口的MCU8XC930/931、C540、C541;支持I2C、CAN-Bus、LCD及眾多

專用MCU和兼容系列。目前MCU占嵌入式系統(tǒng)約70%的市場份額。特別值得注意的是近年

來提供X86微處理器的著名廠商AMD公司,將Aml86CC/CU/CU等嵌入式處理器稱之為

Microcontroller,MOTOROLA公司把以PowerPC為基礎(chǔ)的PPC505和PPC555亦列入單

片機行列。TI公司亦將其TMS320c2XXX系列DSP做為MCU進行推廣。

(3)嵌入式DSP處理器(EmbeddedDigitalSignalProcessor,EDSP)

(4)嵌入式片上系統(tǒng)(SystemOnChip)

隨著EDI的推廣和VLSI設(shè)計的普及化,及半導(dǎo)體工藝的迅速發(fā)展,在一個硅片上實現(xiàn)

一個更為復(fù)雜的系統(tǒng)的時代已來臨,這就是SystemOnChip(SOC)?各種通用處理器內(nèi)核將

作為SOC設(shè)計公司的標準庫,和許多其它嵌入式系統(tǒng)外設(shè)一樣,成為VLSI設(shè)計中一種標準

的器件,用標準的VHDL等語言描述,存儲在器件庫中。用戶只需定義出其整個應(yīng)用系統(tǒng),

仿真通過后就可以將設(shè)計圖交給半導(dǎo)體工廠制作樣品。這樣除個別無法集成的器件以外,整

個嵌入式系統(tǒng)大部分均可集成到一塊或幾塊芯片中去,應(yīng)用系統(tǒng)電路板將變得很簡潔,對于

減小體積和功耗、提高可靠性非常有利。

SOC可以分為通用和專用兩類。通用系列包括Infineon的TriCore,Motorola的

M-Core,某些ARM系列器件,Echelon和Motorola聯(lián)合研制的Neuron芯片等。專用SOC一

般專用于某個或某類系統(tǒng)中,不為一般用戶所知。一個有代表性的產(chǎn)品是Philips的Smart

XA,它將XA單片機內(nèi)核和支持超過2048位復(fù)雜RSA算法的CCU單元制作在一塊硅片上,形

成一個可加載JAVA或C語言的專用的SOC,可用于公眾互聯(lián)網(wǎng)如Internet安全方面。

1.3嵌入式操作系統(tǒng)

嵌入式系統(tǒng)是以應(yīng)用為中心,軟硬件可裁減的,適用于對功能、可靠性、成本、體積、

功耗等綜合性嚴格要求的專用計算機系統(tǒng)。具有軟件代碼小、高度自動化、響應(yīng)速度快等特

點,特別適合于要求實時和多任務(wù)的體系。嵌入式系統(tǒng)主要由嵌入式處理器、相關(guān)支撐硬

件、嵌入式操作系統(tǒng)及應(yīng)用軟件系統(tǒng)等組成,它是可獨立工作的“器件”。

1.3.1嵌入式操作系統(tǒng)的發(fā)展

作為嵌入式系統(tǒng)(包括硬、軟件系統(tǒng))極為重要的組成部分的嵌入式操作系統(tǒng),通常包

括與硬件相關(guān)的底層驅(qū)動軟件、系統(tǒng)內(nèi)核、設(shè)備驅(qū)動接口、通信協(xié)議、圖形界面、標準化瀏

覽器等。嵌入式操作系統(tǒng)具有通用操作系統(tǒng)的基本特點,如能夠有效管理越來越復(fù)雜的系統(tǒng)

資源;能夠把硬件虛擬化,使得開發(fā)人員從繁忙的驅(qū)動程序移植和維護中解脫出來;能夠

提供庫函數(shù)、驅(qū)動程序、工具集以及應(yīng)用程序。與通用操作系統(tǒng)相比較,嵌入式操作系統(tǒng)在

系統(tǒng)實時高效性、硬件的相關(guān)依賴性、軟件固態(tài)化以及應(yīng)用的專用性等方面具有較為突出的

特點。嵌入式操作系統(tǒng)伴隨著嵌入式系統(tǒng)的發(fā)展經(jīng)歷了四個比較明顯的階段:

第一階段:無操作系統(tǒng)的嵌入算法階段,以單芯片為核心的可編程控制器形式的系統(tǒng),

具有與監(jiān)測、伺服、指示設(shè)備相配合的功能。應(yīng)用于一些專業(yè)性極強的工業(yè)控制系統(tǒng)中,通

過匯編語言編程對系統(tǒng)進行直接控制,運行結(jié)束后清除內(nèi)存。系統(tǒng)結(jié)構(gòu)和功能都相對單一,

處理效率較低,存儲容量較小,幾乎沒有用戶接口。

第二階段:以嵌入式CPU為基礎(chǔ)、簡單操作系統(tǒng)為核心的嵌入式系統(tǒng)。CPU種類繁多,

通用性比較差;系統(tǒng)開銷小,效率高;一般配備系統(tǒng)仿真器,操作系統(tǒng)具有一定的兼容性和

擴展性;應(yīng)用軟件較專業(yè),用戶界面不夠友好;系統(tǒng)主要用來控制系統(tǒng)負載以及監(jiān)控應(yīng)用程

序運行。

第三階段:通用的嵌人式實時操作系統(tǒng)階段,以嵌入式操作系統(tǒng)為核心的嵌入式系統(tǒng)。

能運行于各種類型的微處理器上,兼容性好;內(nèi)核精小、效率高,具有高度的模塊化和擴展

性;具備文件和目錄管理、設(shè)備支持、多任務(wù)、網(wǎng)絡(luò)支持、圖形窗口以及用戶界面等功能;

具有大量的應(yīng)用程序接口(API);嵌入式應(yīng)用軟件豐富。

第四階段:以基于Intemet為標志的嵌入式系統(tǒng)。這是一個正在迅速發(fā)展的階段。目前

大多數(shù)嵌入式系統(tǒng)還孤立于Inlemet之外,但隨著Intemet的發(fā)展以及Intemet技術(shù)與信息

家電、工業(yè)控制技術(shù)等結(jié)合日益密切,嵌入式設(shè)備與Intemet的結(jié)合將代表著嵌入式技術(shù)的

真正未來。

1.3.2實時操作系統(tǒng)

嵌入式實時操作系統(tǒng)在目前的嵌入式應(yīng)用中用得越來越廣泛,尤其在功能復(fù)雜、系統(tǒng)龐

大的應(yīng)用中顯得愈來愈重要。

(1),嵌人式實時操作系統(tǒng)提高了系統(tǒng)的可靠性。在控制系統(tǒng)中,出于安全方面的考慮,

要求系統(tǒng)起碼不能崩潰,而且還要有自愈能力。不僅要求在硬件設(shè)計方面提高系統(tǒng)的可靠性

和抗干擾性,而且也應(yīng)在軟件設(shè)計方面提高系統(tǒng)的抗干擾性,盡可能地減少安全漏洞和不可

靠的隱患。長期以來的前后臺系統(tǒng)軟件設(shè)計在遇到強干擾時,使得運行的程序產(chǎn)生異常、出

錯、跑飛,甚至死循環(huán),造成了系統(tǒng)的崩潰。

而實時操作系統(tǒng)管理的系統(tǒng),這種干擾可能只是引起若干進程中的一個被破壞,可以通過系

統(tǒng)運行的系統(tǒng)監(jiān)控進程對其進行修復(fù)。通常情況下,這個系統(tǒng)監(jiān)視進程用來監(jiān)視各進程運行

狀況,遇到異常情況時采取一些利于系統(tǒng)穩(wěn)定可靠的措施,如把有問題的任務(wù)清除掉。

(2).提高了開發(fā)效率,縮短了開發(fā)周期。在嵌入式實時操作系統(tǒng)環(huán)境下,開發(fā)一個復(fù)雜

的應(yīng)用程序,通??梢园凑哲浖こ讨械慕怦钤瓌t將整個程序分解為多個任務(wù)模塊。每個任

務(wù)模塊的調(diào)試、修改幾乎不影響其他模塊。商業(yè)軟件一般都提供了良好的多任務(wù)調(diào)試環(huán)境。

(3).嵌入式實時操作系統(tǒng)充分發(fā)揮了32位CPU的多任務(wù)潛力。32位CPU比8、16位CPU

快,另外它本來是為運行多用戶、多任務(wù)操作系統(tǒng)而設(shè)計的,特別適于運行多任務(wù)實時系統(tǒng)。

32位CPU采用利于提高系統(tǒng)可靠性和穩(wěn)定性的設(shè)計,使其更容易做到不崩潰。例如,CPU運

行狀態(tài)分為系統(tǒng)態(tài)和用戶態(tài)。將系統(tǒng)堆棧和用戶堆棧分開,以及實時地給出CPU的運行狀態(tài)

等,允許用戶在系統(tǒng)設(shè)計中從硬件和軟件兩方面對實時內(nèi)核的運行實施保護。如果還是采用

以前的前后臺方式,則無法發(fā)揮32位CPU的優(yōu)勢。從某種意義上說,沒有操作系統(tǒng)的計算

機(裸機)是沒有用的。在嵌入式應(yīng)用中,只有把CPU嵌入到系統(tǒng)中,同時又把操作系統(tǒng)嵌

入進去,才是真正的計算機嵌入式應(yīng)用。

1.3.3嵌入式操作系統(tǒng)選型

當我們在設(shè)計信息電器、數(shù)字醫(yī)療設(shè)備等嵌入式產(chǎn)品時,嵌入式操作系統(tǒng)的選擇至關(guān)重

要。一般而言,在選擇嵌入式操作系統(tǒng)時,可以遵循以下原則。總的來說,就是“做加法還

是做減法”的問題.

市場進入時間制定產(chǎn)品時間表與選擇操作系統(tǒng)有關(guān)系,實際產(chǎn)品和一般演示是不同的。

目前是Windows程序員可能是人力資源最豐富的?,F(xiàn)成資源最多的也就可能是WinCE。

使用WinCE能夠很快進入市場。因為WinCE+X86做產(chǎn)品實際上是在做減法,去掉你不的功

能,能很快出產(chǎn)品,但伴隨的可能是成本高,核心競爭力差。而某些高效的操作系統(tǒng)可能由

于編程人員缺乏,或由于這方面的技術(shù)積累不夠,影響開發(fā)進度。

可移植性操作系統(tǒng)相關(guān)性。當進行嵌入式軟件開發(fā)時,可移植性是要重點考慮的問題。良好

的軟件移植性應(yīng)該比較好,可以在不同平臺、不同系統(tǒng)上運行,跟操作系統(tǒng)無關(guān)。軟件的通

用性和軟件的性能通常是矛盾的。即通用以損失某些特定情況下的優(yōu)化性能為代價。很難設(shè)

想開發(fā)一個嵌入式瀏覽器而僅能在某一特定環(huán)境下應(yīng)用。

反過來說,當產(chǎn)品與平臺和操作系統(tǒng)緊密結(jié)合時,往往你的產(chǎn)品的特色就蘊含其中。

可利用資源產(chǎn)品開發(fā)不同于學術(shù)課題研究,它是以快速、低成本、高質(zhì)量的推出適合用戶需

求的產(chǎn)品為目的的。集中精力研發(fā)出產(chǎn)品的特色,其他功能盡量由操作系統(tǒng)附加或采用第三

方產(chǎn)品,此操作系統(tǒng)的可利用資源對于選型是一個重要參考條件。因Linux和WinCE都有

大量的資源可以利用,這是他們被看好的重要原因。其他有些實時操作系統(tǒng)由于比較封閉,

開發(fā)時可以利用的資源比較少,因此多數(shù)功能需要臼己獨立開發(fā)。從而影響開發(fā)進度。近來

的市場需求顯示,越來越多的嵌入式系統(tǒng),均要求提供全功能的Web瀏覽器。而這要求有一

個高性能、高可靠的GUI的支持。

系統(tǒng)定制能力信息產(chǎn)品不同于傳統(tǒng)PC的Wintel結(jié)構(gòu)的單純性,用戶的需求是千差萬別

的,硬件平臺也都不一樣,所以對系統(tǒng)的定制能力提出了要求。要分析產(chǎn)品是否對系統(tǒng)底層

有改動的需求,這種改動是否伴隨著產(chǎn)品特色,Linux由于其源代碼開放的天生魅力,在定

制能力方面具有優(yōu)勢。隨著WinCE3.0原碼的開放,以及微軟在嵌入式領(lǐng)域力度的加強,其

定制能力會有所提升。成本成本是所有產(chǎn)品不得不考慮的問題。操作系統(tǒng)的選擇會對成本有

什么影響呢?

Linux免費,WinCE等商業(yè)系統(tǒng)需要支付許可證使用費,但這都不是問題的答案。成

本是需要綜合權(quán)衡以后進行考慮的一一選擇某一系統(tǒng)可能會對其他一系列的因素產(chǎn)生影響,

如對硬件設(shè)備的選型、人員投入、以及公司管理和與其他合作伙伴的共同開發(fā)之間的溝通等

許多方面的影響。中文內(nèi)核支持國內(nèi)產(chǎn)品需要對中文的支持。由于操作系統(tǒng)多數(shù)是采用西文

方式,是否支持雙字節(jié)編碼方式,是否遵循GBK,GB18030等各種國家標準,是否支持中文

輸入與處理,是否提供第三方中文輸入接口是針對國內(nèi)用戶的嵌入式產(chǎn)品的必需考慮的重要

因素。

上面提到用WinCE+x86出產(chǎn)品是減法,這實際上就是所謂PC家電化;另外一種做法是

加法,利用家電行業(yè)的硬件解決方案(絕大部分是非x86的)加以改進,加上嵌入式操作系

統(tǒng),再加上應(yīng)用軟件。這是所謂家電PC化的做法,這種加法的優(yōu)勢是成本低,特色突出,

缺點是產(chǎn)品研發(fā)周期長,難度大(需要深入了解硬件和操作系統(tǒng))。如果選擇這種做法,Linux

是一個好選擇,它讓你能夠深入

到系統(tǒng)底層,如果你愿意并且有能力。

1.3.4幾種代表性嵌入式操作系統(tǒng)比較

(1)VxWorks

VxWorks操作系統(tǒng)是美國WindRiver公司于1983年設(shè)計開發(fā)的一種嵌入式實時操作系

統(tǒng)(RT0S),是Tornado嵌入式開發(fā)環(huán)境的關(guān)鍵組成部分。良好的持續(xù)發(fā)展能力、高性能的

內(nèi)核以及友好的用戶開發(fā)環(huán)境,在嵌人式實時操作系統(tǒng)領(lǐng)域逐漸占據(jù)一席之地。

VxWorks具有可裁剪微內(nèi)核結(jié)構(gòu);高效的任務(wù)管理;靈活的任務(wù)間通訊;微秒級的中斷處理;

支持POSIX1003.1b實時擴展標準;支持多種物理介質(zhì)及標準的、完整的TCP/IP網(wǎng)絡(luò)協(xié)議

等。然而其價格昂貴。由于操作系統(tǒng)本身以及開發(fā)環(huán)境都是專有的,價格一般都比較高,通

常需花費10萬元人民幣以上才能建起一個可用的開發(fā)環(huán)境,對每一個應(yīng)用一般還要另外收

取版稅。一般不通供源代碼,只提供二進制代碼。由于它們都是專用操作系統(tǒng),需要專門的

技術(shù)人員掌握開發(fā)技術(shù)和維護,所以軟件的開發(fā)和維護成本都非常高。支持的硬件數(shù)量有限。

(2)WindowsCE

WindowsCE與Windows系列有較好的兼容性,無疑是WindowsCE推廣的一大優(yōu)勢。

其中WinCE3.0是一種針對小容量、移動式、智能化、32位、了解設(shè)備的模塊化實時嵌人式

操作系統(tǒng)。為建立針對掌上設(shè)備、無線設(shè)備的動態(tài)應(yīng)用程序和服務(wù)提供了一種功能豐富的操

作系統(tǒng)平臺,它能在多種處理器體系結(jié)構(gòu)上運行,并且通常適用于那些對內(nèi)存占用空間具有

一定限制的設(shè)備。它是從整體上為有限資源的平臺設(shè)計的多線程、完整優(yōu)先權(quán)、多任務(wù)的操

作系統(tǒng)。它的模塊化設(shè)計允許它對從掌上電腦到專用的工業(yè)控制器的用戶電子設(shè)備進行定

制。操作系統(tǒng)的基本內(nèi)核需要至少200KB的ROM。由于嵌入式產(chǎn)品的體積、成本等方面有較

嚴格的要求,所以處理器部分占用空間應(yīng)盡可能的小。系統(tǒng)的可用內(nèi)存和外存數(shù)量也要受限

制,而嵌入式操作系統(tǒng)就運行在有限的內(nèi)存(一般在ROM或快閃存儲器)中,因此就對操

作系統(tǒng)的規(guī)模、效率等提出了較高的要求。從技術(shù)角度上講,WindowsCE作為嵌入式操作

系統(tǒng)有很多的缺陷:沒有開放源代碼,使應(yīng)用開發(fā)人員很難實現(xiàn)產(chǎn)品的定制;在效率、功耗

方面的表現(xiàn)并不出色,而且和Windows一樣占用過的系統(tǒng)內(nèi)存,運用程序龐大;版權(quán)許可費

也是廠商不得不考慮的因素。

(3)嵌入式Linux

這是嵌入式操作系統(tǒng)的一個新成員,其最大的特點是源代碼公開并且遵循GPL協(xié)議,在

近一年多以來成為研究熱點,據(jù)IDG預(yù)測嵌入式Linux將占未來兩年的嵌入式操作系統(tǒng)份額

的50雙由于其源代碼公開,人們可以任意修改,以滿足自己的應(yīng)用,并且查錯也很容易。

遵從GPL,無須為每例應(yīng)用交納許可證費。有大量的應(yīng)用軟件可用。其中大部分都遵從GPL,

是開放源代碼和免費的。可以稍加修改后應(yīng)用于用戶自己的系統(tǒng)。有大量的免費的優(yōu)秀的開

發(fā)工具,且都遵從GPL,是開放源代碼的。有龐大的開發(fā)人員群體。無需專門的人才,只要

懂Unix/Linux和C語言即可。隨著Linux在中國的普及,這類人才越來越多。所以軟件的

開發(fā)和維護成本很低。優(yōu)秀的網(wǎng)絡(luò)功能,這在Internet時代尤其重要。

穩(wěn)定一一這是Linux本身具備的一個很大優(yōu)點。內(nèi)核精悍,運行所需資源少,十分適合

嵌入式應(yīng)用。支持的硬件數(shù)量龐大。嵌入式Linux和普通Linux并無本質(zhì)區(qū)別,PC上用到的

硬件嵌入式Linux幾乎都支持。而且各種硬件的驅(qū)動程序源代碼都可以得到,為用戶編寫自

己專有硬件的驅(qū)動程序帶來很大方便。在嵌入式系統(tǒng)上運行Linux的一個缺點是Linux體系

提供實時性能需要添加實時軟件模塊。而這些模塊運行的內(nèi)核空間正是操作系統(tǒng)實現(xiàn)調(diào)度策

略、硬件中斷異常和執(zhí)行程序的部分。由于這些實時軟件模塊是在內(nèi)核空間運行的,因此代

碼錯誤可能會破壞操作系統(tǒng)從而影響整個系統(tǒng)的可靠性,這對于實時應(yīng)用將是一個非常嚴重

的弱點。

(4)uC/OS—II

PC/OS一II是著名的源代碼公開的實時內(nèi)核,是專為嵌入式應(yīng)用設(shè)計的,可用于8位,

16位和32位單片機或數(shù)字信號處理器(DSP)。它是在原版本uC/OS的基礎(chǔ)上做了重大改

進與升級,并有了近十年的使用實踐,有許多成功應(yīng)用該實時內(nèi)核的實例。它的主要特點如

下:

①公開源代碼,容易就能把操作系統(tǒng)移植到各個不同的硬件平臺上。

②.可移植性,絕大部分源代碼是用C語言寫的,便于移植到其他微處理器上。

③可固化。

④可裁剪性,有選擇的使用需要的系統(tǒng)服務(wù),以減少斗所需的存儲空間。

⑤占先式,完全是占先式的實時內(nèi)核,即總是運行就緒條件下優(yōu)先級最高的任務(wù)。

⑥多任務(wù),可管理64個任務(wù),任務(wù)的優(yōu)先級必須是不同的,不支持時間片輪轉(zhuǎn)調(diào)度法。

⑦可確定性,函數(shù)調(diào)用與服務(wù)的執(zhí)行時間具有其可確定性,不依賴于任務(wù)的多少。

⑧實用性和可靠性,成功應(yīng)用該實時內(nèi)核的實例,是其實用性和可靠性的最好證據(jù)。由于

uc/os-n僅是一個實時內(nèi)核,這就意味著它不像其他實時存在系統(tǒng)那樣提供給用戶的只

是一些API函數(shù)接口,還有很多工作需要用戶自己去完成。在嵌入式應(yīng)用中,使用實時操

作系統(tǒng)(RTOS)是當前嵌入式應(yīng)用的一個特點,一種趨勢,也是單片機應(yīng)用從低水平向高水

平的一個進步。在實際的應(yīng)用中,根據(jù)不同的要求和條件選擇合適的操作系統(tǒng),使開發(fā)工作

更容易,設(shè)計出更完美的嵌入式系統(tǒng)。

第二章MDK開發(fā)環(huán)境的使用

2.1MDK開發(fā)環(huán)境介紹

Keil是業(yè)界最受歡迎的51單片機開發(fā)工具之一,它擁有流暢的用戶界面與強大的仿

真功能。RealViewMDKRealViewMicrocontro11erDevelopmentKit(簡稱為或者MDK)。

將ARM開發(fā)工具RealViewDevelopmentSuite(簡稱為RVDS)的編譯器RVCT與Keil的工程

管理、調(diào)試仿真工具集成在一起,成為新的開發(fā)環(huán)境。RealViewMDK開發(fā)工具源自德國Keil公

司,被全球超過10萬的嵌入式開發(fā)工程師驗證和使用,是ARM公司目前最新推出的針對各種

嵌入式處理器的軟件開發(fā)工具。RealViewMDK包括uVision3集成開發(fā)環(huán)境與RealView編譯

器。支持ARM7、ARM9和最新的Cortex713核處理器,自動配置啟動代碼,集成Flash燒寫模

塊,強大的Simulation設(shè)備模擬,性能分析等功能。與ARM之前的工具包ADS等相比,RealView

編譯器的最新版本可將性能改善超過20%。

2.1.1MDK的特點

MDK用于開發(fā)ARM7、ARM9和Cortex-M3的應(yīng)用程序其特點如下:功能強大的源代碼編

輯器;可根據(jù)開發(fā)工具配置的設(shè)備數(shù)據(jù)庫;用于創(chuàng)建和維護工程的工程管理器;集匯編、

編譯和鏈接過程于一體的編譯工具;用于設(shè)置開發(fā)工具配置的對話框;真正集成高速CPU

及片上外設(shè)模擬器的源碼級調(diào)試器;高級GDI接口,可用于目標硬件的軟件調(diào)試和Keil

ULINK仿真器的連接;用于下載應(yīng)用程序到FlashROM中的Flash編程器;完善的開發(fā)工具

手冊、設(shè)備數(shù)據(jù)手冊和用戶向?qū)А?/p>

2.1.2MDK的目錄結(jié)構(gòu)與界面結(jié)構(gòu)

C:\KEIL\ARX\BIN11VlsgARNtX具嚷的可執(zhí)行文忤

C:\KfiL\AAM\INCK"C的電臺文件及“這的08片雷包臺X杵

C:\KfIl\ARM\AD5ARMADSMVEZI具般由儲程及.目坳文件

C:\Kfn\AftM\GNUGXV工且硬例評程及型文件

C:\K£lLURM\FtastlKHVUNK2USBJTAG如yFbsMfi程箕法文忤

C:\Ktll\AftM\HLP舊AR\(工具I1及的在我銷骷義也

C:\Kni\ARM\_\Startw恃定&笛的啟動又件

C:\KEIl\ARM\...XFumples普于MGGNUorAD5?-??g

C:\KHl\ARM\\BowdsS?KedC.GXUorADStf]評估收例程

圖2.1界面結(jié)構(gòu)

2.1.3MDK的開發(fā)流程

使用MDK來開發(fā)ARM的程序,需要新建一個工程,從設(shè)備庫中選擇目標芯片,配置工程編

譯器環(huán)境;用C或匯編編寫源文件;編譯目標應(yīng)用程序;修改源程序中的錯誤;測試鏈接應(yīng)

用程序。

(1)創(chuàng)建工程,利用uVision創(chuàng)建應(yīng)用程序,首先要選擇開發(fā)工具集。選擇Project—>Manage

—>Components,Environmentando

圖2.2配置界面

創(chuàng)建一個新的工程Project—>NewuVisionProject

1”rrajart

vVittad

圖2.3創(chuàng)建工程

保存工程名稱,例如:GEC2440_LED_ASM.

k/CEC2440LEDASIBiaionJ

Etl?(d>l力bJVCSg?lp

圖2.4保存工程

對啟動代碼S3C2440.s進行配置雙擊“S3C2440.s”文件,彈出窗口選擇

"ConfigurationWizard"通過圖形化的形式對生成的默認啟動代碼進行個性化的配置,包

括:堆棧,時鐘管理,中斷向量表,看門狗時鐘,存儲器控制,I/O配置等。

圖2.5加載啟動代碼

創(chuàng)建源文件File->New輸入源代碼后保存源文件LED.S,同理創(chuàng)建源文件DELAY.S,

點擊源文件組,點擊鼠標右鍵選擇AddFilesto"”添加LED.S和DELAY.S。

CEC2440.LED.ASI?isionJHt2]

RdiQ]fa?v£^4?j*ct工001vSVCS

CEN

Ctrl+O

Q?ic

QCtrl*S

34輯

入SwM

FVO?

OS2.AU

D?nc?9?t?bts?

License|?ck*c?*?nt

F^intS*<up

2rmt—

PrintPr?Il?v

圖2.6創(chuàng)建、添加源文件

分散加載機制允許為鏈接器指定映像的存儲器映射信息,可實現(xiàn)對映像組件分組和布局

的全面控制。分散加載文件使用的場合,復(fù)雜存儲器映射必須放在多個不同存儲器區(qū)域的代

碼和數(shù)據(jù)需要關(guān)于將哪個節(jié)放在哪個存儲器空間的詳細指令。不同存儲器類型,包含閃存儲

器、ROM、SDRAM和快速SRAM。分散載入描述可以將代碼和數(shù)據(jù)放置在最適合的存儲器類型

中。例如,中斷代碼可能放在快速SRAM中,以改進中斷響應(yīng)時間,而不頻繁使用的配置信

息可能放在較慢的閃速存儲器中。

存儲器映射I/O分散載入描述可以將數(shù)據(jù)節(jié)放在存儲器映射中的精確地址,便于訪問。

位于固定位置的函數(shù)可以將函數(shù)放在存儲器中的同一個位置,即使周圍的應(yīng)用程序已經(jīng)被修

改并重新編譯。

使用符號識別堆和??梢詾槎押蜅5奈恢枚x符號,鏈接應(yīng)用程序時可以指定該封閉模塊的

位置。

簡單的分散加載文件:

Startaddressfew

loadregton

Maximum沁。of

lo*dregion

Startfoe

execteuton

NatneofftrslLO*D_ROM0x00000x8000

execregion

Maximims<zeofmts

execre,on

?EXEC-R0M0x00000x8000

NatneofsecorMS*OR0)?Placeallcodeand

ex*cregionROdataF。the

execyon

.0x100000x6000.

rAaximumsizeof

Startofsecond?JRWiZI).thnenreregion

execregion

PlaceanRWandZidata

Intoir?sexec,egk>n

圖2.7簡單的分散加載文件

簡單的存儲器映射如下圖所示:

復(fù)雜分散加載文件:

Startaddressforfirstloadregion

LOAD_ROM_10x0000.

(Startaddressforfirstexecregion

EXEJR0M」0x0000-

{PlaceallcodeandROdatafrom

programi.o(+R0)-programl.ointothisexecregion

)

Startaddressforthisexecregion

DRAM0x18000*0x8000-

(Maximumsizeofthisexecregion

}programi.oC+RW,+ZI)

PlaceallRWandZIdatafrom

programi,ointothisexecregion

L0AD_R0M_20x4000,

{Startaddressforsecondloadregion

EXEJR0M_20x4000

(

}program2.o(+R0).PlaceallcodeandROdatafrom

program2.ointothisexecregion

SRAM0x80000x8000

(PlaceallRWandZIdatafrom

program2.o(+RW.+ZI)-program?.ointothisexecregion

)

)

圖2.9復(fù)雜分散加載文件

復(fù)雜存儲器映射:

圖2.10復(fù)雜存儲器隱射

2.1.4MDK的編譯器優(yōu)化級別

-00:最小優(yōu)化。編譯器執(zhí)行最簡單的優(yōu)化,調(diào)試視圖不會減弱。當調(diào)試可用,該選項會

給出最好的調(diào)試視圖。

-01:受限制優(yōu)化。當調(diào)試可用,該選項給出一個較好的調(diào)試視圖,并有很好的代碼密度。

-02:高度優(yōu)化。這是默認的優(yōu)化級別。當調(diào)試可用,該選項給出一個較差的調(diào)試視圖。

-03:最大優(yōu)化。這是最具挑戰(zhàn)性的優(yōu)化。它權(quán)衡選項-Ospace或-Otime。指定這個選項

將默認使能雙匯編文件(命令行中指定)。當調(diào)試可有,該選項給出一個調(diào)試視圖。

圖2.11MDK的編譯器優(yōu)化

生成hex文件:鼠標點擊Project—>OptionsforTargetwtarget1"選中OUTPUT

標簽選中

CreateHEXFile點擊"OK”。

U-'KU.)

EllatinIMII£ii?<?If*】,

OptiMIforTarget'TargetI'

,T?rn<1Liitiof,Vv?e|C/C**|As*|LiiJnr|Utilitiet;

SatedfcUulugotI"M"ENCUIMK|(£C2M

?M?E7*rXG£QM7_LE0/5M

P廠

PBiotfteHanston

''^EQMD.LED>5MUI

圖2.12OUTPUT選項

鼠標點擊Project—>OptionsforTarget"targetl”選中USER標簽頁選中Runuser。

PragramsAfterBuild/Rebuild框中的Run#1加載文件D:\Keil\ARM\BIN40\fromelf.exe

在文件后面輸入命令:-bin-o./GEC2440_LED_ASM.bin./GEC2440_LED_ASM.axf

點擊“OK”,編譯后生成bin文件。

RunUserProgramsAfterBuild/Rebuild

BRunttl:RM\BIN40\fromelfex(-bin-o/GEC2440LEDASM.bin/GEC2440LEDASM.axPD0S16

rRunU2:rD0S16

3BeepWhenComplete「StartDebugging

生成庫文件*.lib

ADS為用戶提供下面的軟件,使用戶可以在軟件仿真的環(huán)境下或者在基于ARM的硬件環(huán)

境調(diào)試用戶應(yīng)用程序。

ARMulator這是一個ARM指令集仿真器,集成在ARM的調(diào)試器AXD中,它提供對ARM處

理器的指令集的仿真,為ARM和Thumb提供精確的模擬。用戶可以在硬件尚未做好的情況下,

開發(fā)程序代碼。

2.2調(diào)試工具J-link

J-Link是SEGGER公司為支持仿真ARM內(nèi)核芯片推出的JTAG仿真器。J-LinkARM具有以下

等主要特點:

(1)支持所有ARM7/ARM9內(nèi)核的芯片,以及cortexM3,包括Thumb模式

(2)支持ADS、IAR、KEIL、WINARM、RealView等幾乎所有的開發(fā)環(huán)境

(3)下載速度高達ARM7:600kB/s,ARM9:550kB/s,通過DCC最高可達800kB/s

(4)最高JTAG速度12MHz

(5)目標板電壓范圍1.2V-3.3V,5V兼容

(6)使用USB電源(但不對目標板供電)

(7)帶J-LinkTCP/IPserver,允許通過TCP/IP網(wǎng)絡(luò)使用J-Link

(8)J-Link支持ARM內(nèi)核:ARM7TDMI、ARM720T、ARM920T、ARM926EJ-S、ARM946E-S、ARM966E-S、

ARM11、Cortex-M3點擊光盤目錄:GEC2440(beta版本)\windows開發(fā)工具\JLINK驅(qū)動的文

件Setup_JLinkARM_V4081.exe進行安裝。

JJ

由inkQash

J-LinkARMJ-FlashABMKeil

V408kV408kuVision3

。

RA一L

2.2.1MDK的設(shè)置

(1)鼠標點擊Project—〉OptionsforTarget"targetl

(2)選中DEBUG標簽

(3)選擇RDIInterfaceDriver

(4)選擇initialitionFile加載Ext_RAM.ini

(5)點擊“OK

配置RDIInterfaceDriver

(1)鼠標點擊settings,進入RDIInterfaceDriverSetup串口

(2)加載\SEGGER\JLinkARM_V408k\JLinkRDI.dll文件,配置J-Link

(3)點擊“OK”

①選擇或快捷鍵Ctrl+F5或點擊;

②將程序下載到SDRAM中調(diào)試;

能圍?固研11?

查看通用寄存器中的內(nèi)容

1^1EileKditViProjectDebueFlashP

Address:10x56000050

0x56000050:00005500OOOOOOBF

ProyectWorkspace0x56000058:000000F000000000

0x56000060:0000000000007FFD

0x56000068:OOOOFCOO00000000

0x56000070:00000000000007FF

0x56000078:0000000000000000

0x56000080:0001033000000000

0x56000088:0000000000000000

0x56000090:0000000000000000

0x56000098:0000000000000000

0X560000A0:00000000OOFFFFFO

LL0X560000A8:000000000000000B

0X560000B0:3244000100000004

Hvqcnnnnpp?nnnnnnnnnnnnnnnn

on3[D:\GEC2440_LED_ASI\DELAY.S]

CFlishP?口ph.rtl"ToolsSVCSWindow

PortF(CPF)

Reset£P(guān)U

GPF

70

GPFCON:IIIIIIII

?ClockandPower

GPFDAT:|OxOOOOOOBFRTTTFTPPPP

InterruptController

GPRJP:|OxOOOOOOFOK7^i7i7rrrr

衛(wèi)I/OtortiPort(GPA)

Portm)

D?bu$Settings..Port(GPC)

-wr

Port(GPD)

中07C1T4)r0z#0x0仲

08bneDELAYPort(GPE)

movpc,lr

直Port(GPP)

\lextEditor/ConfigurationWi2{Port(GPG)

Port(GPM)

俄Disassemblyg)DELAY.S

E^ttrntlInterrupts

Addross0x56000050MiscellaneousControl

0x56000050:00CGeneralStatus

0x56000058:oouuuuyxrpuuuuuou

Symbols

畫后,回"嗎國M毅pL£ajeSensitive

69:

1^0x30000000EA00006BB0x30000104AddressT>P?

?0iHandlcrUndcf:handlertorVn4etin*dmodeGTC2440_LED_CApplication

■'0x30000004EAOOOO490x30000130

Runtm*Libr*ry

9X:HaixUvrSVI;handlertorSHIinterrupt

-0x3000086EA00004E

溫馨提示

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

評論

0/150

提交評論