版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
《嵌入式系統(tǒng)》全冊配套課件2023/1/112023/1/112今日授課內(nèi)容第一部分:教學(xué)安排和要求第二部分:嵌入式系統(tǒng)概述2023/1/113課程特點
本課程以ARM9微處理器S3C2410A為應(yīng)用實例,介紹嵌入式系統(tǒng)的基本原理、硬件結(jié)構(gòu)和軟件開發(fā)。具有如下特點:1、理論與實踐相結(jié)合2、軟硬件結(jié)合3、注重學(xué)以致用、工程動手能力的培養(yǎng)。2023/1/114教學(xué)內(nèi)容嵌入式系統(tǒng)技術(shù)是本專業(yè)核心課程,教學(xué)內(nèi)容包括:嵌入式系統(tǒng)概論;ARM體系結(jié)構(gòu);嵌入式系統(tǒng)存儲器結(jié)構(gòu)與接口;嵌入式系統(tǒng)輸入輸出接口技術(shù);嵌入式系統(tǒng)總線與通信接口;嵌入式操作系統(tǒng)介紹;嵌入式系統(tǒng)設(shè)計與開發(fā);嵌入式系統(tǒng)應(yīng)用實例分析。2023/1/115先修基礎(chǔ)知識模擬電路數(shù)字電路計算機硬件基礎(chǔ)微機原理與接口技術(shù)計算機操作系統(tǒng)C語言程序設(shè)計等2023/1/116教材與參考書黃智偉等,ARM9嵌入式系統(tǒng)設(shè)計基礎(chǔ)教程.北京航空航天大學(xué)出版社王志英等,嵌入式系統(tǒng)原理與設(shè)計.高等教育出版社楊剛等,嵌入式系統(tǒng)設(shè)計與實踐.北京航空航天大學(xué)出版社符意德,嵌入式系統(tǒng)設(shè)計原理及應(yīng)用.清華大學(xué)出版社……2023/1/117教學(xué)目標(期望)掌握嵌入式系統(tǒng)設(shè)計的基本原理、基本方法;熟悉ARM微處理器體系結(jié)構(gòu),掌握一套主流的開發(fā)工具及其開發(fā)方法;具備嵌入式系統(tǒng)軟、硬件開發(fā)設(shè)計的基本能力;為進一步研究和處理實際工程問題打下基礎(chǔ)。
2023/1/118考核方式課堂表現(xiàn)——占總成績10%教學(xué)實驗——占總成績30%閉卷考試——占總成績60%上課時間:單周2下午5、6節(jié)周4下午5、6節(jié)
實驗時間和地點待定。2023/1/119今日授課內(nèi)容第一部分:教學(xué)安排和要求第二部分:嵌入式系統(tǒng)概述2023/1/1110嵌入式系統(tǒng)概述什么是嵌入式系統(tǒng)?2023/1/1111生活中的嵌入式系統(tǒng)2023/1/1112嵌入式系統(tǒng)的定義IEEE:“Deviceusedtocontrol,monitor,orassisttheoperationofequipment,machineryorplants”.從技術(shù)的角度定義:以應(yīng)用為中心、以計算機技術(shù)為基礎(chǔ)、軟件硬件可裁剪、適應(yīng)應(yīng)用系統(tǒng)對功能、可靠性、成本、體積、功耗嚴格要求的專用計算機系統(tǒng)。嵌入式系統(tǒng)是將先進的計算機技術(shù)、半導(dǎo)體技術(shù)和電子技術(shù)與各個行業(yè)的具體應(yīng)用相結(jié)合后的產(chǎn)物。2023/1/1113嵌入式系統(tǒng)示例——汽車控制系統(tǒng)2023/1/1114馬達控制器車燈嵌入式系統(tǒng)示例——汽車控制系統(tǒng)尾燈控制系統(tǒng)后車門控制系統(tǒng)前車門控制系統(tǒng)座椅控制系統(tǒng)發(fā)動器控制系統(tǒng)所有的控制系統(tǒng)都是一個完整的嵌入式系統(tǒng)2023/1/1115即使遠在火星火星與地球,這一對在星空中遙遙相望的“兄弟”,在2003年8月27日這一天,迎來6萬年來“最親密的接觸”,火星距離地球最近達到55756622(5千多萬)公里。面對6萬年才有一次的機會,科學(xué)家們積極行動起來———從6月開始,先后有歐洲的“火星快車”、美國“勇氣號”和“機遇號”等三顆火星探測器飛往火星,而日本一顆本已在太空“迷失方向”的火星探測器也在關(guān)鍵時刻及時“醒”來,開始了久違的火星之旅?!坝職馓枴被鹦翘綔y器2023/1/1116嵌入式系統(tǒng)的組成嵌入式系統(tǒng)一般由嵌入式硬件和軟件組成硬件系統(tǒng)一般由嵌入式微處理器、存儲器和輸入/輸出部分組成,其中嵌入式微處理器是嵌入式硬件系統(tǒng)的核心。軟件包括:初始化代碼及驅(qū)動、嵌入式操作系統(tǒng)和應(yīng)用程序等,這些軟件有機地結(jié)合在一起,形成系統(tǒng)特定的一體化軟件。2023/1/1117嵌入式處理器的分類——用途嵌入式微控制器(MicroControllerUnit,MCU)嵌入式微處理器(MicroProcessorUnit,MPU)嵌入式DSP(DigitalSignalProcessor)嵌入式片上系統(tǒng)(SystemOnChip)2023/1/1118嵌入式微控制器嵌入式微控制器又稱單片機,它是將整個計算機系統(tǒng)集成到一塊芯片中。嵌入式微控制器一般以某一種微處理器內(nèi)核為核心,芯片內(nèi)部集成ROM/EPROM、RAM、總線、總線邏輯、定時/計數(shù)器、WatchDog、I/O、串行口、脈寬調(diào)制輸出、A/D、等各種必要功能和外設(shè)。嵌入式處理器的字長寬度可分為4位、8位、16位、32位和64位。一般把16位及以下的稱為嵌入式微控制器(EmbeddedMicroController)特點:單片化、體積小、功耗和成本低、可靠性高;缺點:MCU微控制器,總線寬度一般為4位、8位或16位,處理速度有限,一般在幾個MIPS,進行一些復(fù)雜的應(yīng)用很困難,運行操作系統(tǒng)就更難。2023/1/1119嵌入式微控制器嵌入式微控制器目前的品種和數(shù)量最多,比較有代表性的通用系列包括8051、P51XA、MCS-251、MCS-96/196/296、C166/167、MC68HC05/11/12/16、68300、數(shù)目眾多ARM芯片等。目前MCU占嵌入式系統(tǒng)約70%的市場份額。復(fù)位部件看門狗部件晶振部件I/O部件中斷部件ROM部件SRAM部件定時器部件CPU核2023/1/1120嵌入式微處理器
嵌入式微處理器(EmbeddedMicroProcessingUnit,EMPU)由通用計算機中的CPU發(fā)展而來,嵌入式微處理器只保留和嵌入式應(yīng)用緊密相關(guān)的功能硬件,去除其他的冗余功能部分,以最低的功耗和資源實現(xiàn)嵌入式應(yīng)用的特殊要求。同時,其在工作溫度、抗電磁干擾、可靠性等方面一般都做了各種增強。優(yōu)點:體積小、功耗低、成本低、可靠性高;缺點:片內(nèi)周片電路不足,必須配備ROM,RAM,總線接口,各種外設(shè)接口等;2023/1/1121嵌入式微處理器嵌入式微處理器把CPU、ROM、RAM及I/O等做到同一個芯片上。32位微處理器采用32位的地址和數(shù)據(jù)總線,其地址空間達到了232=4GB。目前主流的32位嵌入式微處理器系列主要有:ARM系列MIPS系列PowerPC系列等。2023/1/1122ARM系列ARM(AdvancedRISCMachine)公司的ARM微處理器體系結(jié)構(gòu)目前被公認為是嵌入式應(yīng)用領(lǐng)域領(lǐng)先的32位嵌入式RISC微處理器結(jié)構(gòu)。ARM體系結(jié)構(gòu)目前發(fā)展并定義了7種不同的版本。從版本1到版本7,ARM體系的指令集功能不斷擴大。ARM處理器系列中的各種處理器,雖然在實現(xiàn)技術(shù)、應(yīng)用場合和性能方面都不相同,但只要支持相同的ARM體系版本,基于它們的應(yīng)用軟件是兼容的。目前,70%的移動電話、大量的游戲機、手持PC和機頂盒等都已采用了ARM處理器,許多一流的芯片廠商都是ARM的授權(quán)用戶,如Intel、Samsung、TI、Freescale、ST等公司。2023/1/1123MIPS系列美國斯坦福大學(xué)的Hennessy教授領(lǐng)導(dǎo)的研究小組研制的MIPS(MicroprocessorwithoutInterlockedPipedStages,無互鎖流水級的微處理器)是世界上很流行的一種RISC處理器,其機制是盡量利用軟件辦法避免流水線中的數(shù)據(jù)相關(guān)問題。從20世紀80年代初期MIPS處理器發(fā)明到現(xiàn)在,MIPS處理器以其高性能的處理能力被廣泛應(yīng)用于寬帶接入、路由器、調(diào)制解調(diào)設(shè)備、電視、游戲、打印機、辦公用品、DVD播放等廣泛的領(lǐng)域。和ARM公司一樣,MIPS公司本身并不從事芯片的生產(chǎn)活動(只進行設(shè)計),不過其他公司如果要生產(chǎn)該芯片,則必須得到MIPS公司的許可。2023/1/1124PowerPCPowerPC是Freescale(原Motorola)公司的產(chǎn)品。PowerPC
RISC處理器采用了超標量處理器設(shè)計和調(diào)整內(nèi)存緩沖器,修改了指令處理設(shè)計,它完成一個操作所需的指令數(shù)比CISC處理器要多,但完成操作的總時間卻減少了。PowerPC內(nèi)核采用獨特分支處理單元可以讓指令預(yù)取效率大大提高,即使指令流水線上出現(xiàn)跳轉(zhuǎn)指令,也不會影響到其運算單元的運算效率。PowerPC
RISC處理器設(shè)計了多級內(nèi)存高速緩沖區(qū),以便讓那些正在訪問(或可能會被訪問)的數(shù)據(jù)和指令總是存儲在調(diào)整內(nèi)存中。2023/1/1125嵌入式DSP處理器DSP處理器是專門用于信號處理方面的處理器,芯片內(nèi)部采用程序和數(shù)據(jù)分開存儲和傳輸?shù)墓鸾Y(jié)構(gòu),具有專門硬件乘法器,采用流水線操作,提供特殊的DSP指令,可用來快速地實現(xiàn)各種數(shù)字信號處理算法,使其處理速度比最快的CPU還快10~50倍。在數(shù)字濾波、FFT、譜分析等各種儀器上DSP獲得了大規(guī)模的應(yīng)用。1982年世界上誕生了首枚DSP芯片。在語音合成和編碼解碼器中得到了廣泛應(yīng)用。DSP的運算速度進一步提高,應(yīng)用領(lǐng)域也從上述范圍擴大到了通信和計算機方面。2023/1/1126嵌入式DSP處理器有代表性的產(chǎn)品是TexasInstruments的TMS320系列和Motorola的DSP56000系列。TMS320系列處理器包括用于控制的C2000系列,移動通信的C5000系列,以及性能更高的C6000和C8000系列。Motorola公司的DSP56000已經(jīng)發(fā)展成為DSP56000,DSP56100,DSP56200和DSP56300等幾個不同系列的處理器。2023/1/1127嵌入式片上系統(tǒng)(SOC)SoC就是SystemonChip,SoC是一種基于IP(IntellectualProperty)核嵌入式系統(tǒng)設(shè)計技術(shù)。它結(jié)合了許多功能區(qū)塊,將功能做在一個芯片上,ARM
RISC、MIPS
RISC、DSP或是其他的微處理器核心,加上通信的接口單元,例如通用串行端口(USB)、TCP/IP通信單元、GPRS通信接口、GSM通信接口、IEEE1394、藍牙模塊接口等等,這些單元以往都是依照各單元的功能做成一個個獨立的處理芯片。SOC可以分為通用和專用兩類。通用系列包括Infineon(Siemens)的TriCore,Motorola的M-Core,Echelon和Motorola聯(lián)合研制的Neuron芯片等。專用SOC一般專用于某個或某類系統(tǒng)中。有代表性的產(chǎn)品是Philips的SmartXA2023/1/1128SOC體系結(jié)構(gòu)SOC芯片已在聲音、圖像、影視、網(wǎng)絡(luò)及系統(tǒng)邏輯等應(yīng)用領(lǐng)域中廣泛應(yīng)用。2023/1/1129嵌入式系統(tǒng)的應(yīng)用隨著社會經(jīng)濟的發(fā)展和科學(xué)技術(shù)的進步,嵌入式系統(tǒng)在消費電子、工業(yè)應(yīng)用、軍事國防、網(wǎng)絡(luò)設(shè)備等領(lǐng)域都得到廣泛應(yīng)用。2023/1/1130嵌入式系統(tǒng)的應(yīng)用家用方面:數(shù)字電視、信息家電、智能玩具、手持通訊、存儲設(shè)備的核心。2023/1/1131嵌入式視頻服務(wù)器2023/1/1132現(xiàn)代化家庭2023/1/1133嵌入式Internet應(yīng)用2023/1/1134智能玩具與機器人2023/1/1135嵌入式技術(shù)應(yīng)用——工業(yè)控制工業(yè)方面:機床、冶金、電子、交通、航空航天等行業(yè)技術(shù)升級的重要基礎(chǔ)2023/1/1136軍事偵察阿富汗參加反恐作戰(zhàn)的“赫耳墨斯”價值4萬美元,可攜帶2架攝像機,發(fā)揮了很好作用。2023/1/1137反恐防暴2002年11月28日,以色列一選舉投票點,發(fā)生槍擊事件,造成至少7人死亡,數(shù)十人受傷。以警方用機器人在檢查一具巴勒斯坦槍手的尸體。2023/1/1138空中飛行器微型飛行器“黑寡婦”2023/1/1139基于RTLinux的仿人機器人2023/1/1140基于VXworks的火星探路者2023/1/1141基于OMAP5912的智能手持設(shè)備方案2023/1/1142嵌入式系統(tǒng)的特點系統(tǒng)內(nèi)核小:嵌入式系統(tǒng)一般應(yīng)用于小型電子裝置,系統(tǒng)資源有限,因此內(nèi)核較傳統(tǒng)的操作系統(tǒng)要小得多;專用性強:軟、硬件按對象要求裁剪,兩者結(jié)合緊密;軟件的編譯下載與系統(tǒng)相結(jié)合,“通用”、“升級”的概念一般不適用;系統(tǒng)精簡:沒有系統(tǒng)軟件和應(yīng)用軟件的區(qū)分2023/1/1143嵌入式系統(tǒng)的特點嵌入式系統(tǒng)開發(fā)需要開發(fā)工具和環(huán)境用戶對其中程序功能進行修改必須一套開發(fā)工具和環(huán)境;開發(fā)工具一般基于通用計算機上的軟硬件設(shè)備以及各種輔助儀器;主機:用于程序的開發(fā);目標機:最后的執(zhí)行機;開發(fā)是交替式的。2023/1/1144嵌入式系統(tǒng)開發(fā)特點由于嵌入式系統(tǒng)資源有限,一般不具備自主開發(fā)能力,產(chǎn)品發(fā)布后用戶通常也不能對其中的軟件進行修改,必須有一套專門的開發(fā)環(huán)境。該開發(fā)環(huán)境包括專門的開發(fā)工具(包括設(shè)計、編譯、調(diào)試、測試等工具),采用交叉開發(fā)的方式進行,交叉開發(fā)環(huán)境如圖所示。2023/1/1145嵌入式系統(tǒng)的發(fā)展歷史從單片機的出現(xiàn)到今天各種嵌入式微處理器、微控制器的廣泛應(yīng)用,嵌入式系統(tǒng)的應(yīng)用可以追溯到20世紀60年代中期,例如阿波羅飛船的導(dǎo)航控制系統(tǒng)AGC(ApolloGuidanceComputer)。嵌入式系統(tǒng)的發(fā)展歷程,大致經(jīng)歷了以下4個階段。(1)無操作系統(tǒng)階段(2)簡單操作系統(tǒng)階段(3)實時操作系統(tǒng)階段(4)面向Internet階段2023/1/1146無操作系統(tǒng)階段單片機是最早應(yīng)用的嵌入式系統(tǒng),單片機作為各類工業(yè)控制和飛機、導(dǎo)彈等武器裝備中的微控制器,用來執(zhí)行一些單線程的程序,完成監(jiān)測、伺服和設(shè)備指示等多種功能,一般沒有操作系統(tǒng)的支持,程序設(shè)計采用匯編語言。由單片機構(gòu)成的這種嵌入式系統(tǒng)使用簡便、價格低廉,在工業(yè)控制領(lǐng)域中得到了非常廣泛的應(yīng)用。返回2023/1/1147簡單操作系統(tǒng)階段20世紀80年代,出現(xiàn)了大量具有高可靠性、低功耗的嵌入式CPU(如PowerPC等),芯片上集成有微處理器、I/O接口、串行接口及RAM、ROM等部件,面向I/O設(shè)計的微控制器在嵌入式系統(tǒng)設(shè)計應(yīng)用。一些簡單的嵌入式操作系統(tǒng)開始出現(xiàn)并得到迅速發(fā)展,程序設(shè)計人員也開始基于一些簡單的“操作系統(tǒng)”開發(fā)嵌入式應(yīng)用軟件。此時的嵌入式操作系統(tǒng)雖然還比較簡單,但已經(jīng)初步具有了一定的兼容性和擴展性,內(nèi)核精巧且效率高,大大縮短了開發(fā)周期,提高了開發(fā)效率。返回2023/1/1148實時操作系統(tǒng)階段20世紀90年代,面對分布控制、柔性制造、數(shù)字化通信和信息家電等巨大市場的需求,嵌入式系統(tǒng)飛速發(fā)展。隨著硬件實時性要求的提高,嵌入式系統(tǒng)的軟件規(guī)模也不斷擴大,實時多任務(wù)操作系統(tǒng)(Real-timeOperationSystem,RTOS)逐漸形成,系統(tǒng)能夠運行在各種不同類型的微處理器上,具備了文件和目錄管理、設(shè)備管理、多任務(wù)、網(wǎng)絡(luò)、圖形用戶界面(GraphicUserInterface,GUI)等功能,并提供了大量的應(yīng)用程序接口(ApplicationProgrammingInterface,API),從而使應(yīng)用軟件的開發(fā)變得更加簡單。返回2023/1/1149面向Internet階段進入21世紀,Internet技術(shù)與信息家電、工業(yè)控制技術(shù)等的結(jié)合日益緊密,嵌入式技術(shù)與Internet技術(shù)的結(jié)合正在推動著嵌入式系統(tǒng)的飛速發(fā)展。2023/1/11補充內(nèi)容:相關(guān)基本知識馮-諾依曼體系結(jié)構(gòu)與哈佛體系結(jié)構(gòu)馮-諾依曼體系結(jié)構(gòu)特點:數(shù)據(jù)和指令都存儲在同一存儲器中。通用PC,ARM7。2023/1/11哈佛體系結(jié)構(gòu)特點:數(shù)據(jù)存儲器和程序都存儲分開;數(shù)據(jù)存儲器的帶寬較寬;DSP、ARM9哈佛體系結(jié)構(gòu)2023/1/11CISC&RISCCISC(復(fù)雜指令集)具有大量的指令和尋址方式大多數(shù)程序只使用少量的指令就可以運行。RISC(精簡指令集)指令長度固定,指令類型很少數(shù)據(jù)處理指令只訪問寄存器,與訪問存儲器的指令是分開的使CPU硬件結(jié)構(gòu)設(shè)計更為簡單,縮短了開發(fā)周期,提高了性能。2023/1/11流水線技術(shù)幾個指令可以并行執(zhí)行提高了CPU的運行效率流水線技術(shù)中的“寫后讀”、“延遲轉(zhuǎn)移”2023/1/11超標量執(zhí)行采用多條流水線結(jié)構(gòu)2023/1/11CACHECache的內(nèi)容是部分主存儲器內(nèi)容的拷貝;CPU對高速緩存(Cache)的讀寫速度比對內(nèi)存讀寫的速度快得多;2023/1/1156課程回顧嵌入式系統(tǒng)定義嵌入式系統(tǒng)組成嵌入式微處理器的分類嵌入式系統(tǒng)的應(yīng)用2023/1/1157謝謝!CHAPTER
2ARM體系結(jié)構(gòu)2023/1/1159內(nèi)容提要嵌入式系統(tǒng)硬件基礎(chǔ)ARM概述ARM微處理器結(jié)構(gòu)ARM運行模式與寄存器ARM的異常處理ARM的存儲器結(jié)構(gòu)2023/1/1160嵌入式系統(tǒng)硬件基礎(chǔ)嵌入式系統(tǒng)的硬件通常由嵌入式處理器和嵌入式外圍設(shè)備構(gòu)成。嵌入式處理器可分為:嵌入式微控制器MCU
嵌入式微處理器MPU
嵌入式DSP
嵌入式SOC2023/1/1161嵌入式系統(tǒng)硬件基礎(chǔ)RISC和CISC馮·諾依曼體系結(jié)構(gòu)和哈佛體系結(jié)構(gòu)流水線嵌入式微處理器體系結(jié)構(gòu)嵌入式外圍設(shè)備2023/1/1162微處理器架構(gòu)體系CISC:復(fù)雜指令集(ComplexInstructionSetComputer)具有大量的指令和尋址方式,指令長度可變8/2原則:80%的程序只使用20%的指令大多數(shù)程序只使用少量的指令就能夠運行。RISC:精簡指令集(ReducedInstructionSetComputer)只包含最有用的指令,指令長度固定確保數(shù)據(jù)通道快速執(zhí)行每一條指令使CPU硬件結(jié)構(gòu)設(shè)計變得更為簡單2023/1/1163CISC的背景和特點背景:存儲資源緊缺,強調(diào)編譯優(yōu)化增強指令功能,設(shè)置一些功能復(fù)雜的指令,把一些原來由軟件實現(xiàn)的、常用的功能改用硬件的(微程序)指令系統(tǒng)來實現(xiàn)為節(jié)省存儲空間,強調(diào)高代碼密度,指令格式不固定,指令可長可短,操作數(shù)可多可少尋址方式復(fù)雜多樣,操作數(shù)可來自寄存器,也可來自存儲器采用微程序控制,執(zhí)行每條指令均需完成一個微指令序列CPI>5,指令越復(fù)雜,CPI越大。2023/1/1164CISC的主要缺點指令使用頻度不均衡。高頻度使用的指令占據(jù)了絕大部分的執(zhí)行時間,擴充的復(fù)雜指令往往是低頻度指令。大量復(fù)雜指令的控制邏輯不規(guī)整,不適于VLSI工藝VLSI的出現(xiàn),使單芯片處理機希望采用規(guī)整的硬聯(lián)邏輯實現(xiàn),而不希望用微程序,因為微程序的使用反而制約了速度提高。(微碼的存控速度比CPU慢5-10倍)。軟硬功能分配復(fù)雜指令增加硬件的復(fù)雜度,使指令執(zhí)行周期大大加長,直接訪存次數(shù)增多,數(shù)據(jù)重復(fù)利用率低。不利于先進指令級并行技術(shù)的采用流水線技術(shù)2023/1/1165CISC與RISC的對比2023/1/1166RISC和CISC的發(fā)展盡管RISC架構(gòu)有不少優(yōu)點,但決不能認為RISC架構(gòu)就可以取代CISC架構(gòu),事實上,RISC和CISC各有優(yōu)勢,而且界限并不那么明顯。現(xiàn)代的CPU往往采用CISC的外圍,內(nèi)部加入了RISC的特性,如超長指令集(VLSW)CPU就是融合了RISC和CISC的優(yōu)勢,成為未來的CPU發(fā)展方向之一。2023/1/1167馮·諾依曼體系結(jié)構(gòu)2023/1/1168哈佛體系結(jié)構(gòu)2023/1/1169流水線(Pipeline)技術(shù)基本思想:將一個重復(fù)的時序分解成若干個子過程,而每一個子過程都可以有效地在其專有功能段上與其他子過程同時執(zhí)行。提高了CPU的運行效率內(nèi)部信息流要求通暢流動2023/1/1170ARM7TDMI指令流水線該例中用6個時鐘周期執(zhí)行了6條指令所有的操作都在寄存器中(單周期執(zhí)行)指令周期數(shù)(CPI)=12023/1/1171LDR流水線2023/1/1172嵌入式外圍設(shè)備嵌入式系統(tǒng)外圍設(shè)備是指在一個嵌入式硬件系統(tǒng)中,除了核心控制部件以外的完成存儲、通信、保護、調(diào)試和顯示等輔助功能的其他部件。1、存儲器類型靜態(tài)易失型存儲(RAM、SRAM)動態(tài)存儲器(DRAM、SDRAM)非易失型存儲器(ROM、EPROM、E2PROM、Flash)2、接口類型
RS232、IRDA、SPI、I2C、USB、Ethernet等3、顯示類型:
CRTLCD
觸摸屏2023/1/1173內(nèi)容提要嵌入式系統(tǒng)硬件基礎(chǔ)ARM概述ARM微處理器結(jié)構(gòu)ARM運行模式與寄存器ARM的異常處理ARM的存儲器結(jié)構(gòu)2023/1/1174ARM微處理器ARM公司簡介成立于1990年11月前身為Acorn計算機公司AdvanceRISCMachine(ARM)主要設(shè)計ARM系列RISC處理器內(nèi)核授權(quán)ARM內(nèi)核給生產(chǎn)和銷售半導(dǎo)體的合作伙伴ARM公司不生產(chǎn)芯片IP(IntelligenceProperty,知識產(chǎn)權(quán))另外也提供基于ARM架構(gòu)的開發(fā)設(shè)計技術(shù)軟件工具,評估板,調(diào)試工具,應(yīng)用軟件,總線架構(gòu),外圍設(shè)備單元,等等2023/1/1175ARM公司England:Cambridge,Maidenhead,Sheffield,BlackburnGermany:Munich France:Paris,SophiaAntipolisKorea:SeoulUS:Seattle,LosGatos,WalnutCreek,Austin,Boston,SanDiegoChina:TaiwanandShanghaiJapan:Shin-Yokohama(Tokyo)800+雇員全球2023/1/1176ARM公司合作伙伴2023/1/1177ARM微處理器的應(yīng)用領(lǐng)域ARM微處理器的應(yīng)用領(lǐng)域工業(yè)控制領(lǐng)域無線通訊領(lǐng)域網(wǎng)絡(luò)應(yīng)用消費類電子產(chǎn)品成像和安全產(chǎn)品到目前為止,基于ARM技術(shù)的微處理器應(yīng)用約占據(jù)了32位嵌入式微處理器75%以上的市場份額。全球80%的GSM/3G手機、99%的CDMA手機以及絕大多數(shù)PDA產(chǎn)品均采用ARM體系的嵌入式處理器,“掌上計算”相關(guān)的所有領(lǐng)域皆為其所主宰。ARM技術(shù)正在逐步滲入到我們生活的各個方面。2023/1/1178ARM產(chǎn)品LexmarkZ52ColorJetprinterSamsungML5100AJVC"Pixstar"GC-X1HPJornado820PsionRevoPlusHPCapShareSonyMZ-R90MiniDiscNokia8810NokiaMediamasterNintendo
Gameboy
AdvanceEricssonR380AlbaBushInternetTV3Com10/100PCINICIomegaHipZipDiamondMultimediaRio6002023/1/1179內(nèi)容提要嵌入式系統(tǒng)硬件基礎(chǔ)ARM概述ARM微處理器結(jié)構(gòu)ARM運行模式與寄存器ARM的異常處理ARM的存儲器結(jié)構(gòu)2023/1/1180ARM體系結(jié)構(gòu)一個典型的ARM體系結(jié)構(gòu)方框圖如右圖所示,包含有32位ALU、31個32位通用寄存器及6個狀態(tài)寄存器、32×8位乘法器32×32位桶形移位寄存器、指令譯碼及控制邏輯、指令流水線和數(shù)據(jù)/地址寄存器等。2023/1/1181ARM處理器核簡介ARM公司開發(fā)了很多系列的ARM處理器核,目前最新的系列已經(jīng)是ARM11了,而ARM6核以及更早的系列已經(jīng)很罕見了。目前應(yīng)用比較廣泛的系列是:2023/1/1182ARM處理器的分類2023/1/1183ARM的發(fā)展2023/1/1184ARM家族2023/1/1185ARM7系列ARM7系列是為低功耗的32位RISC處理器,最適合用于對價位和功耗要求較高的消費類應(yīng)用。ARM7系列有如下特點:具有嵌入式ICE-RT(實時在線仿真)邏輯,調(diào)試開發(fā)方便;極低的功耗,適合對功耗要求較高的應(yīng)用,如便攜式產(chǎn)品;能夠提供0.9MIPS/MHz的三級流水線結(jié)構(gòu);代碼密度高,并兼容16位的Thumb指令集;對操作系統(tǒng)的支持廣泛,如WindowsCE、Linux、PalmOS等;指令系統(tǒng)與ARM9系列、ARM9E系列和ARM10E系列兼容,便于用戶的產(chǎn)品升級換代;主頻最高可達130M,高速的運算處理能力能勝任絕大多數(shù)的復(fù)雜應(yīng)用。2023/1/1186ARM7系列主要應(yīng)用領(lǐng)域:工業(yè)控制、Internet設(shè)備、網(wǎng)絡(luò)和調(diào)制解調(diào)器設(shè)備、移動電話等多種多媒體和嵌入式應(yīng)用。ARM7系列微處理器包括如下幾種類型的核:
ARM7TDMI、ARM7TDMI-S、ARM720T、ARM7EJ。其中,ARM7TMDI是目前使用最廣泛的32位嵌入式RISC處理器,屬低端ARM處理器核。TDMI的基本含義為:T:支持16為壓縮指令集Thumb;D:支持片上Debug;M:內(nèi)嵌硬件乘法器(Multiplier)I:嵌入式ICE,支持片上斷點和調(diào)試點;2023/1/1187ARM7處理核特點3段指令流水:取指、譯碼和執(zhí)行。程序計數(shù)器(PC)指向取指的指令而不是正在執(zhí)行的指令,這一點很重要,因為正在執(zhí)行的指令使用的程序計數(shù)器值總是當前地址前2條指令的地址。存儲器訪問:使用單一32位數(shù)據(jù)線傳送指令和數(shù)據(jù)。只有加載、存儲和交換指令可以訪問存儲器中數(shù)據(jù)。數(shù)據(jù)可以是:8位(字節(jié))、16位(半字)、32位(字)。字必須是4字節(jié)邊界對準,半字必須是2字節(jié)邊界對準。嵌入式ICE-RT邏輯:提供了集成的在片調(diào)試支持2023/1/1188指令流水線為增加處理器指令流的速度,ARM7系列使用3級流水線.–允許多個操作同時處理,比逐條指令執(zhí)行要快。PC指向正被取指的指令,而非正在執(zhí)行的指令2023/1/1189ARM9微處理器ARM9系列微處理器在高性能和低功耗特性方面提供最佳的表現(xiàn)。具有以下特點:5級整數(shù)流水線,指令執(zhí)行效率更高。提供1.1MIPS/MHz的哈佛結(jié)構(gòu)。支持32位ARM指令集和16位Thumb指令集。支持32位的高速AMBA總線接口。全性能的MMU,支持WindowsCE、Linux、PalmOS等多種主流嵌入式操作系統(tǒng)。MPU支持實時操作系統(tǒng)。支持數(shù)據(jù)Cache和指令Cache,具有更高的指令和數(shù)據(jù)處理能力。2023/1/1190ARM9微處理器ARM9系列微處理器主要應(yīng)用于無線設(shè)備、儀器儀表、安全系統(tǒng)、機頂盒、高端打印機、數(shù)字照相機和數(shù)字攝像機等。ARM9系列微處理器包含ARM920TARM922TARM940T2023/1/1191ARM9改進Harvard架構(gòu)
–增加了可用的存儲器寬度指令存儲器接口數(shù)據(jù)存儲器接口
–可以實現(xiàn)對指令和數(shù)據(jù)存儲器的同時訪問5級流水線 實現(xiàn)了以下改進:改進CPI到~1.5提高了最大時鐘頻率2023/1/1192ARM9E微處理器ARM9E系列微處理器的主要特點如下:支持DSP指令集,適合于需要高速數(shù)字信號處理的場合。5級整數(shù)流水線,指令執(zhí)行效率更高。支持32位ARM指令集和16位Thumb指令集。支持32位的高速AMBA總線接口。支持VFP9浮點處理協(xié)處理器。全性能的MMU,支持眾多主流嵌入式操作系統(tǒng)。支持數(shù)據(jù)Cache和指令Cache,具有更高的處理能力。主頻最高可達300M。2023/1/1193ARM9E微處理器ARM9E系列微處理器主要應(yīng)用于下一代無線設(shè)備、數(shù)字消費品、成像設(shè)備、工業(yè)控制、存儲設(shè)備和網(wǎng)絡(luò)設(shè)備等領(lǐng)域。ARM9E系列微處理器包含ARM926EJ-SARM946E-SARM966E-S2023/1/1194ARM10E微處理器ARM10E系列微處理器的主要特點如下:支持DSP指令集,適合于需要高速數(shù)字信號處理的場合。6級整數(shù)流水線,指令執(zhí)行效率更高。支持32位ARM指令集和16位Thumb指令集。支持32位的高速AMBA總線接口。支持VFP10浮點處理協(xié)處理器。全性能的MMU,支持眾多主流嵌入式操作系統(tǒng)。支持數(shù)據(jù)Cache和指令Cache,具有更高的處理能力主頻最高可達400M。內(nèi)嵌并行讀/寫操作部件。與同等ARM9器件相比,同樣時鐘頻率下,性能提高近50%2023/1/1195ARM9vsARM10與同等ARM9器件相比,同樣時鐘頻率下,性能提高近50%2023/1/1196ARM10E微處理器ARM10E系列微處理器主要應(yīng)用于下一代無線設(shè)備、數(shù)字消費品、成像設(shè)備、工業(yè)控制、通信和信息系統(tǒng)等領(lǐng)域。ARM10E系列微處理器包含ARM1020EARM1022EARM1026EJ-S2023/1/1197SecurCore微處理器SecurCore系列微處理器除了具有ARM體系結(jié)構(gòu)各種主要特點外,還在系統(tǒng)安全方面具有如下的特點:帶有靈活的保護單元,確保操作系統(tǒng)和應(yīng)用數(shù)據(jù)的安全。采用軟內(nèi)核技術(shù),防止外部對其進行掃描探測??杉捎脩糇约旱陌踩匦院推渌麉f(xié)處理器。2023/1/1198SecurCore微處理器SecurCore系列微處理器主要應(yīng)用于一些對安全性要求較高的應(yīng)用產(chǎn)品及應(yīng)用系統(tǒng),如電子商務(wù)、電子政務(wù)、電子銀行業(yè)務(wù)、網(wǎng)絡(luò)和認證系統(tǒng)等領(lǐng)域。SecurCore系列微處理器包含SecurCoreSC100SecurCoreSC110SecurCoreSC200SecurCoreSC2102023/1/1199StrongARM處理器IntelStrongARM微處理器是采用ARM體系結(jié)構(gòu)高度集成的32位RISC微處理器。它融合了Intel公司的設(shè)計和處理技術(shù)以及ARM體系結(jié)構(gòu)的電源效率,采用在軟件上兼容ARMv4體系結(jié)構(gòu)、同時采用具有Intel技術(shù)優(yōu)點的體系結(jié)構(gòu)。IntelStrongARM微處理器是便攜式通訊產(chǎn)品和消費類電子產(chǎn)品的理想選擇,已成功應(yīng)用于多家公司的掌上電腦系列產(chǎn)品。典型產(chǎn)品如SA110、SA-1100等處理器芯片。2023/1/11100Xscale微處理器Xscale處理器是基于ARMv5TE體系結(jié)構(gòu)的解決方案,是一款全性能、高性價比、低功耗的處理器。它支持16位的Thumb指令和DSP指令集,已使用在數(shù)字移動電話、個人數(shù)字助理和網(wǎng)絡(luò)產(chǎn)品等場合。Xscale處理器是Intel目前主要推廣的一款A(yù)RM微處理器。Intel采用XScale架構(gòu)的嵌入式處理器典型產(chǎn)品有PXA25x、PXA26x和PXA27x系列。2023/1/11101ARM11微處理器ARM11微處理器于2002年10月發(fā)布流水線長度擴展到8階采用ARMv6指令集架構(gòu)主頻最高可達1GHz智能電源管理技術(shù),低功耗2023/1/11102性能參數(shù)對比2023/1/11103ARM系列產(chǎn)品2023/1/11104ARM系列產(chǎn)品2023/1/11105IntelARM2023/1/11106最快的嵌入式處理器ARMCortexA8ApplicationProcessor最快的處理器提供超過2000DMIPS的性能運行于1GHz頻率(90nmor65nm制造工藝)功耗小于300mW2023/1/11107Cortex-M3ARMCortex-M3微控制器內(nèi)核,專門針對MCU應(yīng)用領(lǐng)域而設(shè)計,突出低成本、低功耗和高效率。ARMCortexArchitectureThumb-2ISA3StagePipeline1.22DMIPS/MHz–30%overARM7TDMI33Kgates–30%smallerthanARM7TDMILuminaryMicro的Stellaris系列MCU產(chǎn)品售價僅1美元2023/1/11108ARM微處理器的特點采用RISC架構(gòu)的ARM微處理器一般具有如下特點:體積小、低功耗、低成本、高性能;支持Thumb(16位)/ARM(32位)雙指令集,能很好的兼容8位/16位器件;大量使用寄存器,指令執(zhí)行速度更快;大多數(shù)數(shù)據(jù)操作都在寄存器中完成;尋址方式靈活簡單,執(zhí)行效率高;指令長度固定2023/1/11109嵌入式處理器的選擇選擇處理器時主要考慮的因素有:市場供貨情況嵌入式處理器內(nèi)核選擇處理器的處理速度片內(nèi)存儲器的容量片內(nèi)外設(shè)的選擇考慮膠合邏輯問題處理器的功耗處理器的軟件支持工具處理器是否內(nèi)置調(diào)試工具處理器供應(yīng)商是否提供評估板2023/1/11110內(nèi)容提要嵌入式系統(tǒng)硬件基礎(chǔ)ARM概述ARM微處理器結(jié)構(gòu)ARM運行模式與寄存器ARM的異常處理ARM的存儲器結(jié)構(gòu)2023/1/11111ARM支持的數(shù)據(jù)類型ARM處理器支持下列數(shù)據(jù)類型:字節(jié)8位半字16位(必須分配為占用兩個字節(jié))字32位(必須分配為占用4各字節(jié))V4版本之后的ARM結(jié)構(gòu)(ARM7)都支持這3種結(jié)構(gòu)),而以前的版本只支持字節(jié)和字;當數(shù)據(jù)類型定義為無符號型時,N位數(shù)據(jù)值使用正常的二進制格式表示范圍為0~2N-1的非負整數(shù);當數(shù)據(jù)類型定義為有符號型時,N位數(shù)據(jù)值使用2的補碼格式表示范圍為-2N-1~+2N-1-1的整數(shù);所有數(shù)據(jù)操作,例如ADD,都以字為單位;裝載和保存指令可以對字節(jié)、半字和字進行操作,當裝載字節(jié)或半字時自動實現(xiàn)零擴展或符號擴展;ARM指令的長度剛好是1個字(分配為占用4個字節(jié)),Thumb指令的長度剛好是半字(占用2個字節(jié))。2023/1/11112ARM處理器狀態(tài)ARM7TDMI處理器內(nèi)核使用V4T版本的ARM結(jié)構(gòu),該結(jié)構(gòu)包含32位ARM指令集和16位Thumb指令集。因此ARM7TDMI處理器有兩種操作狀態(tài):ARM狀態(tài):32位,這種狀態(tài)下執(zhí)行的是字方式的ARM指令;Thumb狀態(tài):16位,這種狀態(tài)下執(zhí)行半字方式的ARM指令。注意:兩個狀態(tài)之間的切換并不影響處理器模式或寄存器內(nèi)容。2023/1/11113處理器狀態(tài)切換使用BX指令將ARM7TDMI內(nèi)核的操作狀態(tài)在ARM狀態(tài)和Thumb狀態(tài)之間進行切換,如下程序所示。2023/1/11114ARM處理器運行模式ARM處理器支持7種不同的運行模式:2023/1/11115特權(quán)模式2023/1/11116異常模式2023/1/11117用戶和系統(tǒng)模式2023/1/11118ARM微處理器的寄存器結(jié)構(gòu)ARM處理器共有37個寄存器,被分成若干個組(bank),包括:31個通用寄存器,包括程序計數(shù)器(PC指針),均為32位寄存器;6個狀態(tài)寄存器,用以標識CPU工作狀態(tài)及程序運行狀態(tài),均為32位。 目前只使用了其中的一部分2023/1/11119ARM狀態(tài)各模式下的寄存器2023/1/11120ARM寄存器2023/1/11121ARM寄存器2023/1/11122ARM寄存器2023/1/11123ARM寄存器2023/1/11124ARM寄存器2023/1/11125ARM寄存器2023/1/11126ARM寄存器2023/1/11127ARM寄存器2023/1/11128ARM寄存器R14(LR)寄存器與子程序調(diào)用操作流程1.程序A執(zhí)行過程中調(diào)用程序B;2.程序跳轉(zhuǎn)至標號Lable,執(zhí)行程序B。同時硬件將“BLLable”指令的下一條指令所在地址存入R14(LR);3.程序B執(zhí)行最后,將R14寄存器的內(nèi)容放入PC,返回程序A;2023/1/11129ARM寄存器R14寄存器與異常發(fā)生異常發(fā)生時,程序要跳轉(zhuǎn)至異常服務(wù)程序,對返回地址的處理與子程序調(diào)用類似,都是由硬件完成的。區(qū)別在于有些異常有一個小常量的偏移。注意:當發(fā)生異常嵌套時,這些異常之間可能會發(fā)生沖突。例如:如果用戶在用戶模式下執(zhí)行程序時發(fā)生了IRQ中斷,用戶模式寄存器不會被破壞。但是如果允許在IRQ模式下的中斷處理程序重新使能IRQ中斷,并且發(fā)生了嵌套的IRQ中斷時,外部中斷處理程序保存在R14_irq中的任何值都將被嵌套中斷的返回地址所覆蓋。2023/1/11130ARM寄存器2023/1/11131ARM寄存器2023/1/11132程序計數(shù)器R15(PC)2023/1/11133ARM寄存器讀R15的限制正常操作時,從R15讀取的值是處理器正在取指的地址,即當前正在執(zhí)行指令的地址加上8個字節(jié)(兩條ARM指令的長度)。由于ARM指令總是以字為單位,所以R15寄存器的最低兩位總是為0。2023/1/11134ARM寄存器當使用STR或STM指令保存R15時,會有一個例外。這些指令可能將當前指令地址加8字節(jié)或加12字節(jié)保存(將來可能還有其它數(shù)字)。偏移量是8還是12取決于具體的ARM芯片,但是對于一個確定的芯片,這個值是一個常量。所以最好避免使用STR和STM指令來保存R15,如果很難做到,那么應(yīng)當在程序中計算出該芯片的偏移量。2023/1/11135ARM寄存器寫R15的限制正常操作時,寫入R15的值被當作一個指令地址,程序從這個地址處繼續(xù)執(zhí)行(相當于執(zhí)行一次無條件跳轉(zhuǎn))。由于ARM指令以字節(jié)為邊界,因此寫入R15的值最低兩位通常為0b00。具體的規(guī)則取決于內(nèi)核結(jié)構(gòu)的版本:在ARM結(jié)構(gòu)V3版及以下版本中,寫入R15的值的最低兩位被忽略,因此跳轉(zhuǎn)地址由指令的實際目標地址(寫入R15的值)和0xFFFFFFFC相與得到;在ARM結(jié)構(gòu)V4版及以上版本中,寫入R15的值的最低兩位為0,如果不是,結(jié)果將不可預(yù)測。2023/1/11136程序狀態(tài)寄存器CPSR2023/1/11137程序狀態(tài)寄存器CPSR2023/1/11138程序狀態(tài)寄存器寄存器R16用作程序狀態(tài)寄存器CPSR(CurrentProgramStatusRegister,當前程序狀態(tài)寄存器)。在所有處理器模式下都可以訪問CPSR。CPSR包含條件碼標志、中斷禁止位、當前處理器模式以及其他狀態(tài)和控制信息。每種異常模式都有一個程序狀態(tài)保存寄存器SPSR(SavedProgramStatusRegister)。當異常出現(xiàn)SPSR用于保留CPSR的狀態(tài)。(1)條件碼標志N、Z、C、V(Negative、Zero、Carry、OVerflow)均為條件碼標志位(ConditionCodeFlags),它們的內(nèi)容可被算術(shù)或邏輯運算的結(jié)果所改變,并且可以決定某條指令是否被執(zhí)行。CPSR中的條件碼標志可由大多數(shù)指令檢測以決定指令是否執(zhí)行。在ARM狀態(tài)下,絕大多數(shù)的指令都是有條件執(zhí)行的。在Thumb狀態(tài)下,僅有分支指令是有條件執(zhí)行的。通常條件碼標志通過執(zhí)行比較指令(CMN、CMP、TEQ、TST)、一些算術(shù)運算、邏輯運算和傳送指令進行修改。2023/1/11139程序狀態(tài)寄存器(2)控制位程序狀態(tài)寄存器PSR(ProgramStatusRegister)的最低8位I、F、T和M[4:0]用作控制位。當異常出現(xiàn)時改變控制位。處理器在特權(quán)模式下時也可由軟件改變。中斷禁止位
I:置1,則禁止IRQ中斷;
F:置1,則禁止FIQ中斷。T位
T=0指示ARM執(zhí)行;
T=1指示Thumb執(zhí)行。模式控制位
M4、M3、M2、Ml和M0(M[4:0])是模式位,決定處理器的工作模式。2023/1/11140ARM狀態(tài)和Thumb狀態(tài)之間寄存器的關(guān)系Thumb狀態(tài)寄存器與ARM狀態(tài)寄存器有如下的關(guān)系:Thumb狀態(tài)R0~R7與ARM狀態(tài)R0~R7相同;Thumb狀態(tài)CPSR和SPSR與ARM狀態(tài)CPSR和SPSR相同;Thumb狀態(tài)SP映射到ARM狀態(tài)R13;Thumb狀態(tài)LR映射到ARM狀態(tài)R14;Thumb狀態(tài)PC映射到ARM狀態(tài)PC(R15)。2023/1/111412023/1/11142處理器工作狀態(tài)ARM處理器有32位ARM和16位Thumb兩種工作狀態(tài)。在32位ARM狀態(tài)下執(zhí)行字對齊的ARM指令,在16位Thumb狀態(tài)下執(zhí)行半字對齊的Thumb指令。在Thumb狀態(tài)下,程序計數(shù)器PC(ProgramCounter)使用位[1]選擇另一個半字。ARM處理器在兩種工作狀態(tài)之間可以切換,切換不影響處理器的模式或寄存器的內(nèi)容。當操作數(shù)寄存器的狀態(tài)位(位[0])為1時,執(zhí)行BX指令進入Thumb狀態(tài)。如果處理器在Thumb狀態(tài)進入異常,則當異常處理(IRQ、FIQ、Undef、Abort和SWI)返回時,自動轉(zhuǎn)換到Thumb狀態(tài)。(2)當操作數(shù)寄存器的狀態(tài)位(位[0])為0時,執(zhí)行BX指令進入ARM狀態(tài),處理器進行異常處理(IRQ、FIQ、Reset、Undef、Abort和SWI)。在此情況下,把PC放入異常模式鏈接寄存器中。從異常向量地址開始執(zhí)行也可以進入ARM狀態(tài)2023/1/11143內(nèi)容提要嵌入式系統(tǒng)硬件基礎(chǔ)ARM概述ARM微處理器結(jié)構(gòu)ARM運行模式與寄存器ARM的異常處理ARM的存儲器結(jié)構(gòu)2023/1/11144ARM微處理器的異常處理在一個正常的程序流程執(zhí)行過程中,由內(nèi)部或外部源產(chǎn)生的一個事件使正常的程序產(chǎn)生暫時的停止時,稱之為異常。異常是由內(nèi)部或外部源產(chǎn)生并引起處理器處理一個事件,例如一個外部的中斷請求。在處理異常之前,當前處理器的狀態(tài)必須保留,當異常處理完成之后,恢復(fù)保留的當前處理器狀態(tài),繼續(xù)執(zhí)行當前程序。多個異常同時發(fā)生時,處理器將會按固定的優(yōu)先級進行處理。ARM體系結(jié)構(gòu)中的異常,與單片機的中斷有相似之處,但異常與中斷的概念并不完全等同,例如外部中斷或試圖執(zhí)行未定義指令都會引起異常。2023/1/11145ARM體系結(jié)構(gòu)的異常類型ARM體系結(jié)構(gòu)支持7種類型的異常,異常類型、異常處理模式和優(yōu)先級如表所示。異常出現(xiàn)后,強制從異常類型對應(yīng)的固定存儲器地址開始執(zhí)行程序。這些固定的地址稱為異常向量(ExceptionVectors)。2023/1/11146異常類型的含義復(fù)位當處理器的復(fù)位電平有效時,產(chǎn)生復(fù)位異常,ARM處理器立刻停止執(zhí)行當前指令。復(fù)位后,ARM處理器在禁止中斷的管理模式下,程序跳轉(zhuǎn)到復(fù)位異常處理程序處執(zhí)行(從地址0x00000000或0xFFFF0000開始執(zhí)行指令)。未定義指令異常當ARM處理器或協(xié)處理器遇到不能處理的指令時,產(chǎn)生未定義指令異常。當ARM處理器執(zhí)行協(xié)處理器指令時,它必須等待任一外部協(xié)處理器應(yīng)答后,才能真正執(zhí)行這條指令。若協(xié)處理器沒有響應(yīng),就會出現(xiàn)未定義指令異常。若試圖執(zhí)行未定義的指令,也會出現(xiàn)未定義指令異常。未定義指令異??捎糜谠跊]有物理協(xié)處理器(硬件)的系統(tǒng)上,對協(xié)處理器進行軟件仿真,或在軟件仿真時進行指令擴展。軟件中斷異常(SoftWareInterrupt,SWI)由執(zhí)行SWI指令產(chǎn)生,可使用該異常機制實現(xiàn)系統(tǒng)功能調(diào)用,用于用戶模式下的程序調(diào)用特權(quán)操作指令,以請求特定的管理(操作系統(tǒng))函數(shù)。2023/1/11147異常類型的含義指令預(yù)取中止若處理器預(yù)取指令的地址不存在,或該地址不允許當前指令訪問,存儲器會向處理器發(fā)出存儲器中止(Abort)信號,但當預(yù)取的指令被執(zhí)行時,才會產(chǎn)生指令預(yù)取中止異常。數(shù)據(jù)中止(數(shù)據(jù)訪問存儲器中止)若處理器數(shù)據(jù)訪問指令的地址不存在,或該地址不允許當前指令訪問時,產(chǎn)生數(shù)據(jù)中止異常。存儲器系統(tǒng)發(fā)出存儲器中止信號。響應(yīng)數(shù)據(jù)訪問(加載或存儲)激活中止,標記數(shù)據(jù)為無效。在后面的任何指令或異常改變CPU狀態(tài)之前,數(shù)據(jù)中止異常發(fā)生。外部中斷請求(IRQ)異常當處理器的外部中斷請求引腳有效,且CPSR中的I位為0時,產(chǎn)生IRQ異常。系統(tǒng)的外設(shè)可通過該異常請求中斷服務(wù)。IRQ異常的優(yōu)先級比FIQ異常的低。當進入FIQ處理時,會屏蔽掉IRQ異常。快速中斷請求(FIQ)異常 當處理器的快速中斷請求引腳有效,且CPSR中的F位為0時,產(chǎn)生FIQ異常。FIQ支持數(shù)據(jù)傳送和通道處理,并有足夠的私有寄存器。2023/1/11148異常的響應(yīng)過程當一個異常出現(xiàn)以后,ARM微處理器會執(zhí)行以下幾步操作:①將下一條指令的地址存入相應(yīng)連接寄存器LR,以便程序在處理異常返回時能從正確的位置重新開始執(zhí)行。若異常是從ARM狀態(tài)進入,LR寄存器中保存的是下一條指令的地址(當前PC+4或PC+8,與異常的類型有關(guān));若異常是從Thumb狀態(tài)進入,則在LR寄存器中保存當前PC的偏移量。②將CPSR狀態(tài)傳送到相應(yīng)的SPSR中。③根據(jù)異常類型,強制設(shè)置CPSR的運行模式位。④強制PC從相關(guān)的異常向量地址取下一條指令執(zhí)行,跳轉(zhuǎn)到相應(yīng)的異常處理程序。還可以設(shè)置中斷禁止位,以禁止中斷發(fā)生。2023/1/11149異常的響應(yīng)過程如果異常發(fā)生時,處理器處于Thumb狀態(tài),則當異常向量地址加載入PC時,處理器自動切換到ARM狀態(tài)。異常處理完畢之后,ARM微處理器會執(zhí)行以下幾步操作從異常返回:①將連接寄存器LR的值減去相應(yīng)的偏移量后送到PC中。②將SPSR內(nèi)容送回CPSR中。③若在進入異常處理時設(shè)置了中斷禁止位,要在此清除??梢哉J為應(yīng)用程序總是從復(fù)位異常處理程序開始執(zhí)行的,因此復(fù)位異常處理程序不需要返回。2023/1/11150應(yīng)用程序中的異常處理在應(yīng)用程序的設(shè)計中,異常處理采用的方式是在異常向量表中的特定位置放置一條跳轉(zhuǎn)指令,跳轉(zhuǎn)到異常處理程序。當ARM處理器發(fā)生異常時,程序計數(shù)器PC會被強制設(shè)置為對應(yīng)的異常向量,從而跳轉(zhuǎn)到異常處理程序,當異常處理完成以后,返回到主程序繼續(xù)執(zhí)行2023/1/11151內(nèi)容提要嵌入式系統(tǒng)硬件基礎(chǔ)ARM概述ARM微處理器結(jié)構(gòu)ARM運行模式與寄存器ARM的異常處理ARM的存儲器結(jié)構(gòu)2023/1/11152ARM的存儲器結(jié)構(gòu)
信息的存儲
大多數(shù)計算機使用8位(bit)的數(shù)據(jù)塊做為最小的可尋址的存儲器單位,稱為一個字節(jié)。存儲器的每一個字節(jié)都用一個唯一的地址(address)來標識。所有可能地址的集合稱為存儲器空間。 對于軟件而言,它將存儲器看作一個大的字節(jié)數(shù)組,稱為虛擬存儲器。在實際應(yīng)用中,虛擬存儲器可以劃分成的不同單元,用來存放程序、指令和數(shù)據(jù)等信息。
微處理器和編譯器使用不同的方式來編碼數(shù)據(jù),如不同長度的整數(shù)和浮點數(shù),從而支持多種數(shù)據(jù)格式。以C語言為例,它支持整數(shù)和浮點數(shù)等多種數(shù)據(jù)格式。
2023/1/11153大端和小端存儲法
對于一個多字節(jié)類型的數(shù)據(jù),在存儲器中有兩種存放方法。一種是低字節(jié)數(shù)據(jù)存放在內(nèi)存低地址處,高字節(jié)數(shù)據(jù)存放在內(nèi)存高地址處,稱為小端字節(jié)順序存儲法;另一種是高字節(jié)數(shù)據(jù)存放在低地址處,低字節(jié)數(shù)據(jù)存放在高地址處,稱為大端字節(jié)順序存儲法。
2023/1/11154小端數(shù)據(jù)格式2023/1/11155大端數(shù)據(jù)格式2023/1/11156例如,假設(shè)一個32位字長的微處理器上定義一個int類型的常量a,其內(nèi)存地址位于0x6000處,其值用十六進制表示為0x23456789。如果按小端法存儲,則其最低字節(jié)數(shù)據(jù)0x89存放在內(nèi)存低地址0x6000處,最高字節(jié)數(shù)據(jù)0x23存放在內(nèi)存高地址0x6003處如果按大端法存儲,則其最高字節(jié)數(shù)據(jù)0x23存放在內(nèi)存的低地址0x6000處,而最低字節(jié)數(shù)據(jù)0x89存放在內(nèi)存的高地址0x6003處。2023/1/11157ARM存儲器結(jié)構(gòu) ARM體系結(jié)構(gòu)允許使用現(xiàn)有的存儲器和I/O器件進行各種各樣的存儲器系統(tǒng)設(shè)計。
1.地址空間
ARM體系結(jié)構(gòu)使用232個字節(jié)的單一、線性地址空間。將字節(jié)地址做為無符號數(shù)看待,范圍為0~232-1。
2.存儲器格式對于字對齊的地址A,地址空間規(guī)則要求如下:●地址位于A的字由地址為A、A+1、A+2和A+3的字節(jié)組成;●地址位于A的半字由地址為A和A+1的字節(jié)組成;●地址位于A+2的半字由地址為A+2和A+3的字節(jié)組成;●地址位于A的字由地址為A和A+2的半字組成。2023/1/11158ARM存儲器結(jié)構(gòu)ARM存儲系統(tǒng)可以使用小端存儲或者大端存儲兩種方法(可以通過硬件的方式設(shè)置端模式),大端存儲和小端存儲格式如圖所示。ARM體系結(jié)構(gòu)通常希望所有的存儲器訪問能適當?shù)貙R。特別是用于字訪問的地址通常應(yīng)當字對齊,用于半字訪問的地址通常應(yīng)當半字對齊。未按這種方式對齊的存儲器訪問稱作非對齊的存儲器訪問。2023/1/11159ARM存儲器結(jié)構(gòu)ARM處理器有的帶有指令Cache和數(shù)據(jù)Cache,但不帶有片內(nèi)RAM和片內(nèi)ROM。系統(tǒng)所需的RAM和ROM(包括Flash)都通過總線外接。由于系統(tǒng)的地址范圍較大(232=4GB),有的片內(nèi)還帶有存儲器管理單元MMU(MemoryManagementUnit)。ARM架構(gòu)處理器還允許外接PCMCIA。2023/1/11160存儲器映射I/O2023/1/11161存儲器映射I/O2023/1/11162存儲器映射I/OARM的I/O端口都是內(nèi)存映射的方式,即對I/O端口的訪問與內(nèi)存的訪問的方式完全一樣。I/O口使用特定的存儲器地址,當從這些地址加載(用于輸入)或向這些地址存儲(用于輸出)時,完成I/O功能。加載和存儲也可用于執(zhí)行控制功能,代替或者附加到正常的輸入或輸出功能。?通常將I/O所映射的存儲系統(tǒng)標識為非高速緩存(uncachable)和非緩沖(unbufferable)。2023/1/11163指令的預(yù)取和自修改代碼許多ARM實現(xiàn)在前一條指令的執(zhí)行尚未完成時將指令從存儲器中取出。這個動作稱為指令的預(yù)取。指令的預(yù)取并不是實際執(zhí)行指令。芯片的生產(chǎn)廠商可以自由選擇預(yù)取指令的數(shù)目。被預(yù)取的指令可能得不到運行,可能的原因是:發(fā)生異常;發(fā)生跳轉(zhuǎn);當讀取PC時,得到的指令地址比正在執(zhí)行指令的地址落后兩條指令:對于ARM指令,得到的地址是它自身地址+8;對于Thumb指令,得到的地址是它自身地址+4;2023/1/11164謝謝!CHAPTER
3ARM指令系統(tǒng)2023/1/11166內(nèi)容提要ARM處理器尋址方式指令集介紹2023/1/11167ARM指令系統(tǒng)簡介ARM處理器是基于精簡指令集計算機(RISC)原理設(shè)計的,指令集和相關(guān)譯碼機制較為簡單。帶有T變量的ARM核具有32位ARM指令集和16位Thumb指令集,ARM指令集效率高,但是代碼密度低;而Thumb指令集具有較高的代碼密度,卻仍然保持ARM的大多數(shù)性能上的優(yōu)勢,它是ARM指令集的子集。所有的ARM指令都是可以有條件執(zhí)行的,而Thumb指令僅有一條指令具備條件執(zhí)行功能。ARM程序和Thumb程序可相互調(diào)用,相互之間的狀態(tài)切換開銷幾乎為零。2023/1/11168ARM指令系統(tǒng)ARM指令集與Thumb指令集的關(guān)系Thumb指令集具有靈活、小巧的特點ARM指令集支持ARM核所有的特性,具有高效、快速的特點2023/1/11169內(nèi)容提要ARM處理器尋址方式指令集介紹2023/1/11170ARM處理器尋址方式尋址方式分類
尋址方式是根據(jù)指令中給出的地址碼字段來實現(xiàn)尋找真實操作數(shù)地址的方式。ARM處理器具有9種基本尋址方式。1.寄存器尋址; 2.立即尋址;3.寄存器移位尋址; 4.寄存器間接尋址;5.基址尋址; 6.多寄存器尋址;7.堆棧尋址; 8.塊拷貝尋址;9.相對尋址。2023/1/11171
操作數(shù)的值在寄存器中,指令中的地址碼字段指出的是寄存器編號,指令執(zhí)行時直接取出寄存器值來操作。寄存器尋址指令舉例如下:MOVR1,R2 ;將R2的值存入R1SUBR0,R1,R2;將R1的值減去R2的值,結(jié)果保存到R0
0xAA0x55R2R1ARM處理器尋址方式尋址方式分類——寄存器尋址MOVR1,R20xAA2023/1/11172
立即尋址指令中的操作碼字段后面的地址碼部分即是操作數(shù)本身,也就是說,數(shù)據(jù)就包含在指令當中,取出指令也就取出了可以立即使用的操作數(shù)(這樣的數(shù)稱為立即數(shù))。立即尋址指令舉例如下:SUBS R0,R0,#1;R0減1,結(jié)果放入R0,并且影響標志位MOV R0,#0xFF000;將立即數(shù)0xFF000裝入R0寄存器
0x55R0MOVR0,#0xFF00程序存儲ARM處理器尋址方式尋址方式分類——立即尋址MOVR0,#0xFF000xFF00從代碼中獲得數(shù)據(jù)2023/1/11173
寄存器移位尋址是ARM指令集特有的尋址方式。當?shù)?個操作數(shù)是寄存器移位方式時,第2個寄存器操作數(shù)在與第1個操作數(shù)結(jié)合之前,選擇進行移位操作。寄存器移位尋址指令舉例如下:MOV R0,R2,LSL#3
;R2的值左移3位,結(jié)果放入R0,即是R0=R2×8ANDS R1,R1,R2,LSLR3
;R2的值左移R3位,然后和R1相“與”,放入R10x55R0R20x01ARM處理器尋址方式尋址方式分類——寄存器移位尋址MOVR0,R2,LSL#30x080x08邏輯左移3位2023/1/11174
寄存器間接尋址指令中的地址碼給出的是一個通用寄存器的編號,所需的操作數(shù)保存在寄存器指定地址的存儲單元中,即寄存器為操作數(shù)的地址指針。寄存器間接尋址指令舉例如下:
LDR R1,[R2] ;將R2指向的存儲單元的數(shù)據(jù)讀出保存在R1中
SWP R1,R1,[R2] ;將寄存器R1的值和R2指定的存儲單元的內(nèi)容交換0x55R0R20x400000000xAA0x40000000ARM處理器尋址方式尋址方式分類——寄存器間接尋址LDRR1,[R2]0xAA2023/1/11175
基址尋址就是將基址寄存器的內(nèi)容與指令中給出的偏移量相加,形成操作數(shù)的有效地址?;穼ぶ酚糜谠L問基址附近的存儲單元,常用于查表、數(shù)組操作、功能部件寄存器訪問等?;穼ぶ分噶钆e例如下:LDR R2,[R3,#0x0C] ;讀取R3+0x0C地址上的存儲單元的內(nèi)容,放入R2STR R1,[R0,#-4]! ;先R0=R0-4,然后把R1的值寄存到保存到R0指定的存儲單元ARM處理器尋址方式尋址方式分類——基址尋址0x55R2R30x400000000xAA0x4000000CLDRR2,[R3,#0x0C]0xAA將R3+0x0C作為地址裝載數(shù)據(jù)2023/1/11176
多寄存器尋址一次可傳送幾個寄存器值,允許一條指令傳送16個寄存器的任何子集或所有寄存器。多寄存器尋址指令舉例如下:LDMIA R1!,{R2-R7,R12};將R1指向的單元中的數(shù)據(jù)讀出到
;R2~R7、R12中(R1自動加1)STMIA R0!,{R2-R7,R12};將寄存器R2~R7、R12的值保
;存到R0指向的存儲;單元中
;(R0自動加1)0x40000000R1R20x??0x010x400000000x??R3R40x??R60x??0x020x030x040x400000040x400000080x4000000C存儲器ARM處理器尋址方式尋址方式分類——多寄存器尋址LDRR1!,{R2-R4,R6}0x010x020x030x040x400000102023/1/11177
堆棧是一個按特定順序進行存取的存儲區(qū),操作順序為“后進先出”。堆棧尋址是隱含的,它使用一個專門的寄存器(堆棧指針)指向一塊存儲區(qū)域(堆棧),指針所指向的存儲單元即是堆棧的棧頂。存儲器堆??煞譃閮煞N:向上生長:向高地址方向生長,稱為遞增堆棧向下生長:向低地址方向生長,稱為遞減堆棧ARM處理器尋址方式尋址方式分類——堆棧尋址2023/1/11178ARM處理器尋址方式尋址方式分類——堆棧尋址棧底棧頂棧區(qū)SP堆棧存儲區(qū)棧頂棧底棧區(qū)SP向下增長向上增長0x123456780x12345678堆棧壓棧堆棧壓棧2023/1/11179棧頂SP棧頂SP棧底空堆棧棧底滿堆棧
堆棧指針指向最后壓入的堆棧的有效數(shù)據(jù)項,稱為滿堆棧;堆棧指針指向下一個待壓入數(shù)據(jù)的空位置,稱為空堆棧。ARM處理器尋址方式尋址方式分類——堆棧尋址0x123456780x12345678棧頂SP0x12345678棧頂SP壓棧壓棧2023/1/11180所以可以組合出四種類型的堆棧方式:滿遞增:堆棧向上增長,堆棧指針指向內(nèi)含有效數(shù)據(jù)項的最高地址。指令如LDMFA、STMFA等;空遞增:堆棧向上增長,堆棧指針指向堆棧上的第一個空位置。指令如LDMEA、STMEA等;滿遞減:堆棧向下增長,堆棧指針指向內(nèi)含有效數(shù)據(jù)項的最低地址。指令如LDMFD、STMFD等;空遞減:堆棧向下增長,堆棧指針向堆棧下的第一個空位置。指令如LDMED、STMED等。ARM處理器尋址方式尋址方式分類——堆棧尋址2023/1/11181
多寄存器傳送指令用于將一塊數(shù)據(jù)從存儲器的某一位置拷貝到另一位置。如:STMIA R0!,{R1-R7} ;將R1~R7的數(shù)據(jù)保存到存儲器中。
;存儲指針在保存第一個值之后增加,
;增長方向為向上增長。STMIB R0!,{R1-R7} ;將R1~R7的數(shù)據(jù)保存到存儲器中。
;存儲指針在保存第一個值之前增加,
;增長方向為向上增長。ARM處理器尋址方式尋址方式分類——塊拷貝尋址2023/1/11182
相對尋址是基址尋址的一種變通。由程序計數(shù)器PC提供基準地址,指令中的地址碼字段作為偏移量,兩者相加后得到的地址即為操作數(shù)的有效地址。相對尋址指令舉例如下:
BL SUBR1 ;調(diào)用到SUBR1子程序
BEQ LOOP ;條件跳轉(zhuǎn)到LOOP標號處
...LOOP MOV R6,#1 ...SUBR1 ...ARM處理器尋址方式尋址方式分類——相對尋址2023/1/11183內(nèi)容提要ARM處理器尋址方式指令集介紹ARM指令集Thumb指令集2023/1/11184簡單的ARM程序;文件名:TEST
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年中國北斗應(yīng)急預(yù)警通信行業(yè)資本規(guī)劃與股權(quán)融資戰(zhàn)略制定與實施研究報告
- 2025-2030年中國電氣化鐵路接觸網(wǎng)行業(yè)資本規(guī)劃與股權(quán)融資戰(zhàn)略制定與實施研究報告
- 2025-2030年中國消費性服務(wù)行業(yè)營銷創(chuàng)新戰(zhàn)略制定與實施研究報告
- 2025-2030年中國工藝品行業(yè)并購重組擴張戰(zhàn)略制定與實施研究報告
- 自動售賣機創(chuàng)業(yè)計劃書
- 建設(shè)生態(tài)文明-推進科學(xué)發(fā)展
- 新員工入職培訓(xùn)課件12
- 2024年幼兒園成長手冊寄語
- 狗狗護主知識培訓(xùn)課件
- 2025年中國頭孢拉定行業(yè)發(fā)展監(jiān)測及投資戰(zhàn)略研究報告
- 2024年萍鄉(xiāng)衛(wèi)生職業(yè)學(xué)院單招職業(yè)適應(yīng)性測試題庫參考答案
- 中國農(nóng)業(yè)銀行信用借款合同
- ISO 56001-2024《創(chuàng)新管理體系-要求》專業(yè)解讀與應(yīng)用實踐指導(dǎo)材料之9:“5領(lǐng)導(dǎo)作用-5.3創(chuàng)新戰(zhàn)略”(雷澤佳編制-2025B0)
- 江蘇省連云港市2023-2024學(xué)年八年級上學(xué)期期末數(shù)學(xué)試題(原卷版)
- 初中英語聽力高頻詞
- 2025年生活飲用水監(jiān)督檢查工作計劃
- Unit 3 My School Section B 1a-1d 教學(xué)實錄 2024-2025學(xué)年人教版七年級上冊英語
- 2024年度知識產(chǎn)權(quán)許可合同:萬達商業(yè)廣場商標使用許可合同3篇
- 服務(wù)營銷課件-課件
- 一年級期末數(shù)學(xué)家長會課件
- 2024智能變電站新一代集控站設(shè)備監(jiān)控系統(tǒng)技術(shù)規(guī)范部分
評論
0/150
提交評論