版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第一章嵌入式系統(tǒng)概述
2計算機系統(tǒng)的分類計算機系統(tǒng)按應用范圍分為以下兩種:通用計算機專用計算機:嵌入式計算機/嵌入式系統(tǒng)桌面通用型高端服務型小型專用型3通用計算機
具有一般計算機的基本標準形態(tài),通過裝配不同的軟件,以基本雷同的面目出現(xiàn)并應用于社會各領(lǐng)域。
通用計算機按處理字長、運算速度、結(jié)構(gòu)規(guī)模分為:大型、中型、小型和微型計算機(傳統(tǒng)分類)。目前計算機分類:超級計算機,大型計算機、工作站、微計算機、亞微計算機亞微計算機(嵌入式計算機)是以嵌入式系統(tǒng)的形式隱藏在各種裝置、產(chǎn)品和系統(tǒng)中大型計算機實例4大型計算機實例曙光5000A超大型計算機曙光5000A高性能計算機是國家863計劃高性能計算機及其核心軟件重大專項支持的研究項目,是面向網(wǎng)格的高性能計算機,可以為網(wǎng)格提供計算服務,同時也是面向信息服務的超級服務器,可以提供多目標的系統(tǒng)服務。
5曙光5000A的第一套超大型系統(tǒng)于08年11月份落戶“上海超級計算中心”。曙光5000A采用國際高性能計算機主流的機群結(jié)構(gòu),整個系統(tǒng)規(guī)模達到1650個節(jié)點,每個節(jié)點為4CPU的4核對稱多處理機SMP(SymmetricalMulti-Processing)系統(tǒng),采用AMDBarcelona2.0GHz處理器,峰值運算速度為230TFLOPS,采用了WCCS+SuSeLinux雙操作系統(tǒng)。1:chinaSystemName:Tianhe-2
Site:NationalSuperComputerCenterinGuangzhouApplicationarea:ResearchMainMemory:1,024,000GBInstallationYear:2013OperatingSystem:Linux最大平均速度:54,902.4TFlop/sPower:17,808.00kW
最快的五臺超級計算機(截止到2015.6)8最快的五臺超級計算機(截止到2015.06)2:UnitedStates
SystemName:Titan(巨人)
Site:DOE/SC/OakRidgeNationalLaboratoryApplicationarea:Research最大平均速度:27,112.5TFlop/sPower:8,209KWMemory: 710,144GBOperatingSystem:CrayLinuxEnvironmentInstallationYear:20129最快的五臺超級計算機(截止到2015.06)3:UnitedStates
SystemName:Sequoia(紅杉)Site:DOE/NNSA/LLNLApplicationarea:Research最大平均速度:20,132.7TFlop/sPower:7,890.00kW內(nèi)存:1,572,864GB操作系統(tǒng):LinuxInstallationYear:201110
最快的五臺超級計算機(截止到2015.06)4:Japan
SystemName:KcomputerSite:RIKENAdvancedInstituteforComputationalScience(AICS)Applicationarea:Research最大平均速度:11,280.4TFlop/sPower:12,659.89kW內(nèi)存:1,410,048GB操作系統(tǒng):LinuxInstallationYear:201111最快的五臺超級計算機(截止到2015.06)5:UnitedStates
SystemName:MiraSite:DOE/SC/ArgonneNationalLaboratoryApplicationarea:Research最大平均速度:10,066.3TFlop/sPower:3,945.00kW操作系統(tǒng):LinuxInstallationYear:2012
12最權(quán)威的超級計算機排名的參考網(wǎng)址
1112嵌入式計算機/嵌入式系統(tǒng)嵌入式計算機/嵌入式系統(tǒng):是專用計算機,以核心部件的形式出現(xiàn)在各種裝置、設(shè)備、產(chǎn)品和系統(tǒng)中。
經(jīng)過幾十年的發(fā)展,嵌入式系統(tǒng)已經(jīng)在很大程度改變了人們的生活、工作和娛樂方式,而且這些改變還在加速。嵌入式系統(tǒng)具有無數(shù)的種類,每類都具有自己獨特的個性。例如,MP3、數(shù)碼相機與打印機就有很大的不同。汽車中更是具有多個嵌入式系統(tǒng),使汽車更輕快、更干凈、更容易駕駛例如:監(jiān)控設(shè)備、移動電話、家電、機器人、視聽設(shè)備、醫(yī)療設(shè)備等裝置中所用的計算機。13現(xiàn)實生活中的嵌入式系統(tǒng)14嵌入式系統(tǒng)簡介15嵌入式系統(tǒng)與桌面通用系統(tǒng)的區(qū)別(1)嵌入式系統(tǒng)中運行的任務是專用且比較確定的心臟監(jiān)視器只需運行信號輸入、信號處理、心電圖顯示任務如要更改任務,需要對整個系統(tǒng)進行重新設(shè)計或在線維護升級手機?專用桌面通用系統(tǒng)需要支持大量的、需求多樣的應用程序:對系統(tǒng)中運行的程序不作假設(shè)程序升級、更新等方便16嵌入式系統(tǒng)與桌面通用系統(tǒng)的區(qū)別(2)嵌入式系統(tǒng)往往對實時性提出較高的要求。實時系統(tǒng):指系統(tǒng)能夠在限定的響應時間內(nèi)提供所需水平的服務。嵌入式實時系統(tǒng)可分為:強實時型:響應時間μs~ms級;一般實時:響應時間ms~s級;弱實時型:響應時間s級以上。桌面通用系統(tǒng):以性能、價格的最優(yōu)為追求原則面向多任務性能均衡17嵌入式系統(tǒng)與桌面通用系統(tǒng)的區(qū)別(3)嵌入式系統(tǒng)中使用的操作系統(tǒng)一般是實時操作系統(tǒng)嵌入式實時操作系統(tǒng)數(shù)量眾多,如:VxWorks、WindowsCE、pSOS、QNX、uc/OS嵌入式Linux、RTLinux國產(chǎn)嵌入式實時操作系統(tǒng),如:HOPENDeltaOSSmartOS(/smartos)桌面操作系統(tǒng)Linux、Windows系列18嵌入式系統(tǒng)與桌面通用系統(tǒng)的區(qū)別(4)嵌入式系統(tǒng)運行需要高可靠性保障,比桌面系統(tǒng)的故障容忍能力弱很多嵌入式系統(tǒng)需要忍受長時間、無人值守條件下的運行嵌入式系統(tǒng)運行的環(huán)境惡劣嵌入式系統(tǒng)大都有功耗約束如:珍貴文物微氣象環(huán)境監(jiān)測要求1分鐘采樣一次,每個采樣節(jié)點采用電池供電,1年更新一次。采用常規(guī)的方法,能量只能持續(xù)工作5天!引入間歇工作方式,從而降低功耗,節(jié)省能量WSN(無線傳感網(wǎng))節(jié)點一般能工作1-2年19嵌入式系統(tǒng)與桌面通用系統(tǒng)的區(qū)別(5)嵌入式系統(tǒng)比桌面通用系統(tǒng)可用資源少得多為降低系統(tǒng)成本,降低功耗,嵌入式系統(tǒng)的資源配置遵循夠用就行!因此早年的嵌入式系統(tǒng)的主題是“裁剪”隨著集成化模塊化趨勢,目前某些領(lǐng)域的嵌入式系統(tǒng),如刀片式路由器,其可用資源接近甚至超過桌面通用系統(tǒng)嵌入式系統(tǒng)的開發(fā)需要專用工具和特殊方法:開發(fā):交叉編譯、交叉鏈接調(diào)試:仿真器、虛擬機更新:在線升級等20內(nèi)容提要計算機系統(tǒng)的分類嵌入式系統(tǒng)(重點)嵌入式系統(tǒng)的應用嵌入式系統(tǒng)的發(fā)展21嵌入式系統(tǒng)嵌入式計算機/嵌入式系統(tǒng)嵌入式計算機是專用計算機,以核心部件的形式出現(xiàn)在各種裝置、設(shè)備、產(chǎn)品和系統(tǒng)中。
嵌入式系統(tǒng)=嵌入式處理器+存儲器+接口電路/外圍電路+外設(shè)+嵌入式操作系統(tǒng)+應用軟件。22嵌入式系統(tǒng)嵌入式系統(tǒng)的概念嵌入式處理器及其分類嵌入式系統(tǒng)的組成嵌入式系統(tǒng)的特點嵌入式系統(tǒng)開發(fā)過程23嵌入式系統(tǒng)的概念含義通俗的說,嵌入系統(tǒng)就是將計算機的硬件或軟件嵌入到其它機電設(shè)備或應用系統(tǒng)中去,所構(gòu)成了一種新的系統(tǒng),即嵌入式系統(tǒng)。構(gòu)造原則以應用為中心、以計算機技術(shù)為基礎(chǔ),軟硬件可裁剪,應用系統(tǒng)對功能、可靠性、成本、體積、功耗和應用環(huán)境有特殊要求的專用計算機系統(tǒng);是將應用程序、操作系統(tǒng)和計算機硬件集成在一起的系統(tǒng)(技術(shù)角度)嵌入式系統(tǒng)是設(shè)計完成具有復雜功能的硬件和軟件,并使其緊密耦合在一起的計算機系統(tǒng)。(系統(tǒng)角度)24IEEE定義嵌入式系統(tǒng)是“用于控制、監(jiān)視或者輔助操作的機器、設(shè)備或裝置”(原文為devicesusedtocontrol,monitor,orassisttheoperationofequipment,machineryorplants)。通常執(zhí)行特定功能嵌入式系統(tǒng)的核心嵌入式微處理器具有嚴格的時序和穩(wěn)定性要求全自動操作循環(huán)嵌入式系統(tǒng)概念25嵌入式系統(tǒng)概念廣義上講,凡是帶有微處理器的專用軟硬件系統(tǒng)都可稱為嵌入式系統(tǒng)。如各類單片機和DSP系統(tǒng)。這些系統(tǒng)在完成較為單一的專業(yè)功能時具有簡潔高效的特點。從狹義上講,強調(diào)那些使用嵌入式微處理器構(gòu)成獨立系統(tǒng),具有自己操作系統(tǒng),具有特定功能,用于特定場合的嵌入式系統(tǒng)。本課程中的嵌入式系統(tǒng)是指狹義上的嵌入式系統(tǒng)。26嵌入式處理器嵌入式處理器的分類:
嵌入式微處理器(EMPU)、嵌入式微控制器(MCU)、嵌入式DSP處理器(EDSP)、嵌入式片上系統(tǒng)(SOC)。27嵌入式微處理器(EMPU)嵌入式微處理器
(EmbeddedMicroprocessorUnit,EMPU)嵌入式微處理器的基礎(chǔ)是通用計算機中的CPU。在應用中必須裝配在專門設(shè)計的電路板上,在電路板上必須包括ROM、RAM、總線接口、各種外設(shè)等器件(俗稱單板計算機)。嵌入式微處理器即CPU內(nèi)核,含有ALU+CU+REGs+內(nèi)總線應用:CPU+硬件接口(存儲器接口,鍵盤接口等)+輔助電路(時鐘、A/D、D/A、調(diào)試電路等)Z80系統(tǒng)28和工業(yè)控制計算機相比,嵌入式微處理器具有體積小、重量輕、成本低、可靠性高的優(yōu)點。嵌入式微處理器EMPU是由通用計算機中的CPU演變而來的,80386-80387。與通用計算機處理器不同的是,在實際嵌入式應用中只保留和嵌入式應用緊密相關(guān)的功能硬件,去除其他的冗余功能部分,這樣就以最低的功耗和資源實現(xiàn)嵌入式應用的特殊要求。29嵌入式處理器目前主要有Am186/88、386EX、SC-400、PowerPC、68000、MIPS、ARM系列等。為滿足嵌入式應用的特殊要求,嵌入式微處理器雖然在功能上和標準微處理器基本是一樣的,但在工作溫度、抗電磁干擾、可靠性等方面一般都做了各種增強。30嵌入式微控制器(MCU)嵌入式微控制器(MicrocontrollerUnit,MCU)
嵌入式微控制器俗稱單片機,是將整個計算機系統(tǒng)集成到一塊芯片中。單片機這種電子器件目前在嵌入式設(shè)備中仍然有著極其廣泛的應用。嵌入式微控制器一般是以某一種微處理器內(nèi)核為核心,芯片內(nèi)部集成ROM/EPROM、RAM、總線、總線邏輯、定時/計數(shù)器、WatchDog、I/O、串行口、脈寬調(diào)制輸出、A/D、D/A、FlashRAM、EEPROM等部件。類似把主板上的電路集成為一個芯片31MCU=CPU+存儲器+I/O接口+輔助電路(時鐘、A/D、D/A等)。微控制器的最大特點是單片化,體積大大減小,從而使功耗和成本下降、可靠性提高。微控制器是目前嵌入式系統(tǒng)工業(yè)的主流。微控制器的片上外設(shè)資源一般比較豐富,適合于控制,因此稱為微控制器。3233嵌入式微控制器目前的品種和數(shù)量最多,比較有代表性的通用系列包括8051、P51XA、MCS-51、MCS-96/196/296、C166/167、MC68HC05/11/12/16、68300等。目前MCU占嵌入式系統(tǒng)約70%的市場份額。近來Atmel推出的AVR單片機由于其集成了FPGA等器件,所以具有很高的性價比,勢必將推動單片機獲得更高的發(fā)展。34嵌入式DSP處理器(EDSP)嵌入式DSP處理器(EmbeddedDigitalSignalProcessor,EDSP)。嵌入式DSP是專用于信號的處理、計算,針對某些領(lǐng)域而設(shè)計的處理器。DSP處理器對系統(tǒng)結(jié)構(gòu)和指令進行了特殊設(shè)計,使其適合于執(zhí)行DSP算法,編譯效率較高,指令執(zhí)行速度也較高。DSP算法:數(shù)字濾波、FFT、譜分析等。35DSP的理論算法在70年代就已經(jīng)出現(xiàn),但是由于專門的DSP處理器還未出現(xiàn),所以這種理論算法只能通過MPU等由分立元件實現(xiàn)。1982年世界上誕生了首枚DSP芯片,在語音合成和編碼解碼器中得到了廣泛應用。DSP的運算速度的進一步提高,使得其應用領(lǐng)域也從上述范圍擴大到了通信和計算機方面。36課后閱讀材料嵌入式DSP處理器比較有代表性的產(chǎn)品是TexasInstruments的TMS320系列和Motorola摩托羅拉的DSP56000系列。TMS320系列處理器包括用于控制的C2000系列,移動通信的C5000系列,以及性能更高的C6000和C8000系列。摩托羅拉公司于1997年推出了24位DSP56300系列的首枚芯片DSP56301,并不斷升級,該系列24位DSP提供了大容量的片內(nèi)存儲器、濾波器、協(xié)處理器,具有較優(yōu)異的性能與體積、價位、功耗比。37嵌入式片上系統(tǒng)(SoC)片上系統(tǒng)SoC(SystemonChip):將系統(tǒng)功能模塊集成于一塊芯片上的系統(tǒng)。嵌入式片上系統(tǒng)從整個系統(tǒng)性能要求出發(fā),把微處理器、芯片結(jié)構(gòu)、外圍器件各層次電路與器件的設(shè)計緊密結(jié)合起來,并通過系統(tǒng)軟件和硬件的協(xié)同設(shè)計,在單個芯片上實現(xiàn)整個系統(tǒng)的功能。(專用集成電路的設(shè)計)隨著EDA的推廣和VLSI設(shè)計的普及化及半導體工藝的迅速發(fā)展,在一個硅片上實現(xiàn)一個更為復雜的系統(tǒng)的時代已來臨,這就是SystemOnChip(SOC)。各種通用處理器內(nèi)核將作為SOC設(shè)計公司的標準庫,和許多其它嵌入式系統(tǒng)外設(shè)一樣,成為VLSI設(shè)計中一種標準的器件,用標準的硬件編程語言VerilogHDL、VHDL描述,存儲在器件庫中。用戶只需定義出其整個應用系統(tǒng),仿真通過后就可以將設(shè)計圖交給半導體工廠制作樣品。這樣除個別無法集成的器件以外,整個嵌入式系統(tǒng)大部分均可集成到一塊或幾塊芯片中去,應用系統(tǒng)電路板將變得很簡潔,對于減小體積和功耗、提高可靠性非常有利。38課后閱讀材料SoC設(shè)計技術(shù)始于20世紀90年代中期,它是一種系統(tǒng)級的設(shè)計技術(shù)。SoC就是SystemonChip,SoC是一種基于IP(IntellectualProperty)核嵌入式系統(tǒng)設(shè)計技術(shù)。它結(jié)合了許多功能區(qū)塊,將功能做在一個芯片上,ARMRISC、MIPSRISC、DSP或是其他的微處理器核心,加上通信的接口單元,例如通用串行端口(USB)、TCP/IP通信單元、GPRS通信接口、GSM通信接口、IEEE1394、藍牙模塊接口等等,這些單元以往都是依照各單元的功能做成一個個獨立的處理芯片。SOC可以分為通用和專用兩類。39使用大規(guī)??删幊踢壿嬯嚵蠧PLD/FPGA(Field-ProgrammableGateArray)進行芯片設(shè)計的技術(shù)稱為可編程片上系統(tǒng)技術(shù),即SoPC(SystemonProgrammablechip)。片上系統(tǒng)SOC.docASICCoreMemoryEmbeddedProcessorCoreAnalogFunctionsCommunicationSensorInterface40嵌入式系統(tǒng)的組成嵌入式系統(tǒng)=嵌入式處理器+存儲器+接口外圍電路+外設(shè)+嵌入式操作系統(tǒng)+應用軟件。硬件部分軟件部分開發(fā)環(huán)境41嵌入式系統(tǒng)的軟/硬件框架42硬件部分存儲器接口電路外圍電路43嵌入式微處理器EMPU——嵌入式微處理器EMCU——嵌入式微控制器EDSP——嵌入式數(shù)字信號處理器ESoC——嵌入式片上系統(tǒng)44存儲器存儲數(shù)據(jù)和程序的功能部件稱為存儲器。嵌入式系統(tǒng)的存儲器按其所處位置分為內(nèi)部存儲器和外部存儲器:內(nèi)部存儲器位于嵌入式處理器芯片內(nèi)部,其特點是容量小、可快速訪問。外部存儲器位于嵌入式處理器芯片外部,其特點是容量大、訪問速度慢。(利用接口擴展存儲器)內(nèi)部存儲器位于嵌入式處理器所在的同一個芯片中,這樣,處理器可以不需要多余的訪問電路就可快速訪問。外部存儲器與嵌入式處理器分別處于不同的芯片中,因此,需要在處理器和存儲器之間增加附加電路,且訪問速度慢。45存儲器的類型靜態(tài)易失性存儲器SRAM動態(tài)存儲器DRAM非易失性存儲器:EPROM
紫外線可擦除可編程存儲器。內(nèi)部存儲器位于嵌入式處理器芯片內(nèi)部,其特點是容量小、可快速訪問。EEPROM電可擦除可編程存儲器。Flash閃速存儲器(FlashMemory)亦稱快擦寫存儲器。主要特點是既可在不加電的情況下長期保存信息,有非易失性,又能在線進行快速擦除與重寫,兼具有EEPROM和SRAM的優(yōu)點。其集成度與位價格己接近EPROM,是代替EPROM和EEPROM的理想器件。
46接口電路外圍電路通信接口:用于不同設(shè)備之間的數(shù)據(jù)交換。常見的通信接口:RS-232串口、USB通用串行總線接口,Ethernet接口、IrDA紅外接口、藍牙接口等。RS-232接口(通用異步收發(fā)器,UniversalAsynchronousReceiverTransmitter,UART)軟件開發(fā)調(diào)試時,用于進行各種輸入輸出操作。USB接口:通用串行總線Ethernet(以太網(wǎng)接口):目前常用100Mbps47輸入輸出設(shè)備,電源及輔助設(shè)備輸入/輸出設(shè)備LCD:液晶顯示器。觸摸屏:觸摸屏可實現(xiàn)鼠標和鍵盤功能。
工作原理:觸摸屏由觸摸檢測部件和觸摸屏控制器組成;觸摸檢測部件安裝在顯示器屏幕前面,用于檢測用戶觸摸位置,接受后送觸摸屏控制器;觸摸屏控制器的主要作用是從觸摸點檢測裝置上接收觸摸信息,并將它轉(zhuǎn)換成觸點坐標,再送給CPU,它同時能接收CPU發(fā)來的命令并加以執(zhí)行。電源及輔助設(shè)備48最小硬件系統(tǒng)49軟件部分軟件部分包括嵌入式操作系統(tǒng)以及相應的各種應用程序。嵌入式操作系統(tǒng):一種支持嵌入式系統(tǒng)應用的操作系統(tǒng)軟件,具有編碼體積小,面向應用,可裁剪和移植,實時性強,可靠性高,專用性強等特點。典型的嵌入式操作系統(tǒng)有:商用型:windowsCE,vxWork等。免費型:嵌入式Linux,μC/OS-II等。閱讀資料:典型嵌入式操作系統(tǒng).doc50嵌入式操作系統(tǒng)的結(jié)構(gòu)框圖51嵌入式操作系統(tǒng)的組成嵌入式操作系統(tǒng)通常包括:驅(qū)動層:硬件相關(guān)的底層驅(qū)動軟件和設(shè)備驅(qū)動接口;如:LCD、觸摸屏的驅(qū)動及接口。操作系統(tǒng)層:系統(tǒng)內(nèi)核(基本模塊),擴展模塊(可裁剪)。應用層:應用程序接口。52進程的調(diào)度:調(diào)度程序的執(zhí)行,由某些特定事件引起,如進程的創(chuàng)建,進程的刪除,時鐘的嘀嗒,外設(shè)的中斷事件等。調(diào)度算法:先來先服務FCFS、輪詢、優(yōu)先級算法及其三種算法的各種組合。存儲管理:因系統(tǒng)資源有限,嵌入式系統(tǒng)通常采用動態(tài)內(nèi)存管理(不采用虛擬內(nèi)存管理)。動態(tài)管理:當某程序需使用內(nèi)存時,利用操作系統(tǒng)提供的分配函數(shù)分配內(nèi)存,用完通過釋放函數(shù)釋放其所占內(nèi)存。文件管理操作系統(tǒng)層的作用:53嵌入式系統(tǒng)的軟件開發(fā)嵌入式系統(tǒng)的軟件開發(fā)與通用軟件開發(fā)的區(qū)別:軟件實現(xiàn)部分,可分為交叉編譯和交叉調(diào)試兩部分。交叉編譯嵌入式軟件開發(fā)所采用的編譯為交叉編譯。在一種計算機環(huán)境中運行的編譯程序,能編譯出在另外一種環(huán)境下運行的代碼,稱這種編譯器支持交叉編譯。簡單地說,就是在一個平臺上生成另一個平臺上的可執(zhí)行代碼。
要進行交叉編譯,需要在主機平臺上安裝對應的交叉編譯器,然后用這個交叉編譯器編譯源代碼,最終生成可在目標平臺上運行的代碼。54常見的交叉編譯器如下:1、在WindowsPC上,利用ADS(ARM開發(fā)環(huán)境),使用armcc編譯器,則可編譯出針對ARMCPU的可執(zhí)行代碼。2、在LinuxPC上,利用arm-linux-gcc編譯器,可編譯出針對LinuxARM平臺的可執(zhí)行代碼。3、在WindowsPC上,利用cygwin環(huán)境,運行arm-elf-gcc編譯器,可編譯出針對ARMCPU的可執(zhí)行代碼。宿主機(host):編譯程序的平臺,一般是基于X86的PC機,通常也被稱為主機。
目標機(target):用戶開發(fā)的系統(tǒng),通常都是非X86平臺。host編譯得到的可執(zhí)行代碼在targer上運行。在主機平臺上開發(fā)程序,并在這個平臺上運行交叉編譯器,編譯應用程序;而由交叉編譯器生成的程序?qū)⒃谀康钠脚_上運行。
55交叉編譯過程如圖所示:編輯器交叉編譯器交叉連接器目標程序可供固化的執(zhí)行程序庫文件源程序56交叉調(diào)試嵌入式軟件經(jīng)過編譯和鏈接后即進入調(diào)試階段,調(diào)試是軟件開發(fā)過程中必不可少的一個環(huán)節(jié)。在通用軟件開發(fā)中,調(diào)試器與被調(diào)試的程序往往運行在同一臺計算機上,調(diào)試器是一個單獨運行著的進程,它通過操作系統(tǒng)提供的調(diào)試接口來控制被調(diào)試的進程。在嵌入式軟件開發(fā)中,調(diào)試時采用的是在宿主機和目標機之間進行的交叉調(diào)試,調(diào)試器仍然運行在宿主機的通用操作系統(tǒng)之上,但被調(diào)試的進程卻是運行在基于特定硬件平臺的嵌入式操作系統(tǒng)中,調(diào)試器和被調(diào)試進程通過串口或者網(wǎng)絡進行通信,調(diào)試器可以控制、訪問被調(diào)試進程,讀取被調(diào)試進程的當前狀態(tài),并能夠改變被調(diào)試進程的運行狀態(tài)。57交叉調(diào)試(CrossDebug)又常常被稱為遠程調(diào)試(RemoteDebug),是一種允許調(diào)試器以某種方式控制目標機上被調(diào)試進程的運行方式,并具有查看和修改目標機上內(nèi)存單元、寄存器以及被調(diào)試進程中變量值等各種調(diào)試功能的調(diào)試方式。一般而言,遠程調(diào)試過程的結(jié)構(gòu)如圖所示。
58交叉調(diào)試的典型特點:調(diào)試器和被調(diào)試進程運行在不同的機器上,調(diào)試器運行在PC或者工作站上(宿主機),而被調(diào)試的進程則運行在各種專業(yè)調(diào)試板上(目標機)。調(diào)試器通過某種通信方式與被調(diào)試進程建立聯(lián)系,如串口、并口、網(wǎng)絡、DBM、JTAG或者專用的通信方式。在目標機上一般會具備某種形式的調(diào)試代理,它負責與調(diào)試器共同配合完成對目標機上運行著的進程的調(diào)試。這種調(diào)試代理可能是某些支持調(diào)試功能的硬件設(shè)備(如DBI2000),也可能是某些專門的調(diào)試軟件(如gdbserver)。目標機可能是某種形式的系統(tǒng)仿真器,通過在宿主機上運行目標機的仿真軟件,整個調(diào)試過程可以在一臺計算機上運行。此時物理上雖然只有一臺計算機,但邏輯上仍然存在著宿主機和目標機的區(qū)別。59嵌入式系統(tǒng)的開發(fā)工具和環(huán)境開發(fā)工具一般用于開發(fā)系統(tǒng)主機,包括語言編譯器、連接定位器、調(diào)試器等。注意:嵌入式系統(tǒng)的硬件和軟件位于嵌入式系統(tǒng)產(chǎn)品本身,開發(fā)工具則獨立于嵌入式系統(tǒng)產(chǎn)品之外。60開發(fā)環(huán)境什么是嵌入式開發(fā)環(huán)境:源程序編譯器目標文件鏈接器可重定位程序定位器可執(zhí)行文件編譯器/匯編器/鏈接定位器調(diào)試器/仿真器主機(Host)及其工作平臺測試工具(可選)其他輔助設(shè)備(可選)
典型的開發(fā)環(huán)境61ARM的編譯器ADS1.2(windows環(huán)境)ARM公司出品IDE環(huán)境,包括ARM/Thumb匯編器:armasmANSIC編譯器-armcc
和tccISO/EmbeddedC++編譯器-armcppandtcpp鏈接器–armlinkWindows集成開發(fā)環(huán)境–CodeWarrior格式轉(zhuǎn)換器–fromelf庫管理器-armar調(diào)試器模擬調(diào)試器:ARMulatorJTAG調(diào)試:AXD(與Multi-ICE配合)支持所有ARM內(nèi)核,最新版本:RealView2.062嵌入式系統(tǒng)的調(diào)試嵌入式系統(tǒng)的調(diào)試常用的基本方法模擬調(diào)試(Simulator)全仿真調(diào)試(Emulator)BDM/JTAG調(diào)試(BDM/JTAGDebugger),即片上調(diào)試嵌入式系統(tǒng)的調(diào)試模擬調(diào)試(Simulator)調(diào)試器和待調(diào)試的嵌入式軟件都在主機上運行,由主機提供一個模擬的目標運行環(huán)境,可以進行語法和邏輯上的調(diào)試。大多數(shù)調(diào)試工具都提供Simulator功能在ARM系統(tǒng)開發(fā)工具ADS集成開發(fā)環(huán)境下的AXD工具就是采用了這種仿真模擬調(diào)試的方法。該調(diào)試方法是一種脫離硬件調(diào)試軟件的方法,它與運行在通用計算機(通常是x86體系結(jié)構(gòu))上的調(diào)試器相連接,模擬ARM微處理器體系結(jié)構(gòu)和指令集,提供了開發(fā)和調(diào)試ARM程序的軟件仿真環(huán)境。不僅可以仿真ARM處理器的體系結(jié)構(gòu)和指令集,還可以仿真存儲器和處理器外圍設(shè)備,例如中斷控制
器和定時器等,這樣就模擬了一個進行嵌入
式開發(fā)的最小子系統(tǒng),另外使用者還可以擴
展添加自己的外設(shè)。63優(yōu)點:簡單方便,不需要目標板,成本低缺點:功能非常有限,無法實時調(diào)試6465全仿真調(diào)試(Emulator)全仿真原理如圖所示:目標機程序ICE仿真器調(diào)試器宿主機嵌入式系統(tǒng)的調(diào)試目標系統(tǒng)程序駐留在目標機內(nèi)存中,而調(diào)試代理存放在ICE的MEM中。當處于正常運行狀態(tài)時,ICE處理器從目標內(nèi)存讀取指令。當調(diào)試代理控制目標系統(tǒng)時,ICE從自己的本地MEM中讀取指令。這種設(shè)計確保ICE始終保持對系統(tǒng)運行的控制,甚至在目標系統(tǒng)崩潰后也是如此,保護調(diào)試代理不受目標系統(tǒng)錯誤的破壞。66ICE提供自己的CPU和MEM,不再依賴目標系統(tǒng)的CPU和MEM。這種方式用仿真器完全取代目標板上的MCU,因而目標系統(tǒng)對開發(fā)者來說完全是透明的、可控的。仿真器是仿照目標機上的CPU而專門設(shè)計的硬件,可以完全仿真處理器芯片的行為,并且提供了非常豐富的調(diào)試功能。在使用在線仿真器進行調(diào)試的過程中,可以按順序單步執(zhí)行,也可以倒退執(zhí)行,還可以實時查看所有需要的數(shù)據(jù),從而給調(diào)試過程帶來了很多的便利。仿真器與目標板通過仿真頭連接,與主機有串口、并口、網(wǎng)口或USB口等連接方式。由于仿真器自成體系,調(diào)試時既可以連接目標板,也可以不連接目標板(Standalone)。優(yōu)點:功能非常強大,軟硬件均可做到完全實時在線調(diào)試缺點:價格昂貴。嵌入式系統(tǒng)的調(diào)試BDM/JTAG調(diào)試這種方式有一個硬件調(diào)試體。該硬件調(diào)試體與目標板通過BDM、JTAG等調(diào)試接口相連,與主機通過串口、并口、網(wǎng)口或USB口相連。待調(diào)試軟件通過BDM/JTAG調(diào)試器下載到目標板上運行。這類CPU內(nèi)部嵌入額外的硬件控制模塊,當滿足了特定的觸發(fā)條件時進入某種特殊狀態(tài),以進行調(diào)試。BDM(BackgroundDebugModel,背景調(diào)試模式)是Motorola公司的專有調(diào)試接口,該公司是第一個把具有CPU調(diào)試功能的特殊硬件放在CPU核心中的嵌入式微處理器廠商,BDM開創(chuàng)了片上集成調(diào)試資源的趨勢。TargetPC接口BDM/JTAGDebugger69在調(diào)試主機和目標板之間有一個協(xié)議轉(zhuǎn)換模塊,一般稱為調(diào)試代理,其作用主要有兩個:一個是在調(diào)試主機和目標板之間進行協(xié)議轉(zhuǎn)換;另一個是進行接口轉(zhuǎn)換,目標板的一端是標準的JTAG接口,而調(diào)試主機一端可能是RS232串口,也可能是并口或是USB接口等。優(yōu)點:方便、簡單,軟硬件均可調(diào)試缺點:需要目標板,且目標板工作基本正常(至少MCU工作正常),僅適用于有調(diào)試接口的芯片 6869UP-NETARM3000嵌入式實驗平臺70UP-CPUS2410實驗平臺71開發(fā)環(huán)境的硬件連接72嵌入式系統(tǒng)的特點通常是面向特定應用的;嵌入式系統(tǒng)的個性化很強,其中的軟件系統(tǒng)和硬件的結(jié)合非常緊密,一般要針對硬件進行系統(tǒng)的移植。同時針對不同的任務,往往需要對系統(tǒng)進行較大更改,程序的編譯下載要和系統(tǒng)相結(jié)合,這種修改和通用軟件的“升級”是完全不同的概念。嵌入式系統(tǒng)功耗低、體積小、集成度高、成本低;功耗限制:嵌入式系統(tǒng)中,尤其是在用電池供電的嵌入式系統(tǒng)中,這是一個主要考慮的因素。大耗電量直接影響到硬件費用,并影響電源壽命以及帶來散熱問題。低成本:包含硬件成本和軟件成本。硬件成本主要決定于所使用的微處理器、所需的內(nèi)存及相應的外圍芯片;軟件成本通常難于預測,但一個好的設(shè)計方法有利于降低軟件成本??臻g和各種資源相對不足,必須高效率地進行設(shè)計,量體裁衣、去除冗余;73嵌入式系統(tǒng)具有較長的生命周期;嵌入式系統(tǒng)具有固化的代碼;為了提高執(zhí)行速度和系統(tǒng)可靠性,嵌入式系統(tǒng)中的軟件一般都固化在存儲器芯片或單片機本身中,而不是存貯于磁盤等載體中,系統(tǒng)上電后程序開始執(zhí)行直至系統(tǒng)關(guān)閉,程序是不能被改變的嵌入式系統(tǒng)開發(fā)需要專用開發(fā)工具和環(huán)境;嵌入式系統(tǒng)軟件需要RTOS開發(fā)平臺;嵌入式系統(tǒng)開發(fā)人員以應用專家為主;74嵌入式系統(tǒng)開發(fā)概述嵌入式系統(tǒng)的開發(fā)主要分為系統(tǒng)總體開發(fā)、嵌入式硬件開發(fā)和嵌入式軟件開發(fā)3大部分。流程圖如下所示:嵌入式系統(tǒng)的開發(fā)流程圖。
1.需求分析確定設(shè)計任務和目標,并制定說明規(guī)格文檔,作為下一步設(shè)計的指導和驗收標準。需求分析往往要與用戶反復交流,以明確系統(tǒng)功能需求,性能需求,環(huán)境、可靠性、成本、功耗、資源等需求。752.系統(tǒng)體系結(jié)構(gòu)設(shè)計體系結(jié)構(gòu)設(shè)計是嵌入式系統(tǒng)的總體設(shè)計,它需要確定嵌入式系統(tǒng)的總體構(gòu)架,從功能上對軟硬件進行劃分。在此基礎(chǔ)上,確定嵌入式系統(tǒng)的硬件選型(主要是處理器選型),操作系統(tǒng)的選擇和開發(fā)環(huán)境的選擇3.硬件的設(shè)計、制作及測試在這一階段要確定硬件部分的各功能模塊及模塊之間的關(guān)聯(lián),并在此基礎(chǔ)上完成元器件的選擇、原理圖繪制、印刷電路板(PCB)設(shè)計、硬件的裝配與測試、目標硬件最終的確定和測試。764.軟件的設(shè)計、實現(xiàn)及測試這部分工作與硬件開發(fā)并行、交互進行。軟件設(shè)計主要完成引導程序(BootLoader)的編制、操作系統(tǒng)的移植、驅(qū)動程序的開發(fā)、應用軟件的編寫等工作。設(shè)計完成后,軟件開發(fā)進入實現(xiàn)階段。這一階段主要是嵌入式軟件的生成(編譯、鏈接),調(diào)試和固化運行,最后完成軟件的測試。775.系統(tǒng)集成將測試完成的軟件系統(tǒng)裝入制作好的硬件系統(tǒng)中,進行系統(tǒng)綜合測試,驗證系統(tǒng)功能是否能夠正確無誤地實現(xiàn),最后將正確的軟件固化在目標硬件中。本階段的工作是整個開發(fā)過程中最復雜、最費時的,特別需要相應的輔助工具支持。6.系統(tǒng)性能測試及可靠性測試測試最終完成的系統(tǒng)性能是否滿足設(shè)計任務書的各項性能指標和要求。若滿足,則可將正確無誤的軟件固化在目標硬件中;若不能滿足,在最壞的情況下,則需要回到設(shè)計的初始階段重新進行設(shè)計方案的制定。78內(nèi)容提要計算機系統(tǒng)的分類嵌入式系統(tǒng)嵌入式系統(tǒng)的應用嵌入式系統(tǒng)的發(fā)展79嵌入式系統(tǒng)的發(fā)展嵌入式系統(tǒng)本身是一個相對模糊的定義。一個手持的MP3和一個PC104的微型工業(yè)控制計算機都可以認為是嵌入式系統(tǒng)。嵌入式系統(tǒng)已經(jīng)有了近50年的發(fā)展歷史,它是硬件和軟件交替發(fā)展的雙螺旋式發(fā)展。80嵌入式系統(tǒng)的發(fā)展歷程嵌入式系統(tǒng)出現(xiàn)于20世紀60年代,50多年來隨著計算機技術(shù)、電子信息技術(shù)的發(fā)展,嵌入式系統(tǒng)的各項技術(shù)蓬勃發(fā)展,市場迅猛擴大,已深入生產(chǎn)和生活的各個角落。嵌入式系統(tǒng)發(fā)展的三個階段嵌入式系統(tǒng)的出現(xiàn)和興起(1960-1970)嵌入式系統(tǒng)走向繁榮,軟件、硬件日臻完善(1971-1989)嵌入式系統(tǒng)應用走向縱深化發(fā)展,富有挑戰(zhàn)(1990-至今)81嵌入式系統(tǒng)的出現(xiàn)和興起第一代電子管計算機(1946~1957年),無法滿足嵌入式計算所要求的體積小、重量輕、耗電少、可靠性高、實時性強等一系列要求。第一個被大家認可的現(xiàn)代嵌入式系統(tǒng)麻省理工學院儀器研究室的查爾斯·斯塔克·德雷珀開發(fā)的阿波羅導航計算機。在兩次月球飛行中他們在太空駕駛艙和月球登陸艙都是用了這種慣性制導系統(tǒng)。在計劃剛開始的時候,阿波羅導航計算機被認為是阿波羅計劃風險最大的部分。為了減小尺寸和重量而使用的當時最新的單片集成電路加大了這種風險。82嵌入式系統(tǒng)的出現(xiàn)和興起60年代,第二代晶體管計算機系統(tǒng)開始應用:第一臺機載專用數(shù)字計算機是美國海軍艦載轟炸機“民團團員”號研制的多功能數(shù)字分析器(Verdan)。第一款大批量生產(chǎn)的嵌入式系統(tǒng)1961年發(fā)布的民兵I導彈上的D-17自動導航控制計算機,是由獨立的晶體管邏輯電路建造的,帶有一個作為主內(nèi)存的硬盤。民兵II導彈在1966年開始生產(chǎn),D-17第一次使用大量集成電路的計算機。民兵計算機:制導算法能夠在項目后期重新編程以獲得更高的導彈精度,并且計算機能夠測試導彈,從而節(jié)省電纜和接頭的重量。1962年美國乙烯廠實現(xiàn)了工業(yè)裝置中的第一個直接數(shù)字控制。831965~1970年,第三代集成電路化計算機系統(tǒng)應用:第一次使用機載數(shù)字計算機控制:1965年發(fā)射的Gemini3號第一次通過容錯來提高可靠性:1968年阿波羅4號、土星5號。84嵌入式系統(tǒng)走向繁榮,軟、硬件日臻完善嵌入式系統(tǒng)的大發(fā)展是在微處理器問世之后:1971年11月,Intel公司推出了第一片微處理器Intel4004。
人們再也不必為設(shè)計一臺專用機而研制專用的電路、專用的運算器了,只需以微處理器為基礎(chǔ)進行設(shè)計。1976年,第一個單片機Intel8048出現(xiàn)。微控制器:許多以前是外部系統(tǒng)的元件被集成到同一個處理器芯片。1美元以下,使得嵌入式系統(tǒng)的大規(guī)模應用成為可能1982年,第一個DSP出現(xiàn),比同期的CPU快10~50倍。80年代后期,第三代DSP芯片出現(xiàn)。八十年代末期,嵌入式系統(tǒng)已經(jīng)出現(xiàn)在幾乎所有的電子設(shè)備軟件技術(shù)的進步使嵌入式系統(tǒng)日臻完善:早期嵌入式系統(tǒng):采用匯編語言,基本不采用操作系統(tǒng)隨著硬件的提升、軟件技術(shù)發(fā)展:高級語言+操作系統(tǒng)85嵌入式系統(tǒng)應用走向縱深化發(fā)展應用充分普及:工業(yè)控制、數(shù)字化通訊、數(shù)字化家電汽車:50個到300個嵌入式微處理器飛機:70個以上嵌入式系統(tǒng)嵌入式微處理器32位、64位、128位嵌入式實時操作系統(tǒng)使用比率越來越高早期:10%;90年代初:30%;目前:80~90%嵌入式系統(tǒng)開發(fā)工具越來越豐富嵌入式系統(tǒng)產(chǎn)業(yè)鏈形成嵌入式系統(tǒng)時效性越來越明顯86嵌入式系統(tǒng)發(fā)展趨勢軟硬件系統(tǒng)整合SOC設(shè)計體積小、散熱好、低功耗、可靠性高應用領(lǐng)域拓展傳感器網(wǎng)絡、普適計算內(nèi)容服務增加87嵌入式系統(tǒng)目前的挑戰(zhàn)出現(xiàn)挑戰(zhàn)的起因嵌入式系統(tǒng)的目的:適應計算機向傳統(tǒng)電子產(chǎn)品迅速推進原因一:嵌入式系統(tǒng)發(fā)展與計算機技術(shù)發(fā)展越行越遠嵌入式系統(tǒng)與計算機技術(shù),走了兩條獨立的道路嵌入式系統(tǒng)將計算機技術(shù)實用化,電子化,產(chǎn)品化嵌入式系統(tǒng)依賴于硬件推進帶動軟件升級,嵌入式軟件構(gòu)件化困難形成兩類技術(shù)路線ARM為基礎(chǔ)的嵌入式硬件技術(shù),定制軟件X86為基礎(chǔ)的計算機硬件技術(shù),通用軟件兩者之間共享性極差,成果難以共享88人員培養(yǎng)的困難,互相交集很少嵌入式工程師,一般通曉軟硬件;國內(nèi)出現(xiàn)嵌入式系統(tǒng)工程師計算機工程師、架構(gòu)師、程序員/軟件工程師,分工細致;89嵌入式系統(tǒng)目前的挑戰(zhàn)原因二:計算機技術(shù)逐步以通用化戰(zhàn)勝專用化通用處理器模塊化降低了成本超級計算機大規(guī)模使用通用處理器通用處理器可以IP復用甚至開源SUN開源了2款通用處理器源碼通用處理器功耗已經(jīng)到0.65瓦,逼近0.5瓦的門檻通用處理器也走RISC路線與SOC路線,降低了功耗接口豐富虛擬化技術(shù)、云計算,抹平了硬件差異性通用計算機以USB對抗GPIO,豐富外圍設(shè)備接口開發(fā)通用設(shè)備硬件資源雖然浪費,但是硬件開發(fā)成本低軟件成本更低,人力成本、軟件復用90嵌入式系統(tǒng)目前的挑戰(zhàn)原因三:嵌入式技術(shù)逐步桌面化軟件Linux操作系統(tǒng)嵌入式WindowsXP硬件通用處理器用于MID、UMPC多核廠家計算機廠家、互聯(lián)網(wǎng)廠家介入嵌入式產(chǎn)品以手機革命為例2007年:蘋果iPhone2008年:谷歌gPhone革了誰的命?桌面也在嵌入式化移動計算機91嵌入式開發(fā)人員劃分嵌入式硬件工程師硬件設(shè)計器件選擇、PCB板設(shè)計等HDL語言硬件的軟件接口Bootloader程序C與匯編嵌入式軟件程序員系統(tǒng)程序員嵌入式操作系統(tǒng)移植、驅(qū)動程序移植C與匯編應用程序員:應用軟件開發(fā)C++、java等高級語言9192內(nèi)容提要計算機系統(tǒng)的分類嵌入式系統(tǒng)嵌入式系統(tǒng)的發(fā)展嵌入式系統(tǒng)的應用93嵌入式系統(tǒng)的應用嵌入式移動數(shù)據(jù)庫;嵌入式系統(tǒng)在智能家居網(wǎng)絡中的應用;嵌入式語音芯片;基于小范圍無線通信協(xié)議的嵌入式產(chǎn)品;其它工控和仿真領(lǐng)域。嵌入式系統(tǒng)的應用.doc94移動終端類汽車電子類工業(yè)控制類通信類信息家電類95goReaderInterneteBookSamsungAnyWebInternetScreenPhoneeRemoteIntelligentHomeControllerTektronixTDS7000DigitalOscilloscopesNixvueDigitalAlbumDigitalPhotoAlbum一些典型的嵌入式系統(tǒng)應用實例96嵌入式系統(tǒng)的應用家用方面:數(shù)字電視、信息家電、智能玩具、手持通訊、存儲設(shè)備的核心。97嵌入式視頻服務器98現(xiàn)代化家庭99計算機系統(tǒng)的三大領(lǐng)域服務器利潤最大的市場可用性可擴展性有效帶寬桌面最廣闊的市場嵌入式潛力最大的市場1002.1計算機體系結(jié)構(gòu)計算機中,按內(nèi)存的組成分兩種典型的結(jié)構(gòu):1.馮·諾依曼結(jié)構(gòu)/普林斯頓結(jié)構(gòu)101馮·諾依曼體系結(jié)構(gòu)指令寄存器控制器數(shù)據(jù)通道輸入輸出中央處理器存儲器程序指令0指令1指令2指令3指令4數(shù)據(jù)數(shù)據(jù)0數(shù)據(jù)1數(shù)據(jù)2結(jié)構(gòu)特點:1、指令和數(shù)據(jù)存儲在相同的內(nèi)存空間,但存儲地址不同。2、處理器利用相同的總線處理內(nèi)存中的指令和數(shù)據(jù),指令和數(shù)據(jù)具有相同的數(shù)據(jù)寬度,指令與數(shù)據(jù)無法同時存取。ARM7嵌入式微處理器亦采用此結(jié)構(gòu)102哈佛體系結(jié)構(gòu)指令寄存器控制器數(shù)據(jù)通道輸入輸出CPU程序存儲器指令0指令1指令2數(shù)據(jù)存儲器數(shù)據(jù)0數(shù)據(jù)1數(shù)據(jù)2地址指令地址數(shù)據(jù)結(jié)構(gòu)特點:1、指令存儲和數(shù)據(jù)存儲分開,指令和數(shù)據(jù)分別位于不同的存儲空間。2、指令與數(shù)據(jù)的存取采用不同總線,取指令和存取數(shù)據(jù)可同時進行,微處理器具有較高的執(zhí)行效率。數(shù)字信號處理器DSP通常采用哈佛結(jié)構(gòu),ARM9嵌入式微處理器亦采用此結(jié)構(gòu)。103第2章ARM微處理器硬件結(jié)構(gòu)12計
算
機
體
系
結(jié)
構(gòu)
ARM處理器結(jié)構(gòu)和技術(shù)特征ARM處理器模式及內(nèi)部寄存器
34ARM
存
儲系統(tǒng)機制1042.2ARM公司簡介成立于1990年11月前身為Acorn計算機公司AdvanceRISCMachine(ARM)主要設(shè)計ARM系列RISC處理器內(nèi)核授權(quán)ARM內(nèi)核給生產(chǎn)和銷售半導體的合作伙伴ARM公司不生產(chǎn)芯片IP(IntelligenceProperty)另外也提供基于ARM架構(gòu)的開發(fā)設(shè)計技術(shù)軟件工具,評估板,調(diào)試工具,應用軟件,總線架構(gòu),外圍設(shè)備單元,等等105ARM授權(quán)費IPARM創(chuàng)造和設(shè)計IPPartner產(chǎn)品,例如:芯片Partner把ARMIP和其他IP集成進產(chǎn)品OEMCustomer版權(quán)費單價OEM用來自ARMPartner的芯片設(shè)計制造最終用戶產(chǎn)品業(yè)務拓展/市場格局ARM的業(yè)務模型106
ARM簡介將技術(shù)授權(quán)給其它芯片廠商形成各具特色的ARM芯片...107ARM處理器內(nèi)核(簡稱ARM核)所謂ARM核就是傳統(tǒng)意義上的微處理器,目前ARM公司共推出了7個ARM版本,這些版本的變化主要體現(xiàn)在內(nèi)核的變化和內(nèi)核的擴展。
ARM核=ALU+CU+REGs+內(nèi)部總線主要包括:1、算術(shù)邏輯部件2、控制部件3、寄存器組4、內(nèi)部總線。算術(shù)邏輯單元寄存器控制單元微處理器存儲器輸入輸出108ARM簡介ARM處理器的應用當前主要應用于消費類電子領(lǐng)域;到目前為止,基于ARM技術(shù)的微處理器應用約占據(jù)了32位嵌入式微處理器75%以上的市場份額全球80%的GSM/3G手機、99%的CDMA手機以及絕大多數(shù)PDA產(chǎn)品均采用ARM體系的嵌入式處理器“掌上計算”相關(guān)的所有領(lǐng)域皆為其所主宰。ARM技術(shù)正在逐步滲入到我們生活的各個方面109ARM簡介ARM體系結(jié)構(gòu)
ARM處理器為RISC芯片,其簡單的結(jié)構(gòu)使ARM內(nèi)核非常小,這使得器件的功耗也非常低。它具有經(jīng)典RISC的特點:大的、統(tǒng)一的寄存器文件;裝載/保存結(jié)構(gòu),數(shù)據(jù)處理操作只針對寄存器的內(nèi)容,而不直接對存儲器進行操作;簡單的尋址模式;統(tǒng)一和固定長度的指令域,簡化了指令的譯碼,便于指令流水線設(shè)計。110ARM體系結(jié)構(gòu)版本ARM體系結(jié)構(gòu)共定義了7個版本,版本號分別為1-7。同時,各版本中還有一些變種,這里將某些特定功能稱為ARM體系的某種變種(variant)
ARM體系結(jié)構(gòu)版本的變化主要體現(xiàn):增加ARM核外圍的組件以改善ARM性能、增加內(nèi)核的功能。硬件ARM核外圍的組件擴展:1、cache和緊耦合存儲器TCM(片上RAM)2、存儲管理部件 MMU3、協(xié)處理器(配置cache、TCM和存儲管理)111ARM核的擴充功能:1、T變種:Thumb指令集2、M變種:增加64位長乘法指令3、E變種:增強型DSP指令,E變種的ARM體系增加了一些增強處理器對典型的DSP算法處理能力的附加指令。4、J變種:java加速器Jazelle提供了Java加速功能,使得Java代碼的運行速度比普通的Java虛擬機提高了8倍。
5、SIMD變種(單指令流多數(shù)據(jù)流):ARM媒體功能擴展,
ARM媒體功能擴展SIMD技術(shù)極大地提高了嵌入式應用系統(tǒng)的音頻和視頻處理能力,可使微處理器的音頻和視頻處理性能提高4倍。112ARM簡介各ARM體系結(jié)構(gòu)版本ARM體系結(jié)構(gòu)從最初開發(fā)到現(xiàn)在有了很大的改進,并仍在完善和發(fā)展。為了清楚的表達每個ARM應用實例所使用的指令集,ARM公司定義了7種主要的ARM指令集體系結(jié)構(gòu)版本,以版本號V1~V7表示。113ARM體系結(jié)構(gòu)版本ARM體系結(jié)構(gòu)版本V1-V7(自學)主要是:尋址能力提高、增加不同的指令增加不同的硬件處理部件在不同的版本,有不同應用的處理芯片ARMv7定義了3種不同的處理器配置(processorprofiles):
ProfileA是面向復雜、基于虛擬內(nèi)存的OS和應用;ProfileR是針對實時系統(tǒng);ProfileM是針對低成本應用的系統(tǒng)。
114ARM處理器的分類結(jié)構(gòu)體系版本(Architecture)ARMv4TARMv5TEARMv6ARMCortex(v7)
ProcessorFamilyARM7ARM9ARM10ARM11ARMCortex115ARM各系列處理器(作資料了解)
ARM公司開發(fā)了很多系列的ARM處理器核,目前最新的系列已經(jīng)是ARM11了,而ARM6核以及更早的系列已經(jīng)很罕見了。目前應用比較廣泛的系列是:ARM7ARM9ARM9EARM10ARM11SecurCoreCortexXscale116ARM命名規(guī)則1、基于ARMArchitecture的版本命名規(guī)則|ARM
Vn
|variants
|x(variants)
|
Vn
n--指令集版本號,n[1:7]。variants--變種。x(variants)--排除x后指定的變種例,ARMv5TxM表示ARM指令集版本為5,支持T變種,不支持M變種。1172、基于ARMArchitecture版本的處理器系列命名規(guī)則ARM{x}{y}{z}{T}{D}{M}{I}{E}{J}{F}{-S}·x--處理器系列,如ARM7、ARM9
·y--存儲管理/保護單元,若為2包括內(nèi)存管理單元(MMU),若為4包括內(nèi)存保護單元(MPU)·z–cache;T—支持thumb指令集D--支持片上調(diào)試(加斷點,單步執(zhí)行)I--支持EmbeddedICE,支持嵌入式跟蹤調(diào)試。開發(fā)環(huán)境可跟蹤調(diào)試目標板。M—支持長乘法運算;E—支持增強dsp運算;F—具備向量浮點單元VFP-S--可綜合版本,無s硬核,工藝固定不可綜合。118ARM7TDMI例:ARM7TDMI:只有內(nèi)核;ARM720T:有內(nèi)核、高速緩存和內(nèi)存管理單元(MMU)組成。ARM740T:由內(nèi)核、高速緩存和內(nèi)存保護單元(MPU)組成ARM7EJ-S:帶有DSP和JazelleTM技術(shù),能夠?qū)崿F(xiàn)Java加速功能,處理器的可綜合版本;支持高密度16位的Thumb指令集;支持片上調(diào)試;支持64位乘法;支持Embeded-ICE觀察硬件;ARM7TDMI的可綜合(synthesizable)版本(軟核),對應用工程師來說其編程模型與ARM7TDMI一致;ARM7TDMI-S119ARM7TDMI簡介
ARM7TDMI處理器是ARM通用32位微處理器家族的成員之一。它具有優(yōu)異的性能,但功耗卻很低,使用門的數(shù)量也很少。它屬于精簡指令集計算機(RISC),比復雜指令集計算機(CISC)要簡單得多。這樣的簡化實現(xiàn)了:高的指令吞吐量;出色的實時中斷響應;小的、高性價比的處理器宏單元。120ARM7TDMI三級流水線
ARM7TDMI處理器使用流水線來增加處理器指令流的速度。這樣可使幾個操作同時進行,并使處理和存儲器系統(tǒng)連續(xù)操作,能提供0.9MIPS/MHz的指令執(zhí)行速度。
ARM7TDMI的流水線分3級,分別為:取指
譯碼
執(zhí)行121ARM7TDMI存儲器訪問ARM7TDMI處理器使用了馮·諾依曼(VonNeumann)結(jié)構(gòu),指令和數(shù)據(jù)共用一條32位總線。只有裝載、存儲和交換指令可以對存儲器中的數(shù)據(jù)進行訪問。數(shù)據(jù)可以是字節(jié)(8位)、半字(16位)或者字(32位)。122ARM7TDMI結(jié)構(gòu)框圖123基本組成:(詳見前圖)1、寄存器塊由通用寄存器和狀態(tài)寄存器組成,主要用來保存處理器狀態(tài)和處理器工作中的數(shù)據(jù)。
2、5個對外端口2個讀端口,用于讀2個源操作數(shù);1個寫端口,用于寫入目的操作數(shù);上述端口都可訪問任意寄存器;1個專門訪問程序計數(shù)器R15的附加讀端口;1個附加寫端口。1243、桶式移位器主要完成指令中第2個操作數(shù)移位。4、ALU執(zhí)行算術(shù)邏輯運算5、地址寄存器和增值器選擇和保存所有存儲器地址,并在需要時通過地址增值器生成順序地址。6、數(shù)據(jù)寄存器對傳送到存儲器或從存儲器取回的數(shù)據(jù)暫存。7、控制通路/控制器基本功能模塊是指令解碼器和相關(guān)的控制邏輯。ARM7內(nèi)核的功能框圖125126ARM7硬件結(jié)構(gòu)126S3C44B0片上資源ARM7TDMI核、工作頻率66MHz;8KBCache,外部存儲器控制器;LCD控制器;4個DMA通道;2通道UART、1個多主I2C總線控制器、1個IIS總線控制器;5通道PWM定時器及一個內(nèi)部定時器;71個通用I/O口;8個外部中斷源;8通道10位ADC;實時時鐘等。127S3C44B0存儲系統(tǒng):存儲系統(tǒng)設(shè)計支持數(shù)據(jù)存儲的大/小端選擇;地址空間:支持8個存儲體訪問;對所有存儲體的訪問寬度均可改變(8/16/32位);7個存儲體的起始地址固定,1個存儲體的起始地址可變128S3C44B0存儲系統(tǒng)分區(qū):129130ARM9ARM9微處理器系列
特點:基于ARM9TDMI,帶16位的Thumb指令集,增強代碼密度最多到35%;在0.13μm工藝下最高性能可達到300MIPS(Dhrystone2.1測試標準);集成了數(shù)據(jù)和指令Chche;32位AMBA總線接口的MMU支持;可在0.18μm、0.15μm和0.13μm工藝的硅芯片上實現(xiàn)。131ARM920T內(nèi)核結(jié)構(gòu)返回132133
存儲地址空間:每個bank128MB(8個BANK1GB)每個bank可編程為8/16/32位數(shù)據(jù)總線;bank0至bank6為固定起始地址;Bank7可編程bank起始地址和大??;6個存儲器bank用于ROM、SRAM和其他;2個存儲器bank用于ROM、SRAM和同步DRAM;每個bank可編程存取周期;支持不同類型的ROM用于啟動Flash、EEPROM和其他。SC32440存儲器控制器
S3C2440A片內(nèi)集成了存儲器控制器,提供了訪問存儲器所需的全部控制信號。1.外部存儲空間特點
S3C2440A芯片外部可尋址的存儲空間是1GB,被分成8個存儲模塊,每塊128MB。如下圖所示。S3C2440A外部存儲空間有如下特點:支持小端/大端模式。8個存儲塊中,其中6個用于ROM,SRAM;2個用于ROM、SRAM、SDRAM。8個存儲塊中,其中7個有固定的起始地址;最后1個起始地址可調(diào)整,并且最后2個存儲塊的大小可以編程。所有存儲器塊的訪問周期可編程。可用nWAIT(等待)信號來擴展外部存儲器的讀/寫周期。在SDRAM中支持自主刷新和省電模式。135S3C2440存儲空間分配圖
s3c2440尋址空間說明s3c2440是32位的,所以理論上可以尋址4GB空間,內(nèi)存(SDRAM)和端口(特殊寄存器),還有ROM都映射到同一個4G空間里。但是,芯片引腳上只給出了27根地址(ADDR[26:0]),
單靠芯片上的27根引腳,它只能控制128M的空間,剩下的在哪里?原因:13個存儲器控制寄存器,每個寄存器的地址都大于0X40000000的地址。而0x40000000(1G)是1G空間的分界線,也就是說,1G~3G之間的空間,實際上都是被芯片自己占用了。實際上,給用戶的使用的空間,只有1G。每個bank是128M,用了27根地址線,而1G空間,需要30根地址線,剩下的3根用在什么地方?地址高端用在3-8譯碼器的輸入端,而這個3-8譯碼器的輸出端,就是對應這nGCS0~7,對應著8個bank。很明顯了,三星的2440留給用戶使用的這1G空間,27根線用于芯片引腳來控制具體的bank了,剩下的三根,用于選擇當前處于哪個bank。137S3C2440系統(tǒng)啟動2440啟動方式?jīng)Q定于bank0,以及OM[1:0]。S3C2440支持兩種啟動方式:NandFlash和非NandFlash(例NorFlash)啟動。從NorFlash啟動時,與nGCS0相連的NorFlash就被映射到nGCS0片選的Bank0空間,其地址被映射為0x00000000;開發(fā)時可以把bootloader直接燒入到Norflash中。從NandFlash啟動時,S3C2440芯片內(nèi)部自帶一塊容量為4K的被稱為“Steppingstone”(起步石)的BootRAM被映射到nGCS0片選的Bank0空間,其地址被映射為0x00000000。當系統(tǒng)上電或復位時,程序會從0x0地址處開始執(zhí)行。138NandFlash啟動時,系統(tǒng)啟動前所有的程序存儲在NandFlash中。系統(tǒng)上電或復位時,0地址處為S3C2440內(nèi)部自帶的BootSRAM,啟動前里面沒有任何存儲內(nèi)容,啟動后S3C2440先通過硬件機制將NandFlash前4k的內(nèi)容拷貝到BootSRAM中,然后再運行里面的程序(從0地址處開始)。開發(fā)時需要保證將啟動代碼保存在NandFlash開始的位置,并且啟動代碼的大小要小于4K如果系統(tǒng)的所有程序在編譯鏈接后小于4K,啟動代碼中無需考慮將程序從NandFlash搬運到SDRAM中,因為所有的程序在啟動時即全部由NandFlash拷貝至BootSRAM,程序在BootSRAM中運行即可;139如果系統(tǒng)的所有程序在編譯鏈接后大于4K,則啟動代碼中就需要包含一段將系統(tǒng)的全部程序從NandFlash搬運到SDRAM的代碼,因為系統(tǒng)啟動時只將NandFlash的前4K拷貝到了BootSRAM中,還有部分程序在NandFlash中,而程序在NandFlash中是無法運行的,需要將所有程序拷貝至SDRAM并在其中運行,所以系統(tǒng)的啟動代碼中要包含這段有關(guān)程序拷貝的代碼,并在所有程序拷貝完成后使程序跳轉(zhuǎn)到SDRAM中運行。也就是說NandFlash啟動時需要考慮到涉及的兩次搬移,第一次搬運是S3C2440硬件機制自動實現(xiàn)的,無需干預,第二次搬運需要程序員來實現(xiàn),搬運程序量大小是系統(tǒng)的所有程序。1402ARM處理器的工作狀態(tài)ARM處理器的工作狀態(tài)ARM發(fā)展至今,ARM處理器具有多種工作狀態(tài),其中包括ARM狀態(tài)、Thumb狀態(tài)、Thumb-2狀態(tài)和ThumbEE執(zhí)行環(huán)境。在程序的執(zhí)行過程中,ARM處理器可以隨時在ARM和Thumb兩種工作狀態(tài)之間切換,并且,處理器工作狀態(tài)的轉(zhuǎn)變并不影響處理器的工作模式和相應寄存器的內(nèi)容。ARM微處理器在開始執(zhí)行代碼時,應該處于ARM狀態(tài)。ARM處理器的工作狀態(tài)1.工作狀態(tài)ARM狀態(tài):正執(zhí)行ARM指令的處理器在ARM狀態(tài)下工作。在ARM狀態(tài)下,處理器只能執(zhí)行執(zhí)行字對齊的32位ARM指令。Thumb狀態(tài):正執(zhí)行Thumb指令的處理器在Thumb狀態(tài)下工作。在Thumb狀態(tài)下,處理器只能執(zhí)行半字對齊的16位Thumb指令。Thumb-2狀態(tài):正在執(zhí)行Thumb-2指令的處理器在Thumb-2狀態(tài)下工作。在Thumb-2狀態(tài)下,處理器可以執(zhí)行16位或32位混合的Thumb-2指令,無需ARM狀態(tài)和Thumb狀態(tài)之間轉(zhuǎn)換。ARM處理器的工作狀態(tài)2.工作狀態(tài)切換方法每種指令集都包含用于更改處理器狀態(tài)的指令。要在ARM和Thumb狀態(tài)之間進行轉(zhuǎn)換,必須切換匯編器模式,以便使用ARM或THUMB指令生成正確的操作碼。ARM和Thumb兩種工作狀態(tài)由當前程序狀態(tài)寄存器CPSR中的T(Thumb)位決定,并切換工作。當CPSR.T=0時,處于ARM狀態(tài),當CPSR.T=1時,處于Thumb狀態(tài)。進入Thumb狀態(tài):當操作數(shù)寄存器Rm的狀態(tài)為bit[0]=1時,執(zhí)行“BXRm”指令進入Thumb狀態(tài)。如果處理器在Thumb狀態(tài)下進入異常處理時,自動進入ARM狀態(tài),當異常處理返回(IRQ、FIQ、Undef、About、SWI)時,自動返回Thumb狀態(tài)。ARM處理器的工作狀態(tài)2.工作狀態(tài)切換方法進入ARM狀態(tài):當操作數(shù)寄存器Rm的狀態(tài)為bit[0]=0時,執(zhí)行“BXRm”指令進入ARM狀態(tài)。在處理器進行異常處理(IRQ、FIQ、Undef、About、SWI)時,如果把PC放入異常模式連接寄存器LR中,從異常向量地址開始執(zhí)行,可以進入ARM狀態(tài)。在Thumb-2狀態(tài),無需模式切換就運行16位與32位混合代碼。為了做到這一點,ARM在BL指令中找到了需要的突破口。在原有的指令集中,BL指令有一些位沒有使用,這些原先未定義的位給全新的指令集提供了切換入口。145處理器狀態(tài)切換
使用BX指令將ARM7TDMI內(nèi)核的操作狀態(tài)在ARM狀態(tài)和Thumb狀態(tài)之間進行切換,程序如下所示。;從Arm狀態(tài)切換到Thumb狀態(tài)
LDRR0,=Lable+1BXR0;從Thumb狀態(tài)切換到ARM狀態(tài)
LDRR0,=LableBXR0地址最低位為1,表示切換到Thumb狀態(tài)地址最低位為0,表示切換到ARM狀態(tài)跳轉(zhuǎn)地址標號146流水線技術(shù)流水線(Pipeline)技術(shù):幾個指令可以并行執(zhí)行
提高了CPU的運行效率內(nèi)部信息流要求通暢流動
譯碼取指執(zhí)行add譯碼取指執(zhí)行sub譯碼取指執(zhí)行cmp時間147流水線技術(shù)為增加處理器指令流的速度,ARM7系列使用3級流水線允許多個操作同時處理,比逐條指令執(zhí)行要快。
PC指向正被取指的指令,而非正在執(zhí)行的指令FetchDecodeExecute從存儲器中讀取指令解碼指令寄存器讀(從寄存器Bank)移位及ALU操作寄存器寫(到寄存器Bank)PC PCPC-4 PC-2PC-8 PC-4ARM Thumb當前pc所指向的指令已完成取指的指令已完成解碼的指令148在ARM7的3級流水線結(jié)構(gòu)中流水線易出現(xiàn)阻塞或間斷,這必然降低了流水線的效率,為了提高處理器的性能,必然要考慮如何優(yōu)化處理器的組織結(jié)構(gòu)。(1)縮短程序執(zhí)行時間:
提高時鐘頻率fclk
減少每條指令的平均時鐘周期數(shù)CPI
流水線技術(shù)Tprog:程序執(zhí)行時間Ninst:指令條數(shù)CPI:指令平均時鐘周期數(shù)FCLK:時鐘頻率149流水線技術(shù)
(2)解決流水線相關(guān):結(jié)構(gòu)相關(guān)
數(shù)據(jù)相關(guān)
控制相關(guān)
如果某些指令在流水線中重疊執(zhí)行時,產(chǎn)生資源沖突,則稱該流水線存在結(jié)構(gòu)相關(guān)。
解決:資源重復(Cache分離、ALU中單獨的地址計算加法器)寫后讀”、“寫后寫”“讀后寫”解決:專用通路、流水線互鎖技術(shù)當流水線遇到分支指令和其他會改變PC值的指令時,取指取決于指令執(zhí)行條件,可能需重新取指,致使流水線停頓。解決:引入延時分支、盡早計算轉(zhuǎn)移成功時的目標地址。addr0,r1,r2movr2,r0addr0,r1,r2addr0,r3,r4movr2,r0
addr0,r1,r2150多周期ARM指令的3級流水線操作
STR計算存儲器地址與ADD譯碼,都為下一周期產(chǎn)生數(shù)據(jù)傳送控制信號,不能同步進行。Dataxfer-excute占用數(shù)據(jù)路徑兩條指令不能同時譯碼。取指與存數(shù)沖突若流水線產(chǎn)生資源沖突,則稱該流水線存在結(jié)構(gòu)相關(guān)。如,取指存數(shù)沖突,2條指令同時占用譯碼級等。151流水線技術(shù)超標量(Superscalar)執(zhí)行:超標量CPU采用多條流水線結(jié)構(gòu)
執(zhí)行1取指指令譯碼2譯碼1執(zhí)行2執(zhí)行1取指譯碼2譯碼1執(zhí)行2流水線1流水線2數(shù)據(jù)回寫152流水線技術(shù)注意:
超標量處理器在執(zhí)行的過程中必須動態(tài)地檢查指令相關(guān)性,判斷當前的指令組合是否能同時執(zhí)行;
如果代碼中有分支指令,我們必須將分支被執(zhí)行和分支不被執(zhí)行這兩種情況分開考慮,計算執(zhí)行時間幾乎是不可能的;
153流水線技術(shù)ARM各個系列的流水線:預取(Fetch)譯碼(Decode)執(zhí)行(Execute)預取(Fetch)譯碼(Decode)執(zhí)行(Execute)訪存(Memory)寫入(Write)預取(Fetch)譯碼(Decode)發(fā)送(Issue)預取(Fetch)預取(
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 工作總結(jié)之法學專業(yè)畢業(yè)實習總結(jié)
- 工廠考察報告-文書模板
- 銀行合規(guī)管理制度實施推進
- 酒店餐飲成本控制制度
- 斷橋鋁窗戶施工合同
- 新課標解讀2024心得范文(31篇)
- 《認識常見園林植物》課件
- 《信用修改版》課件
- 《顧客的購物心理》課件
- 法律資料房屋專項維修資金使用管理法規(guī)及案例分析
- 寵物血液生化檢驗及其意義課件
- 電梯安全員培訓范文通用12篇
- 人工智能(全套課件)
- 實訓項目二 汽車底盤大修竣工驗收
- 主題班會告別假努力-課件
- 2022年中級導游考試漢語言文學真題及答案
- 土袋護坡綜合施工專題方案
- COSO-內(nèi)部控制框架
- 交工技術(shù)文件表格范本
- 動火作業(yè)許可證(模板)
- 超星爾雅《藝術(shù)美學》答案大全
評論
0/150
提交評論