版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1第1章嵌入式系統(tǒng)及應用開發(fā)概述1.1嵌入式系統(tǒng)的定義及特點1.2嵌入式系統(tǒng)的發(fā)展及應用1.3嵌入式系統(tǒng)的總體組成1.4常用的嵌入式處理器1.5常用的嵌入式操作系統(tǒng)1.6嵌入式系統(tǒng)的設計方法1.7嵌入式系統(tǒng)的應用開發(fā)1.8嵌入式系統(tǒng)的學習探討習題2
本章概括地闡述了嵌入式系統(tǒng)及應用開發(fā)的基本概念、基礎知識、基本方法等,包括嵌入式系統(tǒng)的定義、發(fā)展應用、總體組成、常用的嵌入式處理器、常用的嵌入式操作系統(tǒng)、嵌入式系統(tǒng)的設計方法、嵌入式系統(tǒng)的設計開發(fā)和嵌入式系統(tǒng)的學習探討等內(nèi)容。
31.1嵌入式系統(tǒng)的定義及特點
1.1.1嵌入式系統(tǒng)的定義
IEEE的定義:嵌入式系統(tǒng)是用來控制、監(jiān)控或者輔助操作機器、裝置、工廠等大規(guī)模系統(tǒng)的設備。我國通常定義:嵌入式系統(tǒng)(EmbeddedSystem)就是嵌入到目標體系中的專用計算機系統(tǒng)。嵌入性、專用性與計算機系統(tǒng)是嵌入式系統(tǒng)的3個基本要素。具體地講,嵌入式系統(tǒng)是指以應用為中心,以計算機技術為基礎,并且軟硬件可裁減,適用于應用系統(tǒng)對功能、可靠性、成本、體積、功耗有嚴格要求的專用計算機系統(tǒng)。4
1.1.2嵌入式系統(tǒng)的特點1.嵌入式系統(tǒng)是專用的計算機系統(tǒng)2.嵌入式系統(tǒng)須滿足系統(tǒng)應用環(huán)境的要求3.嵌入式系統(tǒng)需滿足對象系統(tǒng)的控制要求4.嵌入式系統(tǒng)是一個知識集成應用系統(tǒng)5.嵌入式系統(tǒng)具有較長的應用生命周期6.嵌入式系統(tǒng)軟件固化在非易失性存儲器中7.多數(shù)嵌入式系統(tǒng)具有實時性要求8.嵌入式系統(tǒng)設計需專用的開發(fā)環(huán)境和工具51.2嵌入式系統(tǒng)的發(fā)展應用1.嵌入式系統(tǒng)發(fā)展的4個階段
1)以單片機為核心的低級嵌入式系統(tǒng)主要特點是系統(tǒng)結構和功能單一,處理效率不高,存儲容量較小,用戶接口簡單或沒有用戶接口,但它使用簡單,成本低廉。
2)以嵌入式微處理器為基礎的初級嵌入式系統(tǒng)主要特點是處理器種類多,通用性較弱;系統(tǒng)效率高,成本低;操作系統(tǒng)具有兼容性、擴展性,但用戶界面簡單。
3)以嵌入式操作系統(tǒng)為標志的中級嵌入式系統(tǒng)主要特點是嵌入式系統(tǒng)能運行于各種不同嵌入式處理器上,兼容性好;操作系統(tǒng)內(nèi)核小、效率高,并且可任意裁剪;具有文件和目錄管理、多任務功能,支持網(wǎng)絡、具有圖形窗口以及良好的用戶界面;具有大量的應用程序接口,嵌入式應用軟件豐富。1.2.1嵌入式系統(tǒng)的發(fā)展64)以Internet為標志的高級嵌入式系統(tǒng)目前嵌入式系統(tǒng)大多孤立于Intemet,隨著網(wǎng)絡應用的不斷深入,隨著信息家電的發(fā)展,嵌入式系統(tǒng)的應用必將與Internet有機結合在一起,成為嵌入式系統(tǒng)發(fā)展的未來。基于32位/64位微處理器的嵌入式系統(tǒng)的優(yōu)點:①芯片內(nèi)外資源豐富,硬件系統(tǒng)簡單;②可運行各種操作系統(tǒng),降低了復雜系統(tǒng)應用程序開發(fā)的難度;可運行多種操作系統(tǒng),應用程序開發(fā)難度降低,系統(tǒng)人機界面友好;③系統(tǒng)數(shù)據(jù)處理能力強,控制精度高;④有成熟的開發(fā)工具,豐富的開發(fā)資源和資料;⑤32位/64位的嵌入式系統(tǒng)的開發(fā)人群不斷增多,有助于降低企業(yè)項目開發(fā)成本、保持開發(fā)的連續(xù)性。72.嵌入式系統(tǒng)的發(fā)展趨勢
1)嵌入式系統(tǒng)結構將更加復雜,硬件向集成化發(fā)展,軟件將逐漸PC化
2)嵌入式系統(tǒng)的小型化、智能化、網(wǎng)絡化、可視化、微功耗和低成本
3)不斷改善人機交互的手段,提供精巧的多媒體人機界面
4)云計算、可重構、虛擬化等技術被進一步應用到嵌入式系統(tǒng)
5)嵌入式軟件開發(fā)平臺化、標準化、系統(tǒng)可升級,代碼可復用將更受重視其中:云計算(Cloud)是將計算分布在大量的分布式計算機上,這樣我們只需要一個終端,就可以通過網(wǎng)絡服務來實現(xiàn)所需要的計算任務,甚至是超級計算任務??芍貥嬓允侵冈谝粋€系統(tǒng)中,其硬件模塊或(和)軟件模塊均能根據(jù)變化的數(shù)據(jù)流或控制流對系統(tǒng)結構或算法進行重新配置(或重新設置)。虛擬化是指計算機軟件在一個虛擬的平臺上而不是一個真實的硬件上運行。8
嵌入式系統(tǒng)具有非常廣闊的應用領域,是現(xiàn)代計算機技術改造傳統(tǒng)產(chǎn)業(yè)、提升多領域技術水平的有力主具,可以說嵌入式系統(tǒng)無處不在。其主要應用領域包括智能產(chǎn)品(智能儀表、智能和信息家電)、工業(yè)自動化(測控裝置、數(shù)控機床、數(shù)據(jù)采集與處理)、辦公自動化(通用計算機中的智能接口)、電網(wǎng)安全、電網(wǎng)設備檢測、石油化工、商業(yè)應用(電子秤,POS機,條碼識別機)、安全防范(防火、防盜、防泄漏等報警系統(tǒng))、網(wǎng)絡通信(路由器、網(wǎng)關、手機、PDA、無線傳感器網(wǎng)絡)、汽車電子與航空航天(汽車防盜報警器、汽車和飛行器黑匣子)以及軍事等各個領域,如圖1.1所示。1.2.2嵌入式系統(tǒng)的應用9圖1.1嵌入式系統(tǒng)的應用領域
101.3嵌入式系統(tǒng)的總體組成圖1.2基于控制領域的典型嵌入式系統(tǒng)111.3.1嵌入式系統(tǒng)的硬件圖1.3典型的嵌入式系統(tǒng)硬件組成121.中間層程序中間層程序主要為上層軟件提供了設備的操作接口,它包括硬件抽象層(HardwareAbstractionLayer,HAL)、板級支持包(BoardSupportPackage,BSP)以及設備驅動程序。
1)硬件抽象層硬件抽象層就是通過程序來控制處理器、I/O接口以及存儲器等所有硬件的操作,這樣使系統(tǒng)的設備驅動程序與硬件設備無關,提高了系統(tǒng)中的移植性。它包括相關硬件的初始化、數(shù)據(jù)的輸入/輸出操作、硬件設備的配置等操作。
2)板級支持包板級支持包主要是實現(xiàn)對嵌入式操作系統(tǒng)的支持,為上層的驅動程序提供訪問硬件設備寄存器的函數(shù)包。BSP實現(xiàn)的功能主要有:①系統(tǒng)啟動時對硬件初始化;②為驅動程序提供訪問硬件的手段,BootLoader便屬于此類。1.3.2嵌入式系統(tǒng)的軟件133)設備驅動程序設備的驅動程序為上層軟件提供調(diào)用的操作接口。驅動程序除了實現(xiàn)本的功能函數(shù)外(初始化、中斷響應、發(fā)送、接收等),還具備完善的錯誤處理函數(shù)。一個設備的驅動程序,就是一個函數(shù)和數(shù)據(jù)結構的集合或抽象數(shù)據(jù)類型,它創(chuàng)建了一個可用于計算機上所有硬件設備的通用函數(shù)接口,它的目的是實現(xiàn)一個簡單的管理設備的接口,操作系統(tǒng)內(nèi)核用這個接口請求驅動程序控制設備的I/O操作。Linux設備驅動程序的框架:Linux設備驅動程序與外界的接口可分為三個部分:①驅動程序與操作系統(tǒng)內(nèi)核的接口;②驅動程序與系統(tǒng)引導的接口;③驅動程序與設備的接口。設備驅動程序包括以下幾個組成部分:①驅動程序的注冊與注銷;②設備的打開與釋放;③設備的讀寫操作;④設備的控制操作;⑤設備的終端與輪詢操作。142.嵌入式操作系統(tǒng)嵌入式操作系統(tǒng)在復雜的嵌入式系統(tǒng)中發(fā)揮著非常重要的作用,有了嵌入式操作系統(tǒng),進程管理、進程間的通信、內(nèi)存管理、文件管理、驅動程序、網(wǎng)絡協(xié)議等方可實現(xiàn)。
3.應用軟件層應用軟件是在嵌入式操作系統(tǒng)支持下通過調(diào)用API函數(shù),結合實際應用編制的用戶軟件。如抄表系統(tǒng)的軟件、掌上信息查詢軟件等。15
嵌入式微處理器(EmbeddedMicrocomputerUnit,EMPU)、嵌入式微控制器(EmbeddedMicrocontrollerUnit,EMCU)嵌入式數(shù)字信號處理器(EmbeddedDigitalSignalProcessor,EDSP)嵌入式片上系統(tǒng)(SystemOnChip,SOC)嵌入式可編程片上系統(tǒng)(SystemOnaProgrammableChip,SOPC)。1.4常用的嵌入式處理器1.4.1嵌入式處理器的種類16
1.嵌入式微處理器嵌入式微處理器是由PC中的CPU演變而來的,與通用PC的微處理器不同的是,它只保留了與嵌入式應用緊密相關的功能硬件。典型的EMPU有PowerPC、MIPS、MC68000、i386EX、AMDK62E以及ARM等,其中ARM是應用最廣、最具代表性的嵌入式微處理器。
2.嵌入式微控制器嵌入式微控制器的典型代表是單片機,其內(nèi)部集成了ROM/EPROM/Flash、RAM、總線、總線邏輯、定時器、看門狗、I/O接口等各種必要的功能部件。典型的EMCU有51系列、MC68系列、PIC系列、MSP430系列等。
3.嵌入式數(shù)字信號處理器嵌入式數(shù)字信號處理器(DSP)是專門用于數(shù)字信號處理的微處理器,在系統(tǒng)結構和指令算法方面經(jīng)過特殊設計,因而具有很高的編譯效率和指令執(zhí)行速度。典型的EDSP有TMS32010系列、TMS32020系列等。17
4.嵌入式片上系統(tǒng)
SOC是一個集成的復雜系統(tǒng),它一般將一個完整的產(chǎn)品的各功能集成在一個芯片上或芯片組上,其中可能包括處理器CPU、存儲器、硬件加速單元、與外圍設備的接口I/F,模數(shù)混合放大電路,甚至延伸到傳感器、微機電和微光電單元。
SOC最大的特點是成功實現(xiàn)了軟硬件無縫結合,直接在處理器的片內(nèi)嵌入了操作系統(tǒng)。由于片上系統(tǒng)絕大部分系統(tǒng)構件都是在系統(tǒng)內(nèi)部,整個系統(tǒng)就特別簡潔,不僅減小了系統(tǒng)的體積和功耗,而且提高了系統(tǒng)的可靠性和設計生產(chǎn)效率。
5.嵌入式可編程片上系統(tǒng)可編程片上系統(tǒng)SOPC是一種基于FPGA的可重構SOC,它集成了硬IP核或軟IP核CPU、DSP、存儲器、外圍I/O及可編程邏輯,是更加靈活、高效的SOC解決方案。SOC與SOPC的區(qū)別:SOC是專用集成系統(tǒng),設計周期長,設計成本高,SOPC是基于FPGA的可重構SOC,是一種通用系統(tǒng),設計周期短,設計成本低。18
英國ARM(AdvancedRISCMachines)公司成立于1990年。在1985年4月26日,第一個ARM原型在英國劍橋的Acorn計算機有限公司誕生(在美國VLSI公司制造)。目前,ARM架構處理器已在高性能、低功耗、低成本應用領域中占據(jù)領先地位。
ARM公司是嵌入式RISC處理器的知識產(chǎn)權IP供應商,它為ARM架構處理器提供了ARM處理器內(nèi)核(如ARM7TDMI、ARM9TDMI、ARM10TDMI等)和ARM處理器宏核(ARM720T、ARM920T/922T/940T、ARM1020E/1022E等),由各半導體公司(ARM公司合作伙伴)在上述處理器內(nèi)核或處理器宏核基礎上進行再設計,嵌入各種外圍和處理部件,形成各種嵌入式微處理器(EMPU)或嵌入式微控制器(EMCU)。1.4.2典型ARM微處理器系列19ARM處理器目前包括ARM7系列、ARM9系列、ARM9E系列、ARM10E系列、ARM11系列、SecurCore系列、OptimoDE系列、StrongARM系列、XScale系列以及Cortex-A8系列等。
ARM7、ARM9、ARM9E及ARM10E為4個通用嵌入式微處理器系列,每個系列提供一套相對獨特的性能來滿足不同應用領域的要求,有多個廠家生產(chǎn);SecurCore系列則是專門為安全性要求較高的場合而設計的;StrongARM是Intel公司生產(chǎn)的用于便攜式通信產(chǎn)品和消費電子產(chǎn)品的理想嵌入式微處理器,應用于多家掌上電腦系列產(chǎn)品;Xscale是Intel公司推出的基于ARMv5TE體系結構的全性能、高性價比、低功耗的嵌入式微處理器,應用于數(shù)字移動電話、個人數(shù)字助理和網(wǎng)絡產(chǎn)品等場合。Cortex-A8處理器是第一款基于下一代ARMv7架構的應用處理器,使用了能夠帶來更高性能、功耗效率和代碼密度的Thumb?-2技術。20圖1.4基于ARM核的典型嵌入式處理器系列211.4.3典型ARM微處理器簡介
1.S3C44B0X微處理器簡介
S3C44B0X是三星公司專為手持設備和一般應用提高的高性價比、高性能的16/32位RISC型嵌入式微處理器。它使用ARM7TDMI核,工作在75MHz。S3C44B0X采用0.25um制造工藝的CMOS標準宏單元和存儲編譯器,它耗能低、精簡及出色的全靜態(tài)設計非常適用于對成本和功耗要求較高的場合。為了降低系統(tǒng)總成本和減少外圍器件,這款芯片中還集成了若干部件,主要包括8KBCache(數(shù)據(jù)/指令)、內(nèi)部SRAM、外部儲存器控制器、LCD(LiquidCrystalDisplay)控制器、4個DMA通道、帶自動握手的2通道UART、一個多主I2C(InterIntegrateCircuit)總線控制器、1個I2S(InterIntegrateCircuitSoundBus)總線控制器、5通道PWM定時器、一個看門狗定時器、71個通用I/O口、8個外部中斷源、具有日歷功能的實時時鐘RTC、8通道10位A/D轉化器、1個SIO接口以及PLL(鎖相環(huán))時鐘發(fā)生器。
S3C44B0X采用新型的總線結構,即三星ARMCPU嵌入式微處理器總線結構SAMBAII。222.S3C2410X/S3C2440X微處理器簡介
S3C2410X/S3C2440X是三星公司出品的基ARM920T核的嵌入式微處理器,它與基于ARM7的S3C44B0X的最大區(qū)別在于,S3C2410X/S3C2440X內(nèi)部帶有全性能的內(nèi)存管理單元(MMU),適用于設計移動手持設備類產(chǎn)品,具有高性能、低功耗、接口豐富及體積小等優(yōu)良特性。
S3C2410X/S3C2440X提供了豐富的內(nèi)部設備:如雙重分離的16KB的指令緩存和16KB的數(shù)據(jù)緩存、MMU虛擬存儲器管理部件、LCD控制器、支持NAND的Flash系統(tǒng)引導、外部存儲控制器、3通道UART、4通道DMA、4通道PWM定時器、I/O端口、定時器、8通道10位A/D轉換器、觸摸屏接口、I2C總線接口、USB主機、USB設備、SD主卡及MMC卡接口、2通道SPI以及內(nèi)部PLL時鐘倍頻器。233.LPC2000系列嵌入式微控制器簡介
LPC2000系列嵌入式微控制器是基于ARM7TDMI-SCPU內(nèi)核的,它支持ARM和Thumb指令集,芯片內(nèi)集成豐富外設,而且具有非常低的功率消耗。該系列微控制特別適用于工業(yè)控制、醫(yī)療系統(tǒng)、訪問控制和POS機等場合。有關其系列產(chǎn)品的主要信息見表1.1。
4.AT91系列嵌入式微控制器簡介美國AtmelAT91系列微控制器是基于ARM7TDMI(有的基ARM920T)的嵌入式微處理器的16/32位微控制器,是目前國內(nèi)市場應用最廣泛的ARM芯片之一。AT91系列微控制器定位在低功耗和實時控制應用領域,它們已成功應用在工業(yè)自動化控制、MP3/WMA播放器、數(shù)據(jù)采集產(chǎn)品、BP機、POS機、醫(yī)療設備、GPS和網(wǎng)絡系統(tǒng)產(chǎn)品中。AT91系列微控制器為工業(yè)級芯片,價格比較便宜?;贏RM技術的Atmel微控制器為AT91系列,其中有幾種類型,AT91RXXXX和AT91MXXXX(內(nèi)部帶有RAM,但沒有程序存儲器類型)、AT91RMXXXX(內(nèi)部帶有RAM,有ROM類型),AT91FRXXXX(內(nèi)部帶有RAM,有Flash程序存儲器類型)。245.XScale微體系結構微處理器簡介
IntelXScale微體系結構提供了一種全新的、高性價比、低功耗且基于ARMv5TE體系結構的解決方案,支持16位Thumb指令和DSP擴充。基于XScale技術開發(fā)的微處理器,可用于手機、便攜式終端(PDA)、網(wǎng)絡存儲設備及骨干網(wǎng)(BackBone)路由器等。IntelPXA250微處理器芯片就是一款集成了32位IntelXScale微處理器核的應用處理器。
6.STR710F系列嵌入式處理器簡介
STR710F系列嵌入式處理器產(chǎn)品是意法半導體有限公司(STMicroelectronics)生產(chǎn)的工業(yè)標準的ARM7TDMI32位RISCCPU為內(nèi)核,特別適用于需要尺寸緊湊、CPU功能強大的嵌入式系統(tǒng)和可升級的解決方案,如用戶界面要求高的系統(tǒng)、工廠自動化系統(tǒng)和銷售點(POS)應用等。25
嵌入式操作系統(tǒng)(OperatingSystem,OS)是支持嵌入式系統(tǒng)工作的操作系統(tǒng),它負責嵌入式系統(tǒng)的全部軟、硬件資源分配、調(diào)度、控制和協(xié)調(diào)等活動,它是嵌入式應用軟件的開發(fā)平臺,用戶的其它應用程序都建立在嵌入式操作系統(tǒng)之上。嵌入式操作系統(tǒng)通常包括與硬件相關的底層驅動軟件、系統(tǒng)內(nèi)核、設備驅動接口、通信協(xié)議、圖形界面、標準化瀏覽器等。嵌入式操作系統(tǒng)是嵌入式系統(tǒng)的靈魂,它使得嵌入式系統(tǒng)的開發(fā)效率大大提高,系統(tǒng)開發(fā)的總工作量大大減少,并且極大地提高了嵌入式軟件的可移植性。為了滿足嵌入式系統(tǒng)的要求,嵌入式操作系統(tǒng)必須包含操作系統(tǒng)的一些最基本的功能,用戶可以通過API函數(shù)來使用操作系統(tǒng)。嵌入式操作系統(tǒng)具有編碼體積小、面向應用、實時性強、可移植性好、可靠性高以及專用性強等特點。1.5常用的嵌入式操作系統(tǒng)1.5.1嵌入式操作系統(tǒng)及其特點26
1.LinuxLinux是一種自由和開放源碼的類Unix操作系統(tǒng),它得名于計算機業(yè)余愛好者LinusTorvalds。目前存在著許多不同的Linux,,但它們都使用了Linux內(nèi)核。Linux可安裝在各種計算機硬件設備中,從手機、平板電腦、路由器和視頻游戲控制臺,到臺式計算機、大型機和超級計算機。Linux是一個領先的操作系統(tǒng),世界上運算最快的10臺超級計算機運行的都是Linux操作系統(tǒng)。一些流行的主流Linux發(fā)行版,包括Debian(及其派生物Ubuntu),F(xiàn)edora和openSUSE等。
2.μC/OS-IIμC/OS-II是一個可裁剪、源代碼開放、結構小巧、搶先式的實時嵌入式操作系統(tǒng),主要用于中小型嵌入式系統(tǒng),具有執(zhí)行效率高、占用空間小、可移植性強、實時性能好和可擴展性強等優(yōu)點。該操作系統(tǒng)支持多達64個任務,大部分嵌入式微處理器均支持μC/OS-II。1.5.2幾種常用嵌入式操作系統(tǒng)27
3.WindowsCEMicrosoftWindowsCE是Microsoft公司產(chǎn)品,是從整體上為有限資源的平臺設計的多線程、完整優(yōu)先權、多任務的操作系統(tǒng)。它的模塊化設計允許它對從掌上電腦到專用的工業(yè)控制器的用戶電子設備進行定制。該操作系統(tǒng)的基本內(nèi)核至少需要200KB的ROM。從游戲機到現(xiàn)在大部分的掌上電腦都采用了WindowsCE作為操作系統(tǒng),其缺點是系統(tǒng)軟件價格過高,影響整個產(chǎn)品的成本控制。
4.VxWorksVxWorks操作系統(tǒng)是美國WindRiver公司于1983年設計開發(fā)的一種實時操作系統(tǒng)。VxWorks擁有良好的持續(xù)發(fā)展能力、高性能的內(nèi)核以及友好的用戶開發(fā)環(huán)境,在實時操作系統(tǒng)領域內(nèi)占據(jù)一席之地。它以其良好的可靠性和卓越的實時性被廣泛地應用在通信、軍事、航空、航天等高、精、尖技術及實時性要求極高的領域中,如衛(wèi)星通信、軍事演習、導彈制導、飛機導航等。但大多數(shù)的VxWorksAPI是專用的,VxWorks的價格昂貴。285.pSOSpSOS是ISI公司研發(fā)的產(chǎn)品。pSOS是一個模塊化、高性能、完全可擴展的實時操作系統(tǒng),專為嵌入式微處理器設計,提供了一個完全多任務環(huán)境,在定制的或商業(yè)的硬件上具有高性能和高可靠性。
6.PalmOS3COM公司的PalmOS在掌上電腦和PDA市場上占有很大的市場份額。它有開放的操作系統(tǒng)應用程序接口,開發(fā)商可以根據(jù)需要自行開發(fā)所需的應用程序。在開發(fā)環(huán)境方面,可以在Windows和Macintosh下安裝PalmPilotDesktop。
7.QNXQNX是由加拿大QSSL公司開發(fā)的分布式實時操作系統(tǒng)。該操作系統(tǒng)既能運行于以IntelX86、Pentium等CPU為核心硬件環(huán)境下,也能運行于以PowerPC、MIPS等CPU為核心的硬件環(huán)境。它廣泛應用于自動化、控制、機器人科學、電信、數(shù)據(jù)通信、航空航天、計算機網(wǎng)絡系統(tǒng)、醫(yī)療儀器設備、交通運輸、安全防衛(wèi)系統(tǒng)、POS機、零售機等任務關鍵型應用領域。298.蘋果iOSiOS是由蘋果公司為iPhone開發(fā)的操作系統(tǒng)。它是以Darwin為基礎的,主要是給iPhone、iPodtouch以及iPad使用。原本這個系統(tǒng)名為iPhoneOS,直到2010年6月7日WWDC大會上宣布改名為iOS。iOS的系統(tǒng)架構分為四個層次:核心操作系統(tǒng)層、核心服務層、媒體層、可輕觸層。系統(tǒng)操作占用大概240MB的存儲器空間。
9.AndroidAndroid是一種以Linux為基礎的開放源碼操作系統(tǒng),主要使用于便攜設備。Android操作系統(tǒng)最初由AndyRubin開發(fā),最初主要支持手機。2005年由Google收購注資,并拉攏多家制造商組成開放手機聯(lián)盟開發(fā)改良,逐漸擴展到平板電腦及其他領域上。2010年末數(shù)據(jù)顯示,僅正式推出兩年的操作系統(tǒng)的Android已經(jīng)超越稱霸十年的諾基亞Symbian系統(tǒng),躍居全球最受歡迎的智能手機平臺。30
1.6嵌入式系統(tǒng)的設計方法1.嵌入式微處理器及操作系統(tǒng)的選擇嵌入式微處理器可謂多種多樣,品種繁多,而且都在一定領域應用廣泛。在嵌入式系統(tǒng)上運行的操作系統(tǒng)也有不少,如VxWorks、Linux,Nuc1ears、WindowsCE等,即使在一個公司之內(nèi),也會同時使用好幾種處理器,甚至幾種嵌入式操作系統(tǒng)。
2.開發(fā)工具的選擇目前用于嵌入式系統(tǒng)設計的開發(fā)工具種類繁多,不僅各種操作系統(tǒng)有各自的開發(fā)工具,在同一系統(tǒng)下開發(fā)的不同階段也使用不同的開發(fā)工具。
3.對目標系統(tǒng)的觀察與控制要使系統(tǒng)能正常工作,軟件開發(fā)者必須要對目標系統(tǒng)具有完全的觀察和控制能力,如硬件的各種寄存器、內(nèi)存空間,操作系統(tǒng)的信號量、消息隊列、任務、堆棧等。1.6.1嵌入式系統(tǒng)的總體考慮311.6.2嵌入式系統(tǒng)的設計步驟圖1.5嵌入式系統(tǒng)設計的一般流程321.6.3嵌入式系統(tǒng)的設計方法
圖1.6單片機系統(tǒng)和嵌入式系統(tǒng)的開發(fā)流程比較33圖1.7傳統(tǒng)嵌入式系統(tǒng)設計方法和嵌人式系統(tǒng)的軟硬件協(xié)同設計方法的比較
軟硬件協(xié)同設計方法與傳統(tǒng)設計相比有2個顯著的特點:①描述軟、硬件使用統(tǒng)一的表示形式;②硬、軟件劃分可以選擇多種方案,直到滿足要求。34
嵌入式系統(tǒng)的開發(fā)環(huán)境一般由三個部分組成:宿主機、調(diào)試仿真器和目標機。其中宿主機用來完成源代碼編輯、編譯、顯示一部分運行結果等,操作系統(tǒng)可以是UNIX、Linux和Windows等,硬件可以是PC和工作站等。目標機就是用戶嵌入式程序的運行環(huán)境,CPU可能是任何CPU,常用的有ARM、MIPS、PowerPC、DrangonBall等。操作系統(tǒng)常用的有Linux、μC/OS-II、WindowsCE、Vxworks、等,或者根本沒有操作系統(tǒng)。使用集成開發(fā)軟件開發(fā)基于ARM的應用軟件,可以完成系統(tǒng)軟件的編輯、編譯、匯編和鏈接等工作;通過調(diào)試仿真器可以在PC上實現(xiàn)對應用軟件的調(diào)試;再使用燒寫軟件,將開發(fā)成功的應用系統(tǒng)從宿主機向目標機下載移植,從而完成整個開發(fā)過程。1.7嵌入式系統(tǒng)的應用開發(fā)1.7.1嵌入式系統(tǒng)的開發(fā)環(huán)境35圖1.8嵌入式系統(tǒng)的開發(fā)與調(diào)試環(huán)境示意圖361.指令集模擬器部分嵌入式系統(tǒng)集成開發(fā)環(huán)境提供了指令集模擬器,可方便用戶在PC上完成一部分簡單的調(diào)試工作,但是由于指令集模擬器與真實的硬件環(huán)境相差很大,因此即使用戶是用指令集模擬器調(diào)試通過的程序也有可能無法在真實的硬件環(huán)境下運行,用戶最終必須在硬件平臺上完成整個應用的開發(fā)。
2.駐留監(jiān)控軟件駐留監(jiān)控軟件(ResidentMonitors)是一段運行在目標板上的程序,集成開發(fā)環(huán)境中的調(diào)試軟件通過以太網(wǎng)口、并行端口、串行端口等通信端口與駐留監(jiān)控軟件進行交互,由調(diào)試軟件發(fā)布命令,通知駐留監(jiān)控軟件控制程序執(zhí)行、讀/寫儲存器、讀/寫寄存器和設置斷點等。駐留監(jiān)控軟件是一種比較低廉有效的調(diào)節(jié)方式,不需要任何其它的硬件調(diào)試和仿真設備。駐留監(jiān)控軟件的不便之處在于它對硬件設備的要求比較高。1.7.2嵌入式系統(tǒng)的調(diào)試工具37
3.JTAG仿真器
JTAG仿真器也稱為JTAG調(diào)試器,是通過ARM芯片的JTAG邊界掃描口進行調(diào)試的設備。JTAG仿真器比較便宜,連接比較方便,通過現(xiàn)有的JTAG邊界掃描口與ARMCPU核通信,它無需目標儲存器,不占用目標端口的任何端口。另外,由于JTAG調(diào)試的目標程序是在目標板上執(zhí)行的仿真更接近于目標硬件,因此,許多接口問題,如高頻操作限制、AC和DC參數(shù)不匹配、電線長度的限制等被最小化了。使用集成開發(fā)環(huán)境配合JTAG仿真器進行開發(fā)是目前采用最多的一種調(diào)節(jié)方式。
4.在線仿真器在線仿真器使用仿真頭完全取代目標板上的CPU,可以完全仿真ARM芯片的行為,提供更加深入的調(diào)試功能。但這類仿真器為了能夠全速仿真時鐘速度高于100MHz的處理器,通常必須采用極其復雜的設計和工藝,因而價格比較昂貴。在線仿真器常用在ARM的硬件開發(fā)中,在軟件的開發(fā)中使用較少,其價格昂貴也是在線仿真器難以普及的因素。381.非操作系統(tǒng)層次的應用非操作系統(tǒng)層次的應用,主要是在一些結構簡單的系統(tǒng)中或在實時性要求非常高的系統(tǒng)中,許多時候用于代替原來8位/16位單片機的應用。隨著32位單片機成本的不斷降低,其成本已與8位單片機相差無幾。因此,非操作系統(tǒng)層次的應用也越來越廣泛。
2.操作系統(tǒng)非GUI層次的應用操作系統(tǒng)非GUI層次的應用,主要是指其應用程序建立在操作系統(tǒng)基礎上,是為了實現(xiàn)程序的多任務及實時性,此類應用在人機交互方面沒有很高的要求,可選擇的操作系統(tǒng)有許多。
3.操作系統(tǒng)GUI層次的應用操作系統(tǒng)GUI層次的應用,主要是為了方便實現(xiàn)人機交互功能、網(wǎng)絡功能、數(shù)據(jù)庫功能以及其它更復雜的應用。GUI層次的開發(fā),除了借助于操作系統(tǒng)及GUI庫強大的功能,更重要的是可以讓程序開發(fā)人員把關注點集中在高層的目標與任務的實現(xiàn)中,使嵌入式系統(tǒng)應用的開發(fā)更簡單,讓開發(fā)速度及開發(fā)效率更高1.7.3嵌入式系統(tǒng)的應用模式39
1.需要交叉編譯工具嵌入式系統(tǒng)采用的處理器一般與PC不同,結構較簡單,功耗較低。由于嵌入式系統(tǒng)目標機上的資源較為有限(內(nèi)存外存容量小,顯示功能弱),直接在目標機上開發(fā)和調(diào)試應用軟件幾乎不可能。因此,目標機的嵌入式應用軟件開發(fā)需要放在高性能計算機上的集成開發(fā)環(huán)境上進行,由于PC的大量普及和使用,現(xiàn)在的嵌入式集成開發(fā)環(huán)境也大多運行在PC上。需要交叉編譯工具的另一個原因是嵌入式系統(tǒng)處理器芯片的指令系統(tǒng)與PC處理器芯片的指令系統(tǒng)不同。一般情況下,PC的處理器芯片是X86芯片,使用的指令系統(tǒng)是X86指令系統(tǒng),而ARM9芯片運行的是ARM指令系統(tǒng),兩者有很大差別。因此,用ARMADS集成開發(fā)環(huán)境編寫的C語言程序需要經(jīng)過交叉編譯器才能生成運行在目標機上的ARM9機器語言程序。1.7.4嵌入式應用軟件的開發(fā)402.通過仿真手段進行調(diào)試目標機執(zhí)行程序經(jīng)過交叉編譯后,還要經(jīng)過調(diào)試排錯,確認能夠正常運行才能使用。那么如何進行調(diào)試排錯呢?顯然在目標機上調(diào)試排錯是非常困難的。原因是輸入輸出方式較少,多數(shù)嵌入式系統(tǒng)顯示面積小,甚至沒有顯示屏,從而無法顯示調(diào)試信息;調(diào)試工具需要較大存儲空間,對嵌入式系統(tǒng)來說,比較困難。但對于臺式機而言,這些條件很容易滿足。因此,通常的調(diào)試也是在PC上完成的,方式就是仿真調(diào)試。
3.目標機是最終的運行環(huán)境對嵌入式應用程序來說,其開發(fā)、調(diào)試往往是在PC上完成的,但它最終的運行環(huán)境是目標機。嵌入式應用程序開發(fā)調(diào)試完成后,要下載到目標機上運行,正確無誤運行后才表示成功。如果不成功或需要進一步完善,則需重新回到PC上運行修改調(diào)試。414.執(zhí)行應用程序的指令通常寫入操作系統(tǒng)在常用的嵌入式系統(tǒng)中,應用程序的啟動執(zhí)行指令通常需要預先寫入操作系統(tǒng)的任務調(diào)度程序里,編輯在目標程序中。因此,嵌入式應用程序許與操作系統(tǒng)有一定聯(lián)系,開發(fā)者不僅要了解應用程序,也要了解操作系統(tǒng),知道如何讓一個應用程序執(zhí)行。
5.系統(tǒng)資源有限在進行嵌入式應用軟件的開發(fā)時,就必須考慮可用資源問題。以存儲容量為例,嵌入式系統(tǒng)的ROM容量一般只有幾兆字節(jié),對目標程序有嚴格的長度限制,這樣程序員在編程時就必須考慮這個限制。
6.控制特定部件在嵌入式應用軟件開發(fā)過程中,程序員往往需要針對特定的部件做更加細致的編寫作業(yè)。42
嵌入式系統(tǒng)的設計與開發(fā),就是利用嵌入式微處理器/微控制器內(nèi)部的特定資源和擴展的外部資源,來設計和開發(fā)特定的目標系統(tǒng)。對于基于ARM+Linux嵌入式系統(tǒng)的學習,初步具備從事ARM嵌入式系統(tǒng)應用開發(fā)的能力,作者認為應掌握ARM嵌入式系統(tǒng)的硬件結構與工作原理、程序設計語言、Linux開發(fā)環(huán)境的構建、Linux操作系統(tǒng)的移植和開發(fā)工具的使用,ARM+Linux嵌入式系統(tǒng)的設計與開發(fā)方法,包括嵌入式系統(tǒng)的設計方法、ARM處理器芯片的選擇、嵌入式系統(tǒng)應用與接口設計、嵌入式設計開發(fā)平臺的使用等內(nèi)容。同時應熟悉與嵌入式系統(tǒng)開發(fā)相關的有關領域知識。1.8嵌入式系統(tǒng)的學習探討1.8.1嵌入式系統(tǒng)的學習內(nèi)容43
要學好嵌入式系統(tǒng)及其開發(fā)應用,首先必須掌握嵌入式系統(tǒng)技術基礎。嵌入式系統(tǒng)技術基礎是進行嵌入式設計和開發(fā)的關鍵。技術基礎決定了一個人學習知識、掌握技能的能力。其次,對于嵌入式系統(tǒng)的學習,必須要有一個較好的嵌入式系統(tǒng)開發(fā)平臺和開發(fā)環(huán)境。功能全面的開發(fā)平臺一方面為學習提供了良好的開發(fā)環(huán)境,另一方面開發(fā)平臺本身也是一般的典型實際應用系統(tǒng)。最后,對于嵌入式系統(tǒng)的學習,必須要有一個較好的教師指導,并選用幾本好的教材,采用合適、有效的學習方法。嵌入式技術,內(nèi)容新穎,綜合性強,實踐性強,實際應用發(fā)展前景廣闊。因此需要理論與實踐相結合,課內(nèi)與課外相結合,研究性學習與課題開發(fā)相結合。在具備嵌入式系統(tǒng)及其開發(fā)應用的基礎知識和基本技能后,進行課題的設計開發(fā)時一個非常有效的方法。1.8.2嵌入式系統(tǒng)的學習條件44
學習嵌入式系統(tǒng),應采用課堂教學與課后研究探討自學相結合,理論學習與實踐應用相結合的方法,研究性教學與課題開發(fā)相結合。其中應用設計與開發(fā)實踐則是熟悉和掌握嵌入式系統(tǒng)原理和應用開發(fā)技巧的最好方法。利用ARM嵌入式系統(tǒng)開展本科生研究性教學,它具有以下優(yōu)點:技術先進,社會急需,綜合性強,創(chuàng)新性強,成本低廉。為了描述基于ARM嵌入式系統(tǒng)的研究性教學的研究背景、主要研究目標、主要研究內(nèi)容以及主要研究期望,圖1.9給出了基于ARM嵌入式系統(tǒng)的研究性教學模型。1.8.3嵌入式系統(tǒng)的學習方法45圖1.9基于ARM嵌入式系統(tǒng)的研究性教學模型461.利用ARM嵌入式系統(tǒng)開展研究性教學的研究內(nèi)容(1)ARM嵌入式系統(tǒng)設計開發(fā)基礎研究:主要包括ARM器件結構;ARM匯編語言;C/C++語言;操作系統(tǒng)移植;應用程序開發(fā);驅動程序開發(fā)等嵌入式系統(tǒng)設計與實現(xiàn)基礎理論、基本方法、基本工具的學習與使用。(2)ARM嵌入式系統(tǒng)設計與生實現(xiàn)相關研究:主要是與課題設計與實現(xiàn)有關的數(shù)字信號處理、數(shù)字圖像處理、工業(yè)智能控制、網(wǎng)絡通信控制、數(shù)字家電控制等基礎理論、實現(xiàn)算法和系統(tǒng)仿真等研究,重點是實現(xiàn)算法的設計、選擇和仿真。(3)基于ARM的嵌入式系統(tǒng)設計與實現(xiàn):主要包括系統(tǒng)設計需求分析;ARM實現(xiàn)硬件設計;ARM操作系統(tǒng)移植;ARM應用程序設計;ARM驅動程序設計;ARM系統(tǒng)組裝與調(diào)試。472.基于ARM嵌入式系統(tǒng)開展研究性教學的主要形式基于ARM嵌入式系統(tǒng)開展研究性教學的主要形式,包括組建ARM嵌入式系統(tǒng)學習興趣小組、課題系統(tǒng)設計與實現(xiàn)研究小組和選撥教師科研項目助理等,通過專題訓練、分散研究、定期討論、按需答疑、總結匯報等形式開展研究活動。
3.基于ARM嵌入式系統(tǒng)的研究性教學的主要成效(1)熟練掌握ARM嵌入式系統(tǒng)基礎理論、基本方法、基本技巧、調(diào)試方法和調(diào)試技巧。(2)熟練掌握與ARM嵌入式系統(tǒng)設計開發(fā)課題相關的基礎理論、基本方法、基本技巧。(3)全面提高學生的綜合應用能力、實踐動手能力、創(chuàng)新創(chuàng)業(yè)能力和就業(yè)核心競爭力通過研究性學習訓練的學生,不但具有良好的參考文獻查找能力、分析利用和文檔處理能力,同時學生的綜合應用能力、實踐動手能力、創(chuàng)新創(chuàng)業(yè)能力大為提高,就業(yè)核心競爭力顯著提高,80%的學生畢業(yè)時均能找到從事嵌入式系統(tǒng)設計與開發(fā)的工作,并且工資待遇也相當不錯。48習題11.什么是嵌入式系統(tǒng)?嵌入式系統(tǒng)的特點是什么?2.簡述嵌入式系統(tǒng)的發(fā)展階段及特點3.簡述嵌入式系統(tǒng)的發(fā)展趨勢。4.嵌入式系統(tǒng)有哪些組成部分?各部分的功能和作用是什么?5.簡述嵌入式處理器的分類及各自的主要特點。6.寫出EMPU、EMCU、EDSP、SOC和SOPC的全稱,并解釋其含義。7.簡述典型的嵌入式微處理器和微控制器的系列及應用領域。8.簡單分析幾種嵌入式操作系統(tǒng)的主要特點,包括嵌入式Linux,WindowsCE,μC/OS-II及VxWorks。9.嵌入式系統(tǒng)的應用模式有哪幾種?各有什么有缺點?10.簡述嵌入式系統(tǒng)的總體設計應考慮哪些因素。11.簡述嵌入式系統(tǒng)的開發(fā)環(huán)境的組成,解釋其中的基本概念。12.簡述嵌入式系統(tǒng)的調(diào)試方法。13.簡述嵌入式系統(tǒng)的設計方法和嵌入式系統(tǒng)的設計步驟。14.簡述嵌入式應用軟件的開發(fā)的特點。49第2章ARM嵌入式處理器體系結構2.1嵌入式處理器內(nèi)核種類2.2ARM體系結構概述2.3ARM流水線技術2.4ARM處理器內(nèi)核結構50
本章首先介紹了當今流行的嵌入式處理器內(nèi)核的種類,接著概述了ARM嵌入式處理器的體系結構和ARM流水線技術,最后闡述了ARM處理器的內(nèi)核結構。2.1嵌入式處理器內(nèi)核的種類51
目前世界上有四大流派的嵌入式處理器內(nèi)核生產(chǎn)廠家及嵌入式處理器內(nèi)核,即MIPS公司(www.mips.com)的MIPS處理器內(nèi)核,ARM公司(www.a(chǎn)rm.com)的ARM處理器內(nèi)核,國際商用機器公司(IBM)、蘋果公司(Apple)及摩托羅拉(Motorola)公司聯(lián)合開發(fā)的PowerPC,摩托羅拉公司(www.motorola.com)的68K/COLDFIRE。嵌入式處理器內(nèi)核是一個設計技術,并不是一個芯片,內(nèi)核的設計一般追求高速度、低功耗、易于集成。521.MIPS內(nèi)核
MIPS技術公司是一家設計制造高性能、高檔次及嵌入式32位和64位處理器的廠商,在RISC處理器方面占有重要地位。1984年,MIPS計算機公司成立。1992年,SGI收購了MIPS計算機公司。1998年,MIPS脫離SGI,成為MIPS技術公司。MIPS公司設計RISC處理器始于20世紀80年代初。1999年,MIPS公司發(fā)布MIPS32和MIPS64架構標準,為未來MIPS處理器的開發(fā)奠定了基礎。新的架構集成了所有原來MIPS指令集,并且增加了許多更強大的功能。MIPS公司陸續(xù)開發(fā)了高性能、低功耗的32位處理器內(nèi)核(core)MIPS324Kc與高性能64位處理器內(nèi)核MIPS645Kc。2000年,MIPS公司發(fā)布了針對MIPS324Kc的版本以及64位MIPS6420Kc處理器內(nèi)核。MIPS內(nèi)核具有高速、多核集成的特點。532.ARM內(nèi)核
ARM內(nèi)核具有低功耗的特點,ARM內(nèi)核的設計技術被授權給數(shù)百家的半導體廠商,做成不同的SOC芯片。ARM內(nèi)核在當今最活躍的無線局域網(wǎng)、3G、手機終端、手持設備、有線網(wǎng)絡通信設備中得以廣泛應用,其應用形式是集成到專用芯片之中作為控制器。采用ARM內(nèi)核的主要半導體處理器廠商韓國三星公司在其面向手持設備和網(wǎng)絡設備的處理器上都全面采用了ARM內(nèi)核,如S3C4510B用于Gateway等。
Intel公司從StrongARM到Xscale處理器家族,都是立足于ARM內(nèi)核并增加了多媒體指令特性,并進一步降低功耗,提高速度。
Motorola公司在其手持設備處理器方面從68K內(nèi)核改成了ARM內(nèi)核,從此,手持設備領域成了ARM內(nèi)核的天下。
CirrusLogic公司的EP7312等手持設備處理器增加了MP3以及音頻處理的功能。543.PowerPC內(nèi)核
PowerPC內(nèi)核在高速與低功耗之間做了妥協(xié),并集成了極其豐富的外圍電路接口。PowerPC內(nèi)核被Motorola公司用于嵌入式領域,目前已經(jīng)成為在通信領域使用最廣泛的處理器內(nèi)核。中興通信、華為等也在其通信產(chǎn)品中大量采用Motorola的PowerPC家族的系列嵌入式處理器。MPC860和MPC8260是其最經(jīng)典的兩款PowerPC內(nèi)核的嵌入式處理器。
4.68K/COLDFIRE內(nèi)核
68K/COLDFIRE核被稱為業(yè)界應用最廣的嵌入式處理器內(nèi)核,目前還在不停地更新?lián)Q代與發(fā)展。68K內(nèi)核是最早在嵌入式領域廣泛應用的內(nèi)核,其代表芯片是683600COLDFIRE內(nèi)核繼承了68K的特點并繼續(xù)兼容它。COLDFIRE內(nèi)核被植入DSP模塊、CAN總線模塊以及一般嵌入式處理器所集成的外設模塊,從而形成了一系列的嵌入式處理器,在工業(yè)控制、機器人研究、家電控制等領域被廣泛采用。55ARM處理器采用RISC(ReducedInstructionSetComputer)體系結構設計,使用標準的、固定長度的32位指令格式,所有ARM指令都使用4位的條件編碼來決定指令是否執(zhí)行,以解決指令執(zhí)行的條件判斷。從ARM7開始采用32位地址空間(此前為26位地址)。ARM7采用3級流水線結構,采用馮·諾依曼體系結構(程序存儲器與數(shù)據(jù)存儲器統(tǒng)一編址)。ARM9采用5級流水線,采用哈佛體系結構(程序存儲器與數(shù)據(jù)存儲器分開獨立編址)。ARM10采用6級流水線。ARM架構自誕生至今,已經(jīng)發(fā)生了很大的演變,至今已定義了7種不同的版本。2.2ARM體系結構概述2.2.1ARM體系結構的發(fā)展56
其中:
V4版結構是目前最廣泛應用的ARM體系結構,它對V3版架構進行了進一步擴充,有的還引進了16位的Thumb指令集,使ARM使用更加靈活。ARM7、ARM9和Strong-ARM都采用了該版結構。其指令集中增加的功能包括符號化和非符號化半字及符號化字節(jié)的存/取指令,增加了16位Thumb指令集,完善了軟件中斷(SWI)指令的功能,處理器系統(tǒng)模式引進特權方式時使用用戶寄存器操作,把一些未使用的指令空間捕捉為未定義指令。
V5版架構在V4版基礎上增加了一些新的指令。ARM10和XScale都采用該版架構。這些新增指令有帶有鏈接和交換的轉移(BLX)指令、計數(shù)前導零計數(shù)(CLZ)指令、中斷(BRK)指令、信號處理指令(V5TE版)、為協(xié)處理器增加更多可選擇的指令。57ARM體系架構V6是2001年發(fā)布的,其基本特點包括100%與以前的體系兼容;SIMD媒體擴展,使媒體處理速度快1.75倍;改進了的內(nèi)存管理,使系統(tǒng)性能提高30%;改進了的混合端(Endian)與不對齊數(shù)據(jù)支持,使得小端系統(tǒng)支持大端數(shù)據(jù)(如TCP/IP)。許多RTOS是小端的,為實時系統(tǒng)改進了中斷響應時間,將最壞情況下的35周期改進到了11個周期。
ARM體系架構V7是2005年發(fā)布的。它使用了能夠帶來更高性能、功耗低、效率高及代碼密度大的Thumb?-2技術。它首次采用了強大的信號處理擴展集,對H.264和MP3等媒體編解碼提供加速。Cortex-A8TM處理器采用的就是V7版的結構。5859
(1)單周期操作。ARM指令系統(tǒng)中的指令只需要執(zhí)行簡單的和基本的操作,因此其執(zhí)行過程在一個機器周期內(nèi)完成。(2)采用加載/存儲指令結構。ARM只采用了加載和存儲兩種指令對存儲器進行讀和寫的操作,面向運算部件的操作都經(jīng)過加載指令和存儲指令從存儲器取出后預先存放到寄存器內(nèi),以加快執(zhí)行速度。(3)固定的32位長度指令。ARM指令系統(tǒng)的指令格式固定為32位長度,指令譯碼結構簡單,效率高。(4)3地址指令格式。由于編譯開銷大,需要盡可能優(yōu)化,因此采用3地址指令格式,較多寄存器和對稱的指令格式便于生成優(yōu)化代碼。(5)指令流水線技術。ARM采用多級流水線技術,以提高指令執(zhí)行的效率;ARM7采用馮·諾依曼體系結構的3級指令流水線;ARM9TDMI采用基于哈佛體系結構的5級指令流水線技術;ARM10采用6級指令流水線。2.2.2ARM體系結構的技術特征601.ARM處理器工作狀態(tài)
1)ARM狀態(tài)
ARM狀態(tài)是指ARM工作于32位指令狀態(tài),即32位狀態(tài)。所有指令均為32位指令。
2)Thumb狀態(tài)
Thumb狀態(tài)是指ARM執(zhí)行16位的Thumb指令的狀態(tài),即16位狀態(tài)。在有些情況下,如異常處理時,必須是ARM狀態(tài)下的ARM指令,此時如果原來工作于Thumb狀態(tài),必須將其切換到ARM狀態(tài),使之執(zhí)行ARM指令。在程序執(zhí)行的過程中,處理器可隨時在這兩種工作狀態(tài)間進行切換,切換時并不影響處理器的工作模式和相應寄存器中的內(nèi)容。
ARM處理器復位后開始執(zhí)行代碼時總是只處于ARM狀態(tài),如果需要,則可通過下面的方法切換到Thumb狀態(tài)。2.2.3ARM處理器工作狀態(tài)與工作模式613)ARM與Thumb間的切換(1)由ARM狀態(tài)切換到Thumb狀態(tài)。通過BX指令可將ARM狀態(tài)切換到Thumb狀態(tài),即當操作數(shù)寄存器的最低位為1時,可執(zhí)行BX指令使微處理器進入Thumb狀態(tài)。例如:
MOVR6,0X16000001BXR6
在本例中,操作數(shù)寄存器R6的最低位為1,則執(zhí)行上述兩條指令時,轉移到地址為R6&0XFFFFFFFE=0X16000000處的Thumb指令。如果Thumb狀態(tài)進入異常處理,則當異常返回時,系統(tǒng)狀態(tài)將自動切換到Thumb狀態(tài)。(2)由Thumb狀態(tài)切換到ARM狀態(tài)。通過BX指令可將Thumb狀態(tài)切換到ARM狀態(tài),即當操作數(shù)寄存器的最低位為0時,可執(zhí)行BX指令使微處理器進入ARM狀態(tài)。當處理器進行異常處理時,則從異常向量地址開始執(zhí)行,系統(tǒng)將自動進入ARM狀態(tài)。622.ARM處理器工作模式632.2.4ARM處理器寄存器組1.ARM狀態(tài)下的寄存器組64
從表2.3中可以看出,ARM處理器工作在不同模式,使用的寄存器有所不同,共同點是:無論何種模式,R15均作為PC使用;CPSR為當前程序狀態(tài)寄存器;R7~R0為公用的通用寄存器。不同之處在于高端7個通用寄存器和狀態(tài)寄存器在不同模式下不同。
1)通用寄存器通用寄存器有31個,其中不分組的寄存器有8個(R0~R7);在快速中斷模式下,R8~R12標有fiq,代表快速模式專用,與其他模式地址重疊,但模式不同,因此寄存器內(nèi)容并不沖突,共2組計10個寄存器;R13~R14除了用戶模式和系統(tǒng)模式分別為堆棧指針(StackPointer,SP)和程序鏈接寄存器(LinkRegister,LR)之外,其他模式下均有自己獨特的標記方式,是專用于特定模式的寄存器,共6組計12個;另外還有作為PC的R15,這樣通用寄存器共31個。所有通用寄存器均為32位結構。652)狀態(tài)寄存器狀態(tài)寄存器共6個,除了共用的CPSR外還有分組的SPSR(5組共5個)。程序狀態(tài)寄存器的格式如圖2.1所示,其中條件碼標志4個(N,Z,C,V),還有Q標志以及8個控制位(I,F(xiàn),T,M4~M0)。圖2.1程序狀態(tài)寄存器格式66
2.Thumb狀態(tài)下的寄存器組
Thumb狀態(tài)下的寄存器組是ARM狀態(tài)下寄存器組的子集。67
在正常程序執(zhí)行過程中,每執(zhí)行一條ARM指令,PC值加4,每執(zhí)行一條Thumb指令,PC值加2,程序按順序正常執(zhí)行。異常(Exceptions)是指內(nèi)部或外部事件引起的請求使處理器做出相應處理的事件。當發(fā)生異常時,系統(tǒng)執(zhí)行完當前指令后,跳轉到相應的異常處理程序人口執(zhí)行異常處理,異常處理完,程序返回。
1.ARM異常種類及異常中斷向量在ARM體系結構中,異常中斷用來處理軟中斷、未定義指令陷阱、系統(tǒng)復位及外部中斷,共有7種不同類型的異常中斷及其對應的向量地址,見表2.50
實現(xiàn)異常向量的定位由32位地址空間低端的正常地址范圍0x00000000~0x0000001C決定,但有些ARM允許高端地址0xFFFF0000~0xFFFF001C來定位異常向量的地址。2.2.5ARM處理器的異常中斷68692.異常中斷的優(yōu)先級
7種類型的異常分成6級,優(yōu)先級由高到低依次是:
(1)復位(RESET)異常;(2)數(shù)據(jù)訪問中止(DABT)異常;(3)快速中斷請求(FIQ)異常;(4)外部中斷請求(IRQ)異常;(5)指令預取中止(FABT)異常;(6)軟件中斷(SWI)異常和未定義的指令(UND)異常最低優(yōu)先級。復位異常的優(yōu)先級最高,因此任何情況下,只要進入復位狀態(tài),系統(tǒng)無條件地將PC指向0x00000000處,去執(zhí)行系統(tǒng)第一條指令。通常此處放一條無條件的轉移指令,轉移到系統(tǒng)初始化程序處。70
1)解析程序的概念和作用
ARM處理器響應中斷的時候,總是從固定的地址開始的,而在高級語言環(huán)境下開發(fā)中斷服務程序時,無法控制固定地址開始跳轉流程。為了使得上層應用程序與硬件中斷跳轉聯(lián)系起來,需要編寫一段中間的服務程序來進行連接。這樣的服務程序常被稱作中斷解析程序。常用的中斷跳轉流程,如圖2.2所示。圖2.2中斷跳轉流程712)解析過程示例圖2.3中斷解析示例流程723)解析程序的擴展圖2.4中斷解析的擴展734)向量中斷的處理圖2.5向量中斷解析流程示例744.從異常處理程序中返回復位異常發(fā)生后,由于系統(tǒng)自動從0x00000000開始重新執(zhí)行程序,因此復位異常處理程序執(zhí)行完后無須返回。其他所有異常處理完后必須返回到原來程序處向下執(zhí)行,為達到這一目的,需要執(zhí)行以下操作:(1)恢復原來被保護的用戶寄存器。(2)將SPSR_mode寄存器值復制到CPSR中,使得CPSR從相應的SPSR中恢復,以恢復被中斷的程序工作狀態(tài)。(3)根據(jù)異常類型將PC值恢復成斷點地址,以執(zhí)行用戶原來運行著的程序。(4)清除CPSR中的中斷禁止標志I和F,開放外部中斷和快速中斷。75
不同模式返回用的指令有所不同,下面簡要介紹幾種異常程序的返回方法。(1)FIQ(FastInterruptRequest),即快速中斷異常,是為了支持數(shù)據(jù)傳輸或者通道處理而設計的。在ARM狀態(tài)下,系統(tǒng)有足夠的寄存器,從而可以保障對寄存器保存的需求。若將CPSR的F位設置為1,則會禁止FIQ中斷,若將CPSR的F位清零,處理器會在指令執(zhí)行時檢查FIQ的輸入。注意只有在特權模式下才能改變F位的狀態(tài)。可由外部通過對處理器上的nFIQ引腳輸入低電平產(chǎn)生FIQ。不管是在ARM狀態(tài)還是在Thumb狀態(tài)下進入FIQ模式,F(xiàn)IQ處理程序均會執(zhí)行以下指令從FIQ模式返回:SUBSPC,R14_fiq,#4
該指令將寄存器R14_fiq的值減去4后,復制到程序計數(shù)器(PC)中,從而實現(xiàn)從異常處理程序中的返回,同時將SPSR_mode寄存器的內(nèi)容復制到當前程序狀態(tài)寄存器(CPSR)中。76
(2)IRQ(InterruptRequest)異常屬于正常的中斷請求,可通過對處理器的nIRQ引腳輸入低電平產(chǎn)生。IRQ的優(yōu)先級低于FIQ,當程序執(zhí)行進入FIQ異常時,IRQ可能被屏蔽。若將CPSR的I位設置為1,則會禁止IRQ中斷,若將CPSR的I位清零,處理器會在指令執(zhí)行完之前檢查IRQ的輸入。注意只有在特權模式下才能改變I位的狀態(tài)。不管是在ARM狀態(tài)還是在Thumb狀態(tài)下進入IRQ模式,IRQ處理程序均會執(zhí)行以下指令從IRQ模式返回:SUBSPC,R14_irq,#4
該指令將寄存器R14_irq的值減去4后,復制到程序計數(shù)器(PC)中,從而實現(xiàn)從異常處理程序中的返回,同時將SPSR_mode寄存器的內(nèi)容復制到當前程序狀態(tài)寄存器(CPSR)中。77
(3)ABORT(中止)異常意味著對存儲器的訪問失敗。ARM微處理器在存儲器訪問周期內(nèi)檢查是否發(fā)生中止異常。中止異常包括以下兩種類型:指令預取中止,數(shù)據(jù)中止。當指令預取訪問存儲器失敗時,存儲器系統(tǒng)向ARM處理器發(fā)出存儲器中止(Abort)信號,預取的指令被記為無效。只有當處理器試圖執(zhí)行無效指令時,指令預取中止異常才會發(fā)生,如果指令未被執(zhí)行,如在指令流水線中發(fā)生了跳轉,則預取指令中止不會發(fā)生。若數(shù)據(jù)中止發(fā)生,系統(tǒng)的響應與指令的類型有關。當確定了中止的原因后,無論是在ARM狀態(tài)還是在Thumb狀態(tài),Abort處理程序均會執(zhí)行以下指令從中止模式返回:SUBSPC,R14_abt,#4;指令預取中止SUBSPC,R14_abt,#8;數(shù)據(jù)中止該指令恢復PC(從R14_abt)和CPSR(從SPSR_abt)的值,并重新執(zhí)行中止的指令。78
(4)SWI(SoftwareInterrupt)即軟件中斷,軟件中斷指令用于進入管理模式,常用于請求執(zhí)行特定的管理功能。無論是在ARM狀態(tài)還是在Thumb狀態(tài),軟件中斷處理程序執(zhí)行以下指令從SWI模式返回:MOVPC,R14_svc
該指令恢復PC(從R14_svc)和CPSR(從SPSR_svc)的值,并返回到SWI的下一條指令。(5)當ARM處理器遇到不能處理的指令時,會產(chǎn)生未定義指令(UndefinedInstruc-tion)異常。采用這種機制,可以通過軟件仿真擴展ARM或Thumb指令集。無論是在ARM狀態(tài)還是在Thumb狀態(tài),在仿真未定義指令后,處理器執(zhí)行以下程序返回:MOVSPC,R14_und
該指令恢復PC(從R14_und)和CPSR(從SPSR_und)的值,并返回到未定義指令后的下一條指令。79
如一個32位字0x12345678,存放的起始地址為0x00040000,則大端格式下0x00040000單元存放0x12,0x00040001單元存放0x34,0x00040002單元存放0x56,而0x00040003單元存放0x78。1.ARM存儲字數(shù)據(jù)的格式
1)大端格式在大端格式中,32位字數(shù)據(jù)的高字節(jié)存儲在低地址中,而字數(shù)據(jù)的低字節(jié)則存放在高地址中,見表2.6。2.2.6ARM的存儲器格式及數(shù)據(jù)類型80
如同樣是一個32位字0x12345678,存放的起始地址為0x00040000,則小端格式下0x00040000單元存放0x78,0x00040001單元存放0x56,0x00040002單元存放0x34,而0x00040003單元存放0x12。2)小端格式在小端格式中,32位字數(shù)據(jù)的高字節(jié)存放在高地址中,而低字節(jié)存放在低地址中。812.ARM微處理器數(shù)據(jù)類型
ARM微處理器中支持字節(jié)(8位)、半字(16位)、字(32位)3種數(shù)據(jù)類型,其中字需要4字節(jié)對齊(地址的低兩位為0)、半字需要2字節(jié)對齊(地址的最低位為0)。每一種又支持有符號數(shù)和無符號數(shù),因此認為共有6種數(shù)據(jù)類型。
ARM微處理器的指令長度可以是32位(在ARM狀態(tài)下),也可以為16位(在Thumb狀態(tài)下)。如果是ARM指令,則必須固定長度,使用32位指令,且必須以字為邊界對齊;如果是Thumb指令,則指令長度為16位,必須以2字節(jié)為對齊。必須指出的是,除了數(shù)據(jù)傳送指令支持較短的字節(jié)和半字的數(shù)據(jù)類型外,在ARM內(nèi)部所有的操作都是面向32位操作數(shù)的。當從儲存器調(diào)用一個字節(jié)或半字時,根據(jù)指令對數(shù)據(jù)的操作類型,將其無符號或有符合的符合自動擴展成32位,進而作為32位數(shù)據(jù)在內(nèi)部進行處理。82
所謂流水線電路,就是將一個電路系統(tǒng)或電路系統(tǒng)的大的數(shù)據(jù)處理電路模塊分成幾個小的數(shù)據(jù)處理電路模塊,并且沿著數(shù)據(jù)通路引入流水鎖存器,這樣就可以減小有效關鍵路徑,從而提高系統(tǒng)的時鐘速度或采樣速度,或者可以在同樣的速度下降低功耗。而電路中的關鍵路徑,是指數(shù)據(jù)流圖DFG中具有零延時的所有路徑中,具有最長運算時間的路徑。一個流水線電路系統(tǒng)的速度(或時鐘周期),由任意兩個鎖存器間、或一個輸入與一個鎖存器間、或一個鎖存器和一個輸出間、或輸入與輸出之間路徑中最長的路徑限定。而這個最長的路徑或“關鍵路徑”可以通過在電路系統(tǒng)中適當?shù)牟迦肓魉€鎖存器來減小。2.3ARM流水線技術2.3.1流水線電路設計基礎知識83
在一個M級流水線系統(tǒng)中,從輸入到輸出的任一路徑上的延時元件數(shù)目是(M-1),它要大于在原始時序電路中同一路徑上的延時元件數(shù)。若要使電路正常工作,相鄰的兩個寄存器之間路徑的時延應小于寄存器的時鐘信號CLK的周期Tclk,亦即流水線鎖存器的時鐘周期Tclk應大于所有功能部件中的最長執(zhí)行時間。同時要使流水線電路正常工作,并且系統(tǒng)處理速度盡可能快,流水線數(shù)據(jù)通路上的各個功能部件的執(zhí)行時間因盡可能均衡。
【例2.1】分別設計一個無流水線和有流水線的三階有限沖激響應(FIR)數(shù)字濾波器的實現(xiàn)電路,并分析各自電路系統(tǒng)的速度(或時鐘周期)??紤]三階有限沖激響應(FIR)數(shù)字濾波器其框圖實現(xiàn)如圖2.6,流水線實現(xiàn)是通過引入兩個附加鎖存器而得到的,如圖2.7所示。
84圖2.7三階流水線FIR濾波器圖2.6三階FIR濾波器85862.3.2微處理器指令流水線處理87882.3.3ARM的3級指令流水線89
由于ARM7本身的局限性,不可能同時訪問程序存儲器和數(shù)據(jù)存儲器,因此指令流水線出現(xiàn)間斷現(xiàn)象在多周期操作下不可避免的。這就要求合適的存儲結構,ARM9TDMI使用了程序存儲器和數(shù)據(jù)存儲器分開獨立編址的哈佛結構,并采用5級指令流水線,即取指、譯碼、執(zhí)指、緩沖及寫回。5級流水線的操作如圖2.14所示。2.3.4ARM的5級指令流水線90ARM體系結構目前被公認為業(yè)界領先的32位嵌入式RISC微處理器結構。ARM處理器內(nèi)核當前有6個系列產(chǎn)品,即ARM7、ARM9、ARM9E、ARM10E、SecurCORE以及ARM11系列。另外還有IntelXscale微體系結構和StrongARM結構。在高性能的32位嵌入式片上系統(tǒng)設計中,幾乎都是以ARM作為處理器核。ARM核已經(jīng)是現(xiàn)在嵌入式SOC系統(tǒng)芯片的核心,也是現(xiàn)代嵌入式系統(tǒng)發(fā)展的方向。ARM處理器核作為基本處理單元,根據(jù)發(fā)展需求還集成了與處理器核密切相關的功能模塊,這些基于微處理器核并集成這些IP核的標準配置的ARM核都具有基本處理器的配置,這些內(nèi)核稱為處理器核。ARM核與其它部件組合在一起才能構成實際的芯片。2.4ARM處理器內(nèi)核結構2.4.1ARM處理器內(nèi)核概述91圖2.15ARM核的命名規(guī)則及含義92ARM7TDMI是ARM7系列成員中應用最為廣泛的32位高性能嵌入式RISC處理器內(nèi)核,其指令系統(tǒng)有32位的ARM指令集和16位的Thumb指令集。ARM7TDMI使用3級指令流水線技術,對存儲器的訪問采用單一32位數(shù)據(jù)總線傳送指令和數(shù)據(jù)。只有加載、存儲和交換指令可以訪問存儲器中的數(shù)據(jù)。數(shù)據(jù)可以是8位(字節(jié)),16位(半字)和32位〔字),字必須以4字節(jié)(32位)為邊界對齊,半字必須以2字節(jié)(16位)為邊界對齊。ARM7TDM工采用32位尋址空間、32位移位寄存器和32位ALU以及32位存儲器傳送。
1.ARM7TDMI的特點(1)采用ARM體系結構版本4T,支持64位乘法、半字、有符號字節(jié)存?。唬?)支持Thumb指令集,可降低系統(tǒng)開銷;(3)采用32×8DSP乘法器;(4)具有32位尋址空間——4GB線性地址空間;(5)包含了嵌入式在線仿真器模塊,以支持嵌入式系統(tǒng)調(diào)試;(6)JTAG控制邏輯被認為是處理器核的一部分。2.4.2ARM7TDMI處理器內(nèi)核932.ARM7TDMI處理器內(nèi)核結構及功能圖2.16ARM7TDMI處理器核內(nèi)部結構94圖2.17ARM7TDMI內(nèi)核的主處理器邏輯結構95ARM主處理器邏輯用于對調(diào)試硬件的支持,嵌入式宏單元是用于產(chǎn)生調(diào)試異常(如斷點異常等)的寄存器和比較器的集合,嵌入式ICETAP控制器用JTAG串行接口邏輯控制掃描鏈的動作,預定目標調(diào)試。
ARM7TDMI內(nèi)核的主處理器邏輯結構如圖2.17所示。主處理器邏輯由地址寄存器、地址增量器、寄存器組、乘法器、桶形移位器、ALU
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 流行體知識講解
- 藥劑師是什么?- 藏在藥香里的健康守護者與中席教育的賦能之道
- 活性污泥鏡檢培訓
- 柔丫產(chǎn)品知識培訓課件
- 松江培訓班考級
- 2026年傳統(tǒng)文化知識問答及解析
- 2024-2025學年江蘇省連云港市灌云縣部分學校高二下學期5月月考歷史試題(解析版)
- 2026年醫(yī)療設備維護與管理專業(yè)試題
- 2026年國際貿(mào)易國際商業(yè)合同解析能力測試
- 2026年項目管理流程與實施技巧考試題
- 湖北省荊州市八縣2024-2025學年高一上學期期末聯(lián)考英語試題(無答案)
- 《新疆工程勘察設計計費導則(工程勘察部分)》
- 字母認主協(xié)議書(2篇)
- 骨科研究生年終總結
- (完整)七年級生物上冊思維導圖
- GB/T 34765-2024肥料和土壤調(diào)理劑黃腐酸含量及碳系數(shù)的測定方法
- DL∕T 1573-2016 電力電纜分布式光纖測溫系統(tǒng)技術規(guī)范
- 電梯維護保養(yǎng)規(guī)則(TSG T5002-2017)
- PLC控制的搶答器設計與仿真
- (高清版)TDT 1057-2020 國土調(diào)查數(shù)據(jù)庫標準
- 天然藥物化學教學大綱
評論
0/150
提交評論