




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
第一章嵌入式系統(tǒng)概述
第1章嵌入式系統(tǒng)概述.pptx第2章ARM體系結(jié)構(gòu).pptx第3章ARM指令系統(tǒng).pptx第4章ARM匯編語言及C語言程序設計基礎.pptx第5章嵌入式系統(tǒng)硬件技術基礎.pptx第6章基于S3C2410的硬件結(jié)構(gòu)與接口編程.pptx第7章嵌入式Linux操作系統(tǒng).pptx第8章嵌入式系統(tǒng)設計方法及開發(fā)實例.pptx全套PPT課件目錄1.1
嵌入式系統(tǒng)的概念1.2
嵌入式系統(tǒng)的歷史1.3
嵌入式系統(tǒng)的組成1.4
嵌入式系統(tǒng)的特點1.5嵌入式系統(tǒng)的應用前景1.6
嵌入式系統(tǒng)的發(fā)展趨勢
1.3.1嵌入式系統(tǒng)的組成結(jié)構(gòu)1.3.2嵌入式處理器
1.3.3典型的嵌入式操作系統(tǒng)1.1
嵌入式系統(tǒng)的概念嵌入式系統(tǒng)的定義:嵌入式系統(tǒng)是指以應用為中心,以計算機技術為基礎,軟件、硬件可剪裁,適應應用系統(tǒng)對功能、可靠性、成本、體積和功耗嚴格要求的專用計算機系統(tǒng)。“嵌入式”反映了這些系統(tǒng)通常是更大系統(tǒng)中的一個組成部分,嵌入式系統(tǒng)在應用數(shù)量上遠遠超過了各種通用計算機。1.2
嵌入式系統(tǒng)的歷史一、現(xiàn)代計算機技術的兩大分支二、始于微型機時代的嵌入式應用一、現(xiàn)代計算機技術的兩大分支電子數(shù)字計算機誕生于1946年,在長期歷程中,計算機是供養(yǎng)在特殊的機房中,實現(xiàn)數(shù)值計算的大型昂貴設備。直到20世紀70年代,微處理器的出現(xiàn),計算機才出現(xiàn)了歷史性的變化。把嵌入到對象體系中,實現(xiàn)對象體系智能化控制的計算機,稱作嵌入式計算機系統(tǒng)。由于眾多對象系統(tǒng)無法嵌入通用計算機系統(tǒng),且嵌入式系統(tǒng)與通用計算機系統(tǒng)的技術發(fā)展方向完全不同。因此必須獨立發(fā)展通用計算機系統(tǒng)與嵌入式計算機系統(tǒng),這就形成了現(xiàn)代計算機技術發(fā)展的兩大分支。嵌入式計算機系統(tǒng)的誕生,則標志了計算機進入了通用計算機系統(tǒng)與嵌入式計算機系統(tǒng)兩大分支并行發(fā)展時代。兩類計算機系統(tǒng)對比(1)由于嵌入式計算機系統(tǒng)要嵌入到對象體系中,實現(xiàn)的是對象的智能化控制,因此,兩者具有完全不同的技術要求與技術發(fā)展方向。(2)兩類系統(tǒng)的專業(yè)化分工發(fā)展,導致20世紀末、21世紀初,計算機技術的飛速發(fā)展。通用計算機系統(tǒng)
計算機專業(yè)領域集中精力發(fā)展通用計算機系統(tǒng)的軟、硬件技術,通用微處理器迅速從286、386、486到奔騰系列;操作系統(tǒng)則迅速擴張計算機基于高速海量的數(shù)據(jù)文件處理能力。嵌入式計算機系統(tǒng)其發(fā)展目標是單芯片化,它承擔起發(fā)展與普及嵌入式系統(tǒng)的歷史任務,迅速地將傳統(tǒng)的電子系統(tǒng)發(fā)展到智能化的現(xiàn)代電子系統(tǒng)時代?,F(xiàn)代計算機技術發(fā)展的兩大分支的意義(1)形成了計算機發(fā)展的專業(yè)化分工;(2)將發(fā)展計算機技術的任務擴展到傳統(tǒng)的電子系統(tǒng)領域;(3)使計算機成為進入人類社會全面智能化時代的有力工具。二、始于微型機時代的嵌入式應用嵌入式計算機的真正發(fā)展是在微處理器問世之后,1971年11月,第一款微處理器Intel4004產(chǎn)生。各種微處理器的廣泛應用形成了一個廣闊的嵌入式應用市場。從靈活兼容考慮,出現(xiàn)了系列化、模塊化的單板機。各插件的互相兼容需求也導致了工業(yè)控制微機系統(tǒng)總線的誕生。20世紀80年代各種總線層出不窮、群雄并起。單片機成為嵌入式計算機系統(tǒng)異軍突起的一支新秀,DSP產(chǎn)品也隨之應用于各大領域。20世紀90年代,在分布控制、柔性制造、數(shù)字化通信、信息家電等巨大需求的牽引下,嵌入式系統(tǒng)進一步加速發(fā)展。21世紀無疑是一個網(wǎng)絡的時代,使嵌入式計算機系統(tǒng)應用到各類網(wǎng)絡中去也必然是嵌入式系統(tǒng)發(fā)展的重要方向。嵌入式系統(tǒng)主要經(jīng)歷的4個階段該階段嵌入式系統(tǒng)是以單芯片為核心的可編程控制器形式的系統(tǒng)。將計算機做在一個芯片上,從而開創(chuàng)了嵌入式系統(tǒng)獨立發(fā)展的單片機時代。
其主要特點是:系統(tǒng)結(jié)構(gòu)和功能相對單一,處理效率較低;存儲容量較小;
幾乎沒有用戶接口。該階段是以嵌入式CPU為基礎、以簡單操作系統(tǒng)為核心的嵌入式系統(tǒng)。
其主要特點是:CPU種類繁多,通用性比較弱;
系統(tǒng)開銷小,效率高;操作系統(tǒng)達到一定的兼容性和擴展性;應用軟件較專業(yè)化,用戶界面不夠友好。該階段是以嵌入式操作系統(tǒng)為標志的嵌入式系統(tǒng)。其主要特點是:
嵌入式操作系統(tǒng)兼容性好;
操作系統(tǒng)內(nèi)核小、效率高,并且具有高度的模塊化和擴展性;具備文件和目錄管理,支持多任務,支持網(wǎng)絡應用,具備圖形窗口和用戶界面;具有大量的應用程序接口API,開發(fā)應用程序較簡單;
嵌入式應用軟件豐富。該階段是以Internet為標志的嵌入式系統(tǒng),這是一個正在迅速發(fā)展的階段。
目前,大多數(shù)嵌入式系統(tǒng)還孤立于Internet之外,但隨著Internet的發(fā)展以及Internet技術與信息家電、工業(yè)控制技術結(jié)合日益密切,嵌入式設備與Internet的結(jié)合將代表嵌入式系統(tǒng)的未來。返1.3
嵌入式系統(tǒng)的組成1.3.1
嵌入式系統(tǒng)的組成結(jié)構(gòu) 1.3.2
嵌入式處理器 1.3.3
典型的嵌入式操作系統(tǒng)
1.3.1
嵌入式系統(tǒng)的組成結(jié)構(gòu)系統(tǒng)的核心計算系統(tǒng)可以抽象出一個典型的組成模型:硬件層、中間層、軟件層和功能層。
硬件層:
包含嵌入式微處理器、存儲器、通用設備接口和I/O接口。嵌入式微處理器嵌入式系統(tǒng)硬件層的核心是嵌入式微處理器,嵌入式微處理器大多工作在特定用戶群的專用設計系統(tǒng)中。嵌入式微處理器有各種不同的體系,即使在同一體系中也可能具有不同的時鐘頻率和數(shù)據(jù)總線寬度,或集成了不同的外設和接口。嵌入式微處理器的選擇是根據(jù)具體的應用而決定的。嵌入式系統(tǒng)需要存儲器來存放和執(zhí)行代碼。嵌入式系統(tǒng)的存儲器包含Cache、主存和輔助存儲器。存儲器Cache:
Cache是一種容量小、速度快的存儲器陣列,它位于主存和嵌入式微處理器內(nèi)核之間,存放的是最近一段時間微處理器使用最多的程序代碼和數(shù)據(jù)。在嵌入式系統(tǒng)中,Cache全部集成在嵌入式微處理器內(nèi),可分為數(shù)據(jù)Cache、指令Cache或混合Cache,Cache的大小依不同處理器而定。主存是嵌入式微處理器能直接訪問的存儲器,用來存放系統(tǒng)和用戶的程序及數(shù)據(jù)。它可以位于微處理器的內(nèi)部或外部,其容量為256KB~1GB,一般片內(nèi)存儲器容量小、速度快,片外存儲器容量大。常用作主存的存儲器有以下幾種:ROM類NORFlash、EPROM、PROM等;RAM類SRAM、DRAM、SDRAM等。主存:輔助存儲器用來存放大數(shù)據(jù)量的程序代碼或信息,它的容量大,但讀取速度與主存相比就慢很多,用來長期保存用戶的信息。嵌入式系統(tǒng)中常用的外存有硬盤、NANDFlash、CF卡、MMC、SD卡等。輔助存儲器:嵌入式系統(tǒng)和外界交互需要一定形式的通用設備接口,外設通過和片外其他設備的或傳感器的連接來實現(xiàn)微處理器的輸入/輸出功能,每個外設通常都只有單一的功能。目前,嵌入式系統(tǒng)中常用的通用設備接口有A/D、D/A、I/O接口有RS-232接口、Ethernet、USB、音頻接口、VGA視頻輸出接口、I2C、SPI、IrDA等。通用設備接口和I/O接口硬件層與軟件層之間為中間層,也稱為硬件抽象層(HardwareAbstractLayer,HAL)或板級支持包(BoardSupportPackage,BSP),它將系統(tǒng)上層軟件與底層硬件分離開來,使系統(tǒng)的底層驅(qū)動程序與硬件無關。上層軟件開發(fā)人員根據(jù)BSP層提供的接口即可進行開發(fā)。該層一般包含相關底層硬件的初始化、數(shù)據(jù)的輸入/輸出操作和硬件設備的配置功能。中間層:實際上,BSP是一個介于操作系統(tǒng)和底層硬件之間的軟件層次,包括了系統(tǒng)中大部分與硬件聯(lián)系緊密的軟件模塊。BSP具有以下兩個特點:①硬件相關性:因為嵌入式實時系統(tǒng)的硬件環(huán)境具有應用相關性,而作為上層軟件與硬件平臺之間的接口,BSP需要為操作系統(tǒng)提供操作和控制具體硬件的方法。②操作系統(tǒng)相關性:不同的操作系統(tǒng)具有各自的軟件層次結(jié)構(gòu),因此,不同的操作系統(tǒng)具有特定的硬件接口形式。軟件層由實時多任務操作系統(tǒng)(Real-timeOperationSystem,RTOS)、文件系統(tǒng)、圖形用戶接口(GraphicUserInterface,GUI)、網(wǎng)絡系統(tǒng)及通用組件模塊組成。RTOS是嵌入式應用軟件的基礎和開發(fā)平臺。軟件層:嵌入式操作系統(tǒng)(EmbeddedOperationSystem,EOS)是一種用途廣泛的系統(tǒng)軟件,過去它主要應用與工業(yè)控制和國防系統(tǒng)領域。EOS負責嵌入系統(tǒng)的全部軟、硬件資源的分配、任務調(diào)度,控制、協(xié)調(diào)并發(fā)活動。嵌入式操作系統(tǒng)在系統(tǒng)實時高效性、硬件的相關依賴性、軟件固化、應用的專用性等方面具有較為突出的特點。嵌入式操作系統(tǒng)嵌入式文件系統(tǒng)嵌入式文件系統(tǒng)比較簡單,主要提供文件存儲、檢索、更新等功能,一般不提供保護、加密等安全機制。它以系統(tǒng)調(diào)用和命令方式提供文件的各種操作,主要有設置、修改對文件和目錄的存取權限。提供建立、修改、改變和刪除目錄等服務。提供創(chuàng)建、打開、讀寫、關閉和撤銷文件等服務。圖形用戶接口圖形用戶接口(GUI)極大地方便了非專業(yè)用戶的使用,人們從此不再需要死記硬背大量的命令,取而代之的是可用通過窗口、菜單、按鍵等方式來方便地進行操作。嵌入式GUI具有下面幾個方面的基本要求:輕型、占用資源少、高性能、高可靠性、便于移植、可配置等特點。功能層:功能層也稱為應用軟件層,應用軟件是由基于實時系統(tǒng)開發(fā)的應用程序組成,用來實現(xiàn)對被控對象的控制功能,且運行在嵌入式操作系統(tǒng)之上,一般情況下與操作系統(tǒng)是分開的。功能層是要面對被控對象和用戶,為方便用戶操作,往往需要提供一個友好的人機界面。返1.3.2
嵌入式處理器嵌入式處理器是嵌入式系統(tǒng)的核心,是控制、輔助系統(tǒng)運行的硬件單元。嵌入式系統(tǒng)至少包含一個主處理器,作為中心控制設備,并且可能擁有額外的從處理器。主處理器的復雜性通常決定著將其歸類為微處理器還是微控制器。目前,世界上具有嵌入式功能特點的處理器已經(jīng)超過1000種,流行體系結(jié)構(gòu)包括MCU、MPU等30多個系列。嵌入式處理器4種分類嵌入式處理器分為嵌入式微處理器、嵌入式微控制器、嵌入式DSP處理器、SoC(SystemonChip)片上系統(tǒng)。嵌入式微處理器(MicroProcessorUnit,MPU)的基礎是通用計算機中的CPU。它的特征是具有32位以上的處理器,具有較高的性能。在實際嵌入式應用中,只保留和嵌入式應用緊密相關的功能硬件,這樣就以最低的功耗和資源實現(xiàn)嵌入式應用的特殊要求。嵌入式微處理器具有體積小、重量輕、成本低、可靠性高的優(yōu)點。Intel公司的嵌入式微處理器嵌入式微控制器(MicrocontrollerUnit,MCU)的典型代表是單片機,這種8位的電子器件目前在嵌入式設備中有著極其廣泛的應用。單片機芯片內(nèi)部集成ROM/EPROM、RAM、總線、總線邏輯、定時/計數(shù)器、看門狗、I/O、串行口、脈寬調(diào)制輸出、A/D、D/A、FlashRAM、EEPROM等各種必要功能和外設。微控制器的最大特點是單片化,體積大大減小,從而使功耗和成本下降、可靠性提高。微控制器是目前嵌入式系統(tǒng)工業(yè)的主流。Intel公司的8051單片機嵌入式DSP處理器(EmbeddedDigitalSignalProcessor,EDSP)是專門用于信號處理方面的處理器,DSP處理器適合于執(zhí)行DSP算法,具有很高的編譯效率和指令的執(zhí)行速度。目前,最為廣泛應用的是TI的TMS320C2000/C5000系列,另外如Intel的MCS-296和Siemens的TriCore也有各自的應用范圍。DSP需求增長的同時,如何在處理速度、價格和功耗方面的優(yōu)勢取得大多數(shù)用戶的信任,成為行業(yè)共同思考的問題。SoC追求產(chǎn)品系統(tǒng)最大包容的集成器件,是目前嵌入式應用領域的熱門話題之一。SoC最大的特點是成功實現(xiàn)了軟硬件無縫結(jié)合,直接在處理器片內(nèi)嵌入操作系統(tǒng)的代碼模塊。SoC具有極高的綜合性,在一個硅片內(nèi)部運用VHDL等硬件描述語言,實現(xiàn)一個復雜的系統(tǒng)。SoC最終將會完全取代CPU。返1.3.3典型的嵌入式操作系統(tǒng)嵌入式操作系統(tǒng)(EmbeddedOperatingSystem,EOS)是一種用途廣泛的系統(tǒng)軟件,EOS負責嵌入系統(tǒng)的全部軟、硬件資源的分配、調(diào)度工作,控制協(xié)調(diào)并發(fā)活動。EOS必須體現(xiàn)其所在系統(tǒng)的特征,能夠通過裝卸某些模塊來達到系統(tǒng)所要求的功能。EOS除了具備一般操作系統(tǒng)最基本的功能,如任務調(diào)度、同步機制、中斷處理、文件功能等外,還具有以下特點。嵌入式操作系統(tǒng)(EOS)的特點(1)可裝卸性、開放性、可伸縮性的體系結(jié)構(gòu)。(2)強實時性,可用于各種設備控制當中。(3)統(tǒng)一的接口,提供各種設備驅(qū)動接入。(4)操作方便、簡單,提供友好的圖形用戶界面。(5)提供強大的網(wǎng)絡功能,支持TCP/IP及其他協(xié)議,提供TCP/UDP/IP/PPP支持及統(tǒng)一的MAC訪問層接口,為各種移動計算設備預留接口。(6)強穩(wěn)定性,弱交互性。嵌入式系統(tǒng)一旦開始運行就不需要用戶過多地干預,這就要負責系統(tǒng)管理的EOS具有較強的穩(wěn)定性。嵌入式操作系統(tǒng)的用戶接口通過系統(tǒng)調(diào)用命令向用戶程序提供服務。(7)固化代碼。在嵌入系統(tǒng)中,嵌入式操作系統(tǒng)和應用軟件被固化在嵌入式系統(tǒng)計算機的ROM中。(8)更好的硬件適應性,也就是良好的移植性。典型嵌入式操作系統(tǒng)舉例典型嵌入式操作系統(tǒng)主要包括Linux、μC/OS、μTenux、WindowsEmbedded“Quebec”、VxWorks、FreeRTOS、蘋果iOS、Android。
Linux:在所有的操作系統(tǒng)中,Linux是發(fā)展最快、應用最廣泛的系統(tǒng)之一。Linux本身的種種特性使其成為嵌入式開發(fā)的首選。嵌入式Linux技術具有支持多數(shù)硬件平臺、按應用要求可定制系統(tǒng)等特性,已成為嵌入式市場的主流。Linux已經(jīng)成為全球第二大操作系統(tǒng)。Linux發(fā)展如此之快的另一個主要原因是產(chǎn)品的成本,免費的Linux為廠商節(jié)約了一大筆開支。目前Linux內(nèi)核的最新版本已經(jīng)達到2.6.xx。μC/OS:μC/OS是一個典型的實時操作系統(tǒng)。該系統(tǒng)從1992年開始發(fā)展,目前流行的是第二個版本,即μC/OSⅡ。其特點如下:公開源代碼,代碼結(jié)構(gòu)清晰明了,注釋詳細;
組織有條理,可移植性好,可裁剪,可固化;
內(nèi)核屬于搶占式,最多可以管理64個任務。該系統(tǒng)短小精悍,是研究和學習實時操作系統(tǒng)的首選。WindowsCE:WindowsCE是Microsft公司的產(chǎn)品,是從整體上為有限資源的平臺設計的多線程、完整優(yōu)先權、多任務的操作系統(tǒng)。WindowsCE采用模塊化設計,并對于從掌上電腦到專用的工控電子設備進行定制。此操作系統(tǒng)的基本內(nèi)核需要至少200KBROM存儲器。WindowsCE缺點是系統(tǒng)軟件價格過高,影響整個產(chǎn)品的成本控制。VxWorks:VxWorks是為實時嵌入式系統(tǒng)設計開發(fā)的操作系統(tǒng)軟件,為程序員開發(fā)提供了高效的實時任務調(diào)度、中斷管理、實時的系統(tǒng)資源以及實時的任務間通信。該系統(tǒng)主要應用在單板機、數(shù)據(jù)網(wǎng)絡(以太網(wǎng)交換機、路由器)、通信等多方面。蘋果iOS:iOS是由蘋果公司為iPhone開發(fā)的操作系統(tǒng)。它主要是給iPhone、iPodTouch以及iPad使用。iOS的系統(tǒng)架構(gòu)分為4個層次:核心操作系統(tǒng)層(theCoreOSlayer),核心服務層(theCoreServiceslayer),媒體層(theMedialayer)、可輕觸層(theCocoaTouchlayer)。Android:Android是Google開發(fā)的基于Linux平臺的開源手機操作系統(tǒng),它包括操作系統(tǒng)、用戶界面和應用程序。Google與開放手機聯(lián)盟合作開發(fā)了Android,這個聯(lián)盟由包括中國移動、摩托羅拉、高通、宏達電和T-Mobile在內(nèi)的30多家技術和無線應用的領軍企業(yè)組成。返1.4
嵌入式系統(tǒng)的特點從某種意義上來說,通用計算機行業(yè)的技術是壟斷的。嵌入式系統(tǒng)則不同,它是一個分散的工業(yè),沒有哪一個系列的處理器和操作系統(tǒng)能夠壟斷全部市場。(1)嵌入式系統(tǒng)工業(yè)是不可壟斷的高度分散的工業(yè)嵌入式系統(tǒng)是面向用戶、面向產(chǎn)品、面向應用的,如果獨立于應用自行發(fā)展,則會失去市場;嵌入式系統(tǒng)只針對一項特殊的任務,設計人員能夠?qū)λM行優(yōu)化,減小尺寸降低成本。嵌入式系統(tǒng)和具體應用有機地結(jié)合在一起,它的升級換代也是和具體產(chǎn)品同步進行。(2)嵌入式系統(tǒng)是面向用戶,特定產(chǎn)品和具體應用領域嵌入式處理器的應用軟件是實現(xiàn)嵌入式系統(tǒng)功能的關鍵。軟件要求固態(tài)化存儲;軟件代碼高質(zhì)量、高可靠性;系統(tǒng)軟件(OS)的高實時性是基本要求;多任務操作系統(tǒng)是知識集成的平臺和走向工業(yè)標準化道路的基礎。(3)嵌入式系統(tǒng)對軟件有高要求
嵌入式系統(tǒng)本身不具備自舉開發(fā)能力,即使設計完成以后,用戶通常也是不能對其中的程序功能進行修改的,必須有一套開發(fā)工具和環(huán)境才能進行開發(fā),這些工具和環(huán)境是基于通用計算機上的軟硬件設備以及各種邏輯分析儀、混合信號示波器等。(4)嵌入式系統(tǒng)開發(fā)需要特定的開發(fā)環(huán)境和開發(fā)工具通用計算機具有完善的操作系統(tǒng)和應用程序接口(API),應用程序的開發(fā)以及完成后的軟件都在操作系統(tǒng)(OS)平臺上運行,但一般不是實時的。嵌入式系統(tǒng)則不同,應用程序可以沒有操作系統(tǒng)直接在芯片上運行,但是用戶必須自行選配RTOS開發(fā)平臺,這樣才能保證程序執(zhí)行的實時性、可靠性,并減少開發(fā)時間,保障軟件質(zhì)量。(5)嵌入式系統(tǒng)軟件需要RTOS開發(fā)平臺通用計算機的開發(fā)人員一般是計算機科學或計算機工程方面的專業(yè)人士。嵌入式系統(tǒng)則是要和各個不同行業(yè)的應用相結(jié)合的,要求更多的計算機以外的專業(yè)知識,其開發(fā)人員往往是各個應用領域的專家。返(6)嵌入式系統(tǒng)開發(fā)人員以應用專家為主1.5
嵌入式系統(tǒng)的應用前景嵌入式計算機技術的應用已影響到我們生活的方方面面,幾乎無處不在,我們的移動電話、家用電器、汽車等無不有它的蹤影。嵌入式控制器因其體積小、可靠性高、功能強、靈活方便等許多優(yōu)點,應用已深入到工業(yè)、農(nóng)業(yè)、教育、國防以及日常生活等各個領域。如果說推動數(shù)字革命的動力最早是大型機,第二波動力是PC機,那么嵌入式技術便是推動數(shù)字革命的第三波動力。嵌入式系統(tǒng)產(chǎn)業(yè)伴隨著國家產(chǎn)業(yè)發(fā)展從通信、消費電子轉(zhuǎn)戰(zhàn)到汽車電子、智能安防、工業(yè)控制和北斗導航,今天嵌入式系統(tǒng)在應用數(shù)量上已遠超通用計算機。我國資深嵌入式系統(tǒng)專家—沈緒榜院士的預言,“未來十年將會產(chǎn)生針頭大小、具有超過一億次運算能力的嵌入式智能芯片,
將為我們提供無限的創(chuàng)造空間。嵌入式微控制器或者說單片機好像是一個黑洞,
會把當今很多技術和成果吸引進來。中國應當注意發(fā)展智力密集型產(chǎn)業(yè)。”嵌入式系統(tǒng)的應用嵌入式技術應用領域(1)物聯(lián)網(wǎng)領域物聯(lián)網(wǎng)為人、機、物等3種對象的智慧型整合網(wǎng)路,強調(diào)個別物件的識別、定位、跟蹤、監(jiān)控與管理。物聯(lián)網(wǎng)技術成為近幾年電子信息技術最重要的主題。物聯(lián)網(wǎng)不僅涵蓋智能家居、智能醫(yī)療、智能電網(wǎng)、智能教育等多個熱點行業(yè)應用,還與云計算、大數(shù)據(jù)、移動互聯(lián)網(wǎng)等息息相關。作為物聯(lián)網(wǎng)重要技術組成的嵌入式系統(tǒng),嵌入式系統(tǒng)的視角有助于深刻地、全面地理解物聯(lián)網(wǎng)的本質(zhì)。
嵌入式系統(tǒng)在物聯(lián)網(wǎng)中的應用(2)數(shù)字家庭數(shù)字家庭概念:每個房間都被無線智能化控制、自動根據(jù)人體調(diào)節(jié)室內(nèi)最佳溫度、語音控制房間內(nèi)所有的電器,不用動手所有物品得心應手。這就是無線數(shù)字家庭的未來藍圖,“數(shù)字家庭”正伴隨著無線IT技術的發(fā)展向我們走來……
數(shù)字家庭應用方向:目前能實現(xiàn)的數(shù)字家庭應用方向主要有網(wǎng)絡寬帶、新潮電子、視聽享樂、智能家居等。嵌入式系統(tǒng)在數(shù)字家庭中的應用(3)智能硬件在物聯(lián)網(wǎng)技術中與消費者接觸最為密切的應用,當屬這兩年興起的智能硬件的應用,其建立在龐大的嵌入式系統(tǒng)生態(tài)之上。生活中處處可見嵌入式操作系統(tǒng),所有帶有數(shù)字接口的設備都使用了嵌入式系統(tǒng)。智能硬件已經(jīng)從可穿戴設備延伸到智能電視、智能家居、智能汽車、醫(yī)療健康、智能玩具、機器人等領域?;谇度胧较到y(tǒng)的智能硬件(4)消費電子領域隨著技術的發(fā)展,消費電子產(chǎn)品正向數(shù)字化和網(wǎng)絡化方向發(fā)展,各式各樣的具有先進技術和人性化元素的數(shù)字化多媒體影音設備。嵌入式系統(tǒng)應用于消費電子領域通信領域大量應用嵌入式系統(tǒng),主要包括程控交換機、路由器、IP交換機、其他傳輸設備等??梢哉f,Internet的基礎設施都是嵌入式應用系統(tǒng),它使得嵌入式系統(tǒng)的應用變得越來越流行。(5)通信網(wǎng)絡領域Buffalo路由器
/USB網(wǎng)卡套裝VPN產(chǎn)品千兆網(wǎng)關防火墻
嵌入式系統(tǒng)在通信網(wǎng)絡設備中的應用(6)儀器儀表領域近年來,儀器儀表越來越智能化,越來越人性化,大大降低了儀器操作人員的工作量,受到了好評。儀器儀表行業(yè)發(fā)展方向微型化、多功能化、智能化、網(wǎng)絡化,未來儀器儀表的研制必須依賴于先進的嵌入式系統(tǒng)及其技術。嵌入式系統(tǒng)在儀器儀表中的應用(7)工業(yè)控制領域基于嵌入式芯片的工業(yè)自動化設備將獲得長足的發(fā)展,目前已經(jīng)有大量的8位、16位、32位嵌入式微控制器在應用中,網(wǎng)絡化是提高生產(chǎn)效率和產(chǎn)品質(zhì)量、減少人力資源主要途徑。就傳統(tǒng)的工業(yè)控制產(chǎn)品而言,低端型采用的往往是8位單片機。但是隨著技術的發(fā)展,32位、64位的處理器逐漸成為工業(yè)控制設備的核心。(8)交通管理與汽車電子領域車載信息娛樂業(yè)務涉及到汽車音響、汽車導航、汽車總線、個人導航及位置服務、電子地圖、車載信息資訊等產(chǎn)品、解決方案和服務。在車輛導航、流量控制、信息監(jiān)測與汽車服務方面,嵌入式系統(tǒng)技術已經(jīng)獲得了廣泛的應用。嵌入式系統(tǒng)在交通管理與汽車電子中的應用(9)國防和航空航天領域嵌入式系統(tǒng)最早的應用是在軍事和航空航天領域。目前,軍事應用的范圍繼續(xù)拓廣,如各種武器控制系統(tǒng),坦克、艦艇、戰(zhàn)斗機等陸、海、空軍用電子裝備,雷達等。航空航天領域的應用更是不勝枚舉,航空電子設備、衛(wèi)星、導航、航天測控等系統(tǒng)中到處都可以見到嵌入式系統(tǒng)。國防領域的應用航天領域的應用1.6
嵌入式系統(tǒng)的發(fā)展趨勢(1)小型化、智能化、網(wǎng)絡化、可視化隨著技術水平的提高,嵌入式設備正朝著小型化便攜式和智能化的方向發(fā)展。嵌入式已經(jīng)進入了“嵌入式+互聯(lián)網(wǎng)+移動”時代,使得嵌入式系統(tǒng)更具人性化、智能化。異地通信、協(xié)同工作、無人操控場所、安全監(jiān)控場所等的可視化也已經(jīng)成為了現(xiàn)實。(2)嵌入式軟件開發(fā)平臺化、標準化、系統(tǒng)可升級,代碼可復用將
更受重視嵌入式操作系統(tǒng)將進一步走向開放、開源、標準化、組件化。隨著系統(tǒng)復雜的的提高,系統(tǒng)可升級和代碼復用技術在嵌入式系統(tǒng)中得到更多的應用。因為嵌入式系統(tǒng)采用的微處理器種類多,缺乏標準化,所以在嵌入式軟件開發(fā)中將更多的使用跨平臺的軟件開發(fā)語言與工具。(3)低功耗(節(jié)能)、綠色環(huán)保嵌入式系統(tǒng)將通過精簡系統(tǒng)內(nèi)核、算法,只保留和系統(tǒng)功能緊密相關的軟硬件,來實現(xiàn)功耗和軟硬件成本的降低。既要軟件人員有豐富的硬件知識,又需要發(fā)展先進嵌入式軟件技術,如Java、Web和WAP等。(4)云計算、可重構(gòu)、虛擬化等技術被進一步應用到嵌入式系統(tǒng)中云計算是將計算分布在大量的分布式計算機上,只需要一個終端,就可以通過網(wǎng)絡服務來實現(xiàn)所需要的計算任務,甚至是超級計算任務??芍貥?gòu)性是指在一個系統(tǒng)中,其硬件模塊和軟件模塊均能根據(jù)變化的數(shù)據(jù)流或控制流對系統(tǒng)結(jié)構(gòu)和算法進行重新配置。虛擬化是指計算機軟件在一個虛擬的平臺上而不是真實的硬件上運行,虛擬化技術可以簡化軟件的重新配置過程。(5)嵌入式系統(tǒng)軟件將逐漸PC化需求和網(wǎng)絡技術的發(fā)展是嵌入式系統(tǒng)發(fā)展的一個源動力,隨著移動互聯(lián)網(wǎng)的發(fā)展,將進一步促進嵌入式系統(tǒng)軟件PC化。結(jié)合跨平臺開發(fā)語言的廣泛應用,嵌入式軟件開發(fā)和非嵌入式軟件開發(fā)的區(qū)別將逐漸減小。(6)融合趨勢嵌入式系統(tǒng)軟硬件融合、產(chǎn)品功能融合、嵌入式設備和互聯(lián)網(wǎng)的融合趨勢加劇。網(wǎng)絡互聯(lián)成為必然趨勢,未來的嵌入式設備必然要求硬件上提供各種網(wǎng)絡通信接口。Java虛擬機與嵌入式Java將成為開發(fā)嵌入式系統(tǒng)的有力工具,嵌入式系統(tǒng)的多媒體化將變成現(xiàn)實。(7)安全性隨著嵌入式技術和互聯(lián)網(wǎng)技術的結(jié)合發(fā)展,由此帶來的大量數(shù)據(jù)通信、數(shù)據(jù)分析等,將會對整個系統(tǒng)的安全與可靠性提出更高要求。一套嵌入式系統(tǒng)需要通過保護、檢測、回應這三部分安全措施來防范安全問題,同時從通訊鏈路的安全和設備本身的安全兩方面著手。返思考題與習題什么是嵌入式系統(tǒng)?試簡單列舉一些生活中常見的嵌入式系統(tǒng)的實例。嵌入式系統(tǒng)具有哪些特點?嵌入式系統(tǒng)與通用計算機相比有哪些區(qū)別?嵌入式系統(tǒng)有哪些組成部分?簡單說明各部分的功能與作用。結(jié)合嵌入式系統(tǒng)的應用,簡要分析嵌入式系統(tǒng)的應現(xiàn)狀和未來趨勢。返第二章ARM體系結(jié)構(gòu)本章內(nèi)容簡介2.1ARM體系結(jié)構(gòu)概述
2.2ARM體系結(jié)構(gòu)分析
2.3ARM處理器模式與寄存器
2.4ARM體系的異常處理
2.5ARM體系的存儲系統(tǒng)
2.1ARM體系結(jié)構(gòu)概述 2.1.1ARM技術簡介 2.1.2ARM體系結(jié)構(gòu)的版本 2.1.3ARM處理器內(nèi)核系列 2.1.1 ARM技術簡介
ARM(AdvancedRISCMachines)公司于1990年成立,由蘋果電腦、Acorn電腦集團和VLSLTechnology合資組建,主要推廣AcornComputer公司研發(fā)的首個商用RISC處理器——ARM處理器。
ARM公司是專門從事基于RISC技術芯片設計開發(fā)的公司,為知識產(chǎn)權供應商。2.1.1 ARM技術簡介采用RISC結(jié)構(gòu)的ARM微處理器一般具有如下特點:1)體積小、低功耗、低成本、高性能;2)支持Thumb(16位)/ARM(32位)雙指令集,能很好的兼容8/16位器件;3)大量使用寄存器,指令執(zhí)行速度更快;4)大多數(shù)數(shù)據(jù)操作都在寄存器中完成;5)尋址方式靈活簡單,執(zhí)行效率高;6)指令長度固定。2.1.2ARM體系結(jié)構(gòu)的版本
為了精確表述在ARM體系結(jié)構(gòu)和實現(xiàn)中所使用的指令集,迄今為止,將其定義了7種主要版本,分別用版本號1~7表示。表2-1給出體系結(jié)構(gòu)版本和處理器內(nèi)核的關系。2.1.3 ARM處理器內(nèi)核系列 ARM微處理器目前包括ARM7系列、ARM9系列、ARM9E系列、ARM10E系列、SecurCore系列、Intel的StrongARM、Xscale等多個系列,除了具有ARM體系結(jié)構(gòu)的共同特點以外,每一個系列的ARM微處理器都有各自的特點和應用領域。
ARM公司給每個內(nèi)核都有命名,通過內(nèi)核的名字能夠看到處理器內(nèi)核的部分信息。1、ARM內(nèi)核版本命名規(guī)則ARM{x}{y}{z}{T}{D}{M}{I}{E}{J}{F}{-S}
x ——系列號,例如ARM7中的“7”、ARM9中的“9”;
y ——內(nèi)部存儲管理/保護單元,例如ARM72中的“2”、ARM94中的“4”;
z ——內(nèi)含有高速緩存Cache;
T ——支持16位的Thumb指令集;
D ——支持JTAG片上調(diào)試;
M ——支持用于長乘法操作(64位結(jié)果)的ARM指令,包含快速乘法器;
I——帶有嵌入式追蹤宏單元ETM(EmbeddedTraceMacro),用來設置斷點和觀察點的調(diào)試硬件;E ——增強型DSP指令(基于TDMI);
J ——含有Java加速器Jazelle,與Java虛擬機相比,Java加速器Jazelle使Java代碼運行速度提高了8倍,功耗降低到原來的80%;
F ——向量浮點單元;S——可綜合版本,意味著處理器內(nèi)核是以源代碼形式提供的。
2、ARM7系列1)具有嵌入式ICE-RT邏輯,調(diào)試開發(fā)方便;2)極低的功耗,適合對功耗要求嚴格的應用,如便攜式產(chǎn)品;3)能夠提供0.9MIPS/MHz的三級流水線結(jié)構(gòu);4)代碼密度高并兼容16位的Thumb指令集;5)對操作系統(tǒng)的支持廣泛,包括WindowsCE、Linux、PalmOS等;6)指令系統(tǒng)與ARM9、ARM9E和ARM10E系列兼容,便于用戶的產(chǎn)品升級換代;7)主頻最高可達130MIPS,高速的運算處理能力能勝任絕大多數(shù)的復雜應用。3、ARM9系列 ARM9系列微處理器在高性能和低功耗特性方面提供最佳的性能。具有以下特點:1)提供1.1MIPS/MHz5級流水線結(jié)構(gòu);2)支持32位ARM指令集和16位Thumb指令集;3)支持32位的高速AMBA總線接口;4)全性能MMU,支持WindowsCE、Linux、PalmOS等主流嵌入式操作系統(tǒng);5)MPU支持實時操作系統(tǒng);6)支持數(shù)據(jù)Cache和指令Cache,具有更高的指令和數(shù)據(jù)處理能力。3、ARM9系列 ARM9E系列微處理器為可綜合處理器,使用單一的處理器內(nèi)核提供了微控制器、DSP、Java應用系統(tǒng)的解決方案,極大地減少了芯片的面積和系統(tǒng)的復雜程度。
ARM9E系列微處理器提供了增強的DSP處理能力,很適合于那些需要同時使用DSP和微控制器的應用場合。4、ARM1OE系列
ARM10E系列微處理器具有高性能、低功耗的特點,由于采用了新的體系結(jié)構(gòu),與同等的ARM9器件相比較,在同樣的時鐘頻率下,性能提高了近50%,同時,ARM10E系列微處理器采用了兩種先進的節(jié)能方式,使其功耗極低。ARM10E系列微處理器的主要特點如下:1)支持DSP指令集,適合于需要高速數(shù)字信號處理的場合;2)6級整數(shù)流水線,指令執(zhí)行效率更高;4)支持32位的高速AMBA總線接口;5)支持VFP10浮點處理協(xié)處理器;7)支持數(shù)據(jù)Cache和指令Cache,具有更高的指令和數(shù)據(jù)處理能力;8)主頻最高可達400MIPS;9)內(nèi)嵌并行讀/寫操作部件。5、ARM11系列
ARM11系列微處理器是ARM新指令結(jié)構(gòu)——ARMv6的第一代設計實現(xiàn)。具有強勁的媒體處理能力和低功耗特點,特別適用于無線和消費類電子產(chǎn)品。1)8級流水線為比以前的ARM內(nèi)核提高了至少40%的吞吐量。2)低功耗,ARM11在處理器能提供超高性能的同時,還要保證功耗、面積的有效性。3)ARM11處理器軟件可以與以前所有ARM處理器兼容,并引入了用于媒體處理的32位SIMD、用于提高操作系統(tǒng)上下文切換性能的物理標記高速緩存、強制實施硬件安全措施的TrustZone
以及針對實時應用的緊密耦合內(nèi)存6、ARMCortex系列基于v7/8結(jié)構(gòu)命名格式也改為Cortex+內(nèi)核類型+編號內(nèi)核首次從單一款式變成3種款式Cortex-A系列高端性能約為ARM11三倍Cortex-R系列實時應用Cortex-M系列低端2.2ARM體系結(jié)構(gòu)分析 2.2.1復雜指令集和精簡指令集 2.2.2普林斯頓結(jié)構(gòu)和哈佛結(jié)構(gòu) 2.2.3流水線技術2.2.1按指令集復雜指令集CISC精簡指令集RISC2.2.2按存儲器結(jié)構(gòu)普林斯頓結(jié)構(gòu)(馮氏結(jié)構(gòu))哈佛結(jié)構(gòu)
微處理器根據(jù)存儲器結(jié)構(gòu)可以分為哈佛(Harvard)結(jié)構(gòu)和普林斯頓(Princeton)結(jié)構(gòu)。ARM內(nèi)核中ARM7系列基于普林斯頓結(jié)構(gòu),ARM9系列之后基本都為哈佛結(jié)構(gòu)。2.2.3流水線技術
流水線技術是指將一個重復的時序過程分解成為若干個子過程,而每個子過程都可有效地在其專用功能段上與其他子過程同時執(zhí)行。2.2.3流水線技術___三級流水 ARM7系列內(nèi)核采用了三條流水線的內(nèi)核結(jié)構(gòu)2.2.3流水線技術___三級流水
通過多個部件并行,使得處理器在處理簡單的寄存器操作指令時,吞吐率為平均每個時鐘周期一條指令
2.2.3流水線技術___三級流水
除了分支指令外,由于馮.諾伊曼體系結(jié)構(gòu),不能夠同時訪問數(shù)據(jù)存儲器和指令存儲器,存儲器指令有時也會造成流水線阻斷
2.2.3流水線技術___五級流水ARM9采用哈佛結(jié)構(gòu),避免了數(shù)據(jù)訪問和取指的總線沖突,采用更為高效的五級流水線設計。2.2.3流水線技術___五級流水有資料表明,同樣主頻下ARM9的處理性能比ARM7高20%-30%2.2.3流水線技術___五級流水讀寄存器是在譯碼階段,寫寄存器是在回寫階段。如果當前指令(A)的目的操作數(shù)寄存器和下一條指令(B)的源操作數(shù)寄存器一致,B指令就需要等A回寫之后才能譯碼。這就是五級流水線中的寄存器沖突。2.3ARM處理器模式與寄存器 2.3.1ARM處理器模式 2.3.2ARM內(nèi)部寄存器 2.3.1ARM處理器模式ARM微處理器支持7種運行模式,分別為:─用戶模式(usr): ─快速中斷模式(fiq): ─外部中斷模式(irq): ─管理模式(svc): ─數(shù)據(jù)訪問終止模式(abt): ─系統(tǒng)模式(sys): ─未定義指令中止模式(und):2.3.2ARM內(nèi)部寄存器 ARM微處理器共有37個32位寄存器,其中31個為通用寄存器,6個為狀態(tài)寄存器,如圖2-8所示。 但是這些寄存器不能被同時訪問,具體哪些寄存器是可編程訪問的,取決微處理器的工作狀態(tài)及具體的運行模式。1、通用寄存器(1)、未分組寄存器R0~R7(2)、分組寄存器R8~R14 R8~R12 R13SP R14LR(3)、程序計數(shù)器PC(R15)2、程序狀態(tài)寄存器當前程序狀態(tài)寄存器CPSRCurrentProgramStatusRegister備份的程序狀態(tài)寄存器SPSRSavedProgramStatusRegister2、程序狀態(tài)寄存器_標志位標志位含義N當用兩個補碼表示的帶符號數(shù)進行運算時,N=1表示運算的結(jié)果為負數(shù);N=0表示運算的結(jié)果為正數(shù)或零;ZZ=1表示運算的結(jié)果為零;Z=0表示運算的結(jié)果為非零;C可以有4種方法設置C的值:─加法運算(包括比較指令CMN):當運算結(jié)果產(chǎn)生了進位時(無符號數(shù)溢出),C=1,否則C=0。─減法運算(包括比較指令CMP):當運算時產(chǎn)生了借位(無符號數(shù)溢出),C=0,否則C=1。─對于包含移位操作的非加/減運算指令,C為移出值的最后一位。─對于其他的非加/減運算指令,C的值通常不改變。V可以有2種方法設置V的值:─對于加/減法運算指令,當操作數(shù)和運算結(jié)果為二進制的補碼表示的帶符號數(shù)時,V=1表示符號位溢出。─對于其他的非加/減運算指令,V的值通常不改變。2、程序狀態(tài)寄存器_控制位M[4:0]處理器模式0b10000用戶模式0b10001FIQ模式0b10010IRQ模式0b10011管理模式0b10111中止模式0b11011未定義模式0b11111系統(tǒng)模式I、F為中斷禁止位,I=1禁止IRQ中斷,F(xiàn)=1禁止FIQ中斷對于ARM體系結(jié)構(gòu)v5及以上的版本的T系列處理器,當該位為1時,程序運行于Thumb狀態(tài),否則運行于ARM狀態(tài)運行模式位M[4:0]:M0、M1、M2、M3、M4是模式位。3、不同模式下寄存器組織2.1ARM體系結(jié)構(gòu)概述
2.2ARM體系結(jié)構(gòu)分析
2.3ARM處理器模式與寄存器
2.4ARM體系的異常處理
2.5ARM體系的存儲系統(tǒng)
2.4ARM體系的異常處理
當正常的程序執(zhí)行流程發(fā)生暫時的停止時,稱之為異常,例如處理一個外部的中斷請求。 在處理異常之前,當前處理器的狀態(tài)必須保留,這樣當異常處理完成之后,當前程序可以繼續(xù)執(zhí)行。
1、異常類型異常類型具體含義復位當處理器的復位電平有效時,產(chǎn)生復位異常,程序跳轉(zhuǎn)到復位異常處理程序處執(zhí)行。未定義指令當ARM處理器或協(xié)處理器遇到不能處理的指令時,產(chǎn)生未定義指令異常??墒褂迷摦惓C制進行軟件仿真。軟件中斷該異常由執(zhí)行SWI指令產(chǎn)生,可用于用戶模式下的程序調(diào)用特權操作指令??墒褂迷摦惓C制實現(xiàn)系統(tǒng)功能調(diào)用。指令預取中止若處理器預取指令的地址不存在,或該地址不允許當前指令訪問,存儲器會向處理器發(fā)出中止信號,但當預取的指令被執(zhí)行時,才會產(chǎn)生指令預取中止異常。數(shù)據(jù)中止若處理器數(shù)據(jù)訪問指令的地址不存在,或該地址不允許當前指令訪問時,產(chǎn)生數(shù)據(jù)中止異常。IRQ(外部中斷請求)當處理器的外部中斷請求引腳有效,且CPSR中的I位為0時,產(chǎn)生IRQ異常。系統(tǒng)的外設可通過該異常請求中斷服務。FIQ(快速中斷請求)當處理器的快速中斷請求引腳有效,且CPSR中的F位為0時,產(chǎn)生FIQ異常。2、處理流程(1)、保存下一條指令的地址(2)、保存CPSR(3)、設置CPSR的運行模式位4)、強制PC從異常向量取址5)、異常處理完畢之后,返回2、處理流程_偽碼描述R14_<Exception_Mode>=ReturnLinkSPSR_<Exception_Mode>=CPSRCPSR[4:0]=ExceptionModeNumberCPSR[5]=0 ;當運行于ARM工作狀態(tài)時If<Exception_Mode>==ResetorFIQthen
;當響應FIQ異常時,禁止新的FIQ異常CPSR[6]=1 CPSR[7]=1PC=ExceptionVectorAddress3、優(yōu)先級(ExceptionPriorities)優(yōu)先級異常1(最高)復位2數(shù)據(jù)中止3FIQ4IRQ5預取指令中止6(最低)未定義指令、SWI本章內(nèi)容簡介2.1ARM體系結(jié)構(gòu)概述
2.2ARM體系結(jié)構(gòu)分析
2.3ARM處理器模式與寄存器
2.4ARM體系的異常處理
2.5ARM體系的存儲系統(tǒng)
2.5 ARM體系中存儲系統(tǒng)1、地址空間
ARM體系結(jié)構(gòu)將存儲器看作是從零地址開始的字節(jié)的線性組合。從零字節(jié)到三字節(jié)放置第一個存儲的字數(shù)據(jù),從第四個字節(jié)到第七個字節(jié)放置第二個存儲的字數(shù)據(jù),依次排列。作為32位的微處理器,ARM體系結(jié)構(gòu)所支持的最大尋址空間為4GB(232字節(jié))。2.5 ARM體系中存儲系統(tǒng)2、存儲器格式大端格式
字數(shù)據(jù)的高字節(jié)存儲在低地址中,而字數(shù)據(jù)的低字節(jié)則存放在高地址中,小端格式與大端存儲格式相反2.5 ARM體系中存儲系統(tǒng)3、存儲器訪問對準
ARM系統(tǒng)中無論取指還是內(nèi)存訪問都應根據(jù)指令以字、半字或字節(jié)對準訪問,如果出現(xiàn)非對齊的情況,將發(fā)生錯誤。第三章ARM指令系統(tǒng) 本章內(nèi)容簡介3.1指令集概述3.2ARM指令集3.3Thumb指令集
3.1指令集概述ARM芯片支持的指令集也有所不同,現(xiàn)介紹常用的指令集。1、 ARM指令集ARM內(nèi)核工作在ARM狀態(tài)時,使用固定長度32位ARM指令集,處理器內(nèi)部的指令譯碼采用硬布線邏輯,不使用微程序控制,以減少指令的譯碼時間,大部分指令可以在一個時鐘周期內(nèi)完成。也是使用最多的指令集。2、 Thumb指令集為兼容數(shù)據(jù)總線寬度為16位的應用系統(tǒng),ARM體系結(jié)構(gòu)除了支持執(zhí)行效率很高的32位ARM指令集以外,同時支持16位的Thumb指令集,Thumb指令集可以看做是ARM指令壓縮形式的子集,Thumb指令只支持一些通用功能,必要時(如異常處理)還要跳轉(zhuǎn)為ARM狀態(tài),借助完善的ARM指令集來處理一些復雜功能。3.1指令集概述3、 Thumb-2指令集ARM指令集效率高,Thumb指令集代碼密度高,但是二者混合使用并不方便,程序員需要顯式聲明并管理狀態(tài),然后才能執(zhí)行各自指令,ARM公司推出的的Thumb-2指令集是ARM指令集和Thumb指令集的超集,綜合了上述兩種指令集的優(yōu)點,完全兼容32位和16位的指令,并且可以混合編程而不需要聲明和管理狀態(tài)。某些芯片(如ARMCortex‐M3)僅支持Thumb-2指令集。4、 A64指令集隨著技術的發(fā)展,ARM為適應高性能芯片的發(fā)展潮流,全新開發(fā)了專用的64位指令,該指令集僅工作在AArch64狀態(tài),對32位指令并不兼容,如需運行32位指令需要做狀態(tài)切換。ARMv8是首個支持A64的體系版本,架構(gòu)中專門增加了31個64位寄存器。3.2ARM指令集3.2.1ARM指令格式 3.2.2ARM指令尋址方式3.2.3ARM指令分類
3.2.1ARM指令格式ARM指令助記符表示為:<opcode>{<cond>}{S}<Rd>,<Rn>,<shift_op2>1)<opcode>:操作碼域,指令編碼的助記符;2){<cond>}:條件碼域,指令允許執(zhí)行的條件編碼?;ɡㄌ柋硎敬隧椏扇笔?。指令分類指令說明裝載/存儲LDRSTR單寄存器LDMSTM多寄存器分支BBLBLXBX
數(shù)據(jù)處理MOVMVN數(shù)據(jù)傳送CMPCMNTSTTEQ比較ADDADCSUBSBCRSBRSC算術加減ANDORREORBIC邏輯運算算術乘、乘加MULMLASMULLSMLALUMULLUMLAL
狀態(tài)寄存器訪問MRSMSR
異常/中斷SWIBKPT
協(xié)處理器相關CDPLDCSTCMCRMRC
opcode條件碼助記符后綴標志含義0000EQZ置位相等0001NEZ清零不相等0010CSC置位無符號數(shù)大于或等于0011CCC清零無符號數(shù)小于0100MIN置位負數(shù)0101PLN清零正數(shù)或零0110VSV置位溢出0111VCV清零未溢出1000HIC置位Z清零無符號數(shù)大于1001LSC清零Z置位無符號數(shù)小于或等于1010GEN等于V帶符號數(shù)大于或等于1011LTN不等于V帶符號數(shù)小于1100GTZ清零且(N等于V)帶符號數(shù)大于1101LEZ置位或(N不等于V)帶符號數(shù)小于或等于1110AL忽略無條件執(zhí)行3.2.1ARM指令格式3){S}:條件碼設置域。例如:ADD R0,R1,R2
;R1與R2的和存放到R0寄存器中,不影響狀態(tài)寄存器ADDSR0,R1,R2
;執(zhí)行加法的同時影響狀態(tài)寄存器4)<Rd>:目的操作數(shù)。5)<Rn>:第一操作數(shù)。6)<shift_op2>:第二操作數(shù)。
3.2.2ARM指令尋址方式1、立即尋址2、寄存器尋址3、寄存器間接尋址4、基址尋址5、多寄存器尋址6、寄存器移位尋址7、相對尋址8、堆棧尋址1.立即尋址
指令操作碼后的地址碼是立即數(shù),即操作數(shù)本身。例如:
ADD R0,R0,#1 ;R0←R0+1立即數(shù)的表示以“#”為前綴,十六進制的立即數(shù)在“#”后面加“&”符號。
2.寄存器尋址
指令地址碼給出寄存器的編號,寄存器中的內(nèi)容為操作數(shù)。例如:
ADD R0,R1,R2 ;R0←R1+R23.寄存器間接尋址
寄存器間接尋址就是以寄存器中的值作為操作數(shù)的地址,而操作數(shù)本身存放在存儲器中例如:
LDR R0,[R1] ;R0←[R1] STR R0,[R1] ;R0→[R1]4.基址變址尋址
基址變址尋址就是將寄存器(該寄存器一般稱作基址寄存器)的內(nèi)容與指令中給出的地址偏移量相加,從而得到一個操作數(shù)的有效地址。
前索引尋址后索引尋址自動索引基址加索引尋址舉例:4.基址變址尋址
前索引尋址舉例:
LDRR0,[R1,#4] ;R0←[R1+4]后索引尋址舉例:
LDRR0,[R1],#4 ;R0←[R1]
;R1←R1+4帶自動索引的前索引尋址舉例:LDRR0,[R1,#4]! ;R0←[R1+4] ;R1←R1+4基址加索引尋址舉例:LDRR0,[R1,R2] ;R0←[R1+R2]5.多寄存器尋址
多寄存器尋址是指一次可以傳動多個寄存器的值,允許一條指令可以傳送16個寄存器的任何子集,包括16個寄存器。例:LDMIAR0,{R1,R2,R3,R4}
;R1←[R0] ;R2←[R0+4]
;R3←[R0+8]
;R4←[R0+12]5.多寄存器尋址
后綴含義:
I:Increment D:Decrement A:After
B:Before
多個連續(xù)的寄存器可以用“-”符號連接;不連續(xù)的寄存器用“,”分隔書寫,如上例可寫成:LDMIAR0,{R1-R4} LDMIAR0,{R1-R3,R4}
6.寄存器移位尋址
寄存器移位尋址是ARM指令集特有的尋址方式。第2個操作數(shù)與第1個操作數(shù)結(jié)合之前,選擇進行移位操作。例如:MOV
R0,R1,LSL#2
;將R1中的內(nèi)容左移兩位后傳送到R0中。6.寄存器移位尋址可采取的移位操作包括:LSL:邏輯左移(LogicalShiftLeft)。寄存器中字的低端空出的位補0。
LSR:邏輯右移(LogicalShiftRight)。寄存器中字的高端空出的位補0。
ASR:算術右移(ArithmeticShiftRight)。算術移位的對象是帶符號數(shù)。在移位過程中必須保持操作數(shù)的符號不變。若源操作數(shù)為正數(shù),則字的高端空出的位補0;若源操作數(shù)為負數(shù),則字的高端空出的位補1。
ROR:循環(huán)右移(ROtateRight)。從字的最低端移出的位填入字的高端空出的位。
RRX:擴展為1的循環(huán)右移(RotateRighteXtendedby1place)。操作數(shù)右移1位,空位(位[31])用原C標志填充。7.相對尋址
可以將相對尋址看作是以程序計數(shù)器PC為基址的一種基址尋址方式。指令的地址碼作為位移量,與PC相加得到操作數(shù)的有效地址。位移量指出了操作數(shù)與當前指令之間的相對位置。例:BL LOOP ;跳轉(zhuǎn)到子程序LOOP處執(zhí)行……
LOOP……
MOV PC,LR ;從子程序返回8.堆棧尋址
堆棧是一種按照特定順序進行存取的存儲區(qū)。這種特定的順序是指“后進先出”(LIFO)或“先進后出”(FILO)。使用堆棧時需要使用一個專門的寄存器作為堆棧指針,棧指針所指定的存儲單元就是堆棧的棧頂。如果堆棧指針指向最后壓入堆棧的有效數(shù)據(jù)項,就稱為滿堆棧(fullstack);如果堆棧指針指向下一個數(shù)據(jù)項放入的空位置,就稱為空堆棧(emptystack)。8.堆棧尋址
根據(jù)堆棧存儲區(qū)地址增長的方向,可將堆棧分為遞增堆棧(ascendingstack)和遞減堆棧(descendingstack)。
ARM支持所有這4種類型的堆棧,即滿遞增、空遞增、滿遞減、空遞減。3.2.3ARM指令集指令分類指令說明裝載/存儲LDRSTR單寄存器LDMSTM多寄存器分支BBLBLXBX
數(shù)據(jù)處理MOVMVN數(shù)據(jù)傳送CMPCMNTSTTEQ比較ADDADCSUBSBCRSBRSC算術加減ANDORREORBIC邏輯運算算術乘、乘加MULMLASMULLSMLALUMULLUMLAL
狀態(tài)寄存器訪問MRSMSR
異常/中斷SWIBKPT
協(xié)處理器相關CDPLDCSTCMCRMRC
1.ARM存儲器訪問指令--LDR、STR
LDR和STR為單一數(shù)據(jù)傳送指令,可傳送字和無符號字節(jié)、半字和帶符號字節(jié)、雙字。LDRR0,[R1] ;將存儲器地址為R1的字數(shù)據(jù)讀入寄存器R0LDRR0,[R1,R2] ;將存儲器地址為R1+R2的字數(shù)據(jù)讀入寄存器R0LDRR0,[R1,#8] ;將存儲器地址為R1+8的字數(shù)據(jù)讀入寄存器R0LDRR0,[R1,R2,LSL#2]!;將存儲器地址為R1+R2×4的數(shù)據(jù)讀入寄存器R0,
并將新地址R1+R2×4寫入R1LDRR0,[R1],R2,LSL#2;將存儲器地址為R1的字數(shù)據(jù)讀入寄存器R0,
并將新地址R1+R2×4寫入R1LDR舉例:STRR0,[R1],#8
;將R0中的字數(shù)據(jù)寫入以R1為地址的存儲器中,并將新地址R1+8寫入R1STR舉例:2.批量加載/存儲LDM、STM
LDM(或STM){類型}基址寄存器{!},寄存器列表{∧}{類型}為以下幾種情況:IA 每次傳送后地址加1。IB 每次傳送前地址加1。DA 每次傳送后地址減1。DB 每次傳送前地址減1。FD 滿遞減堆棧。ED 空遞減堆棧。FA 滿遞增堆棧。EA 空遞增堆棧。2.批量加載/存儲LDM、STM
STMFDR13!,{R0,R4-R12,LR} ;將寄存器列表中的寄存器(R0,R4到R12,LR)存入堆棧LDMFDR13!,{R0,R4-R12,PC} ;將堆棧內(nèi)容恢復到寄存器(R0,R4到R12,LR)B {cond} labelBL {cond} label3.ARM分支指令--B、BL
句法:
指令用于分支和帶鏈接分支的操作。其中,B指令引起處理器轉(zhuǎn)移到label;BL指令將下一條指令的地址拷貝到R14(LR,鏈接寄存器),并引起處理器轉(zhuǎn)移到label。
指令說明:3.ARM分支指令--B、BLB loopABL sub
例:BX {cond} Rm3.ARM分支指令--BX
句法:
指令用于實現(xiàn)分支,并可選地交換指令集。BX指令將引起處理器轉(zhuǎn)移到Rm中的地址。若Rm的位[0]為1,則指令集變換到Thumb指令集。
指令說明:3.ARM分支指令--BXBX R6
例:BLX {cond} Rm3.ARM分支指令--BLX
句法:3.ARM分支指令--BLX
指令用于實現(xiàn)帶鏈接分支,并可選地交換指令集。
BLX指令具體用途有:將下一條指令的地址拷貝到R14(LR,鏈接寄存器)中;轉(zhuǎn)移到label或Rm中的地址;切換到Thumb指令集,條件是Rm的位[0]為1或者使用“BLXlabel”的形式。機器級的“BLXlabel”指令的轉(zhuǎn)移不能超過當前指令地址的±32Mb范圍。
指令說明:3.ARM分支指令--BXBLX R0BLX thumbsub
例:4.ARM數(shù)據(jù)處理指令ARM數(shù)據(jù)處理指令可以完成的功能包括:數(shù)據(jù)傳送算術運算邏輯運算比較測試乘法4.ARM數(shù)據(jù)處理指令ARM數(shù)據(jù)處理指令的特點
操作數(shù)為32位,來自寄存器或定義的立即數(shù)。對于操作數(shù)可進行符號擴展和零擴展。處理結(jié)果除了長乘法指令為64位之外,均為32位,存放在寄存器中。大多數(shù)ARM通用數(shù)據(jù)處理指令都有一個靈活的第二操作數(shù)(flexiblesecondoperand)。第二操作數(shù)operand2可以是立即數(shù)形式或寄存器形式。#32位立即數(shù)Rm,{#shift}4.ARM數(shù)據(jù)處理指令--移位操作ASR: 算術右移。即將寄存器內(nèi)容除以2n。LSR: 邏輯右移。即將寄存器內(nèi)容除以2n。LSL: 邏輯左移。即將寄存器內(nèi)容乘以2n。ROR: 循環(huán)右移。RRX: 帶擴展的循環(huán)右移。將寄存器內(nèi)容循環(huán) 右移1位,進位標志拷貝到位[31]。4.ARM數(shù)據(jù)處理指令--移位操作圖2-18移位操作過程ADD、SUB、RSB、ADC、SBC、RSCop{cond}{S}Rd,Rn,Operand24.ARM數(shù)據(jù)處理指令--算術運算指令
句法:
指令用于加、減、反減等算術運算,包括帶進位的算術運算。算術運算中如果使用R15作為Rn,則其值為指令的地址加8。如果使用R15作為Rd,則執(zhí)行轉(zhuǎn)移到結(jié)果相應的地址;或者在使用“S”的情況下,拷貝SPSR到CPSR,利用這點可從異常返回。在有寄存器控制移位的任何數(shù)據(jù)處理指令中,不能將R15作為Rd或任何操作數(shù)來使用。4.ARM數(shù)據(jù)處理指令--算術運算指令
指令說明:ADD、SUB、RSB、ADC、SBC、RSCADD R2,R1,R3SUBS R8,R6,#240 RSB R4,R4,#1280 ADCHI R11,R0,R3 RSCLES R0,R5,R0,LSLR4 RSCLES R0,R15,R0,LSLR4 4.ARM數(shù)據(jù)處理指令--算術運算指令
例:ADD、SUB、RSB、ADC、SBC、RSCAND、ORR、EOR、BICop{cond}{S}Rd,Rn,Operand24.ARM數(shù)據(jù)處理指令—邏輯運算指令
句法:
指令用于與、或、異或、位清零等邏輯運算。
BIC指令用于將Rn中的位與Operand2值中的相應位的反碼進行“與”操作。若指定S,則指令將根據(jù)結(jié)果更新標志N和Z;計算Operand2時更新標志C;不影響標志V。關于R15的使用與算術運算指令相同。4.ARM數(shù)據(jù)處理指令--邏輯運算指令
指令說明:AND、ORR、EOR、BICAND R9,R2,#0xFF00ORREQ R2,R0,R5 EORS R0,R0,R3,RORR6 BICNES R8,R10,R0,RRX EORS R0,R15,R3,RORR6 4.ARM數(shù)據(jù)處理指令--邏輯運算指令
例:AND、ORR、EOR、BICMOV、MVNop{cond}{S}Rd,Operand24.ARM數(shù)據(jù)處理指令—數(shù)據(jù)傳送指令
句法:
指令用于數(shù)據(jù)傳送。
MOV指令將Operand2的值拷貝到Rd;
MVN指令對Operand2的值按位取非后,將結(jié)果拷貝到Rd。關于條件碼標志的影響與邏輯運算指令相同。關于R15的使用與算術運算指令相同。
4.ARM數(shù)據(jù)處理指令--數(shù)據(jù)傳送指令
指令說明:MOV、MVNMOV R5,R2MVNNE R11,#0x0F000000 MOVS R0,R0,ASRR3
4.ARM數(shù)據(jù)處理指令--數(shù)據(jù)傳送指令
例:MOV、MVNCMP、CMNop{cond}{S}Rd,Operand24.ARM數(shù)據(jù)處理指令--比較指令
句法:
指令用于比較操作,根據(jù)結(jié)果更新條件碼標志,結(jié)果并不放入寄存器。其中,CMP指令從Rn的值中減去Operand2的值,結(jié)果丟棄;CMN指令將Operand2的值加到Rn的值中,結(jié)果丟棄。如果將R15用作Rn,則使用的值是指令的地址加8。在控制寄存器移位的操作中,不能使用R15。4.ARM數(shù)據(jù)處理指令--比較指令
指令說明:CMP、CMNCMP R2,R9CMN R0,#6400CMPGT R13,R7,LSL#2 CMP R2,R15,ASRR0
4.ARM數(shù)據(jù)處理指令--比較指令
例:CMP、CMNTST、TEQop{cond}{S}Rd,Operand24.ARM數(shù)據(jù)處理指令--測試指令
句法:
指令用于測試操作,根據(jù)結(jié)果更新條件碼標志,結(jié)果不放入寄存器。其中,TST指令對Rn的值與Operand2的值進行按位“與”操作,結(jié)果丟棄;TEQ指令對Rn的值與Operand2的值進行按位“異或”操作,結(jié)果丟棄。關于條件碼標志的影響與算術運算指令相同。關于R15的使用與比較指令相同。4.ARM數(shù)據(jù)處理指令--測試指令
指令說明:TST、TEQTST R0,#0x3F8TEQEQ R10,R9 TSTNE R1,R5,ASRR1 TEQ R15,R1,RORR0 4.ARM數(shù)據(jù)處理指令--測試指令
例:TST、TEQMUL、MLAMUL{cond}{S}Rd,Rm,RsMLA{cond}{S}Rd,Rm,Rs,Rn5.ARM數(shù)據(jù)處理指令—乘法指令
句法:
指令用于進行乘法和乘加32位×32位運算,結(jié)果為低32位。如果指定S,則指令根據(jù)結(jié)果更新標志N和Z;不影響標志V;在ARMv4之前版本中標志C不可靠;在ARMv5以后版本中不影響標志C。
R15不能用作Rd、Rm、Rs或Rn。Rd不能與Rm相同。5.ARM數(shù)據(jù)處理指令--乘法指令
指令說明:MUL、MLAMUL R10,R2,R5MLA R10,R2,R1,R5MULS R0,R2,R2 MULLT R2,R3,R2 MLAVCS R8,R6,R3,R8 MUL R15,R0,R3 MLA R1,R1,R6 5.ARM數(shù)據(jù)處理指令--乘法指令
例:MUL、MLAMRS {cond}Rd,psrMSR {cond}psr_fields,#immed_8rMSR {cond}psr_fields,Rm6.狀態(tài)寄存器訪問--MRS、MSR
句法:PSR操作指令MRS和MSR配合使用,可用來更新PSR的讀-修改-寫序列的一部分,如改變處理器模式或清除標志Q。
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度環(huán)??萍脊疚膯T聘用及綠色創(chuàng)新協(xié)議
- 二零二五年度農(nóng)村私人土地租賃與特色養(yǎng)殖合作合同
- 二零二五年度跨境電商金融服務商務協(xié)議書
- 小微企業(yè)市場開拓的營銷推廣計劃
- 電商平臺用戶行為規(guī)范及免責聲明
- 車位抵押借款合同協(xié)議
- 企業(yè)信息化改造升級合作協(xié)議
- 設備采購說明文書模板
- 提高團隊協(xié)作效率的行動計劃
- 物流運輸安全及免責承諾書
- (三級)工業(yè)機器人運用與維護理論考試復習題庫(含答案)
- 2024年廣東省公務員錄用考試《行測》真題及解析
- 高中英語必背3500單詞表(完整版)
- 房產(chǎn)中介居間服務合同模板樣本
- 海洋工程裝備保險研究
- 2024年廣東省深圳市中考英語試題含解析
- GB/T 16288-2024塑料制品的標志
- 麻風病防治知識課件
- 3素炒圓白菜 教案
- 透析患者營養(yǎng)不良護理
- 學生消防安全常識問卷及答案
評論
0/150
提交評論