嵌入式系統(tǒng)第一講 嵌入式系統(tǒng)概述資料_第1頁
嵌入式系統(tǒng)第一講 嵌入式系統(tǒng)概述資料_第2頁
嵌入式系統(tǒng)第一講 嵌入式系統(tǒng)概述資料_第3頁
嵌入式系統(tǒng)第一講 嵌入式系統(tǒng)概述資料_第4頁
嵌入式系統(tǒng)第一講 嵌入式系統(tǒng)概述資料_第5頁
已閱讀5頁,還剩124頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第一(dy)講 嵌入式系統(tǒng)與ARM介紹電信(dinxn)學院崔寅鳴 Email: ymcui共一百二十九頁幾個(j )問題什么是嵌入式系統(tǒng)?我們這門課主要講什么?這門課是如何安排(npi)的? 嵌入式系統(tǒng)是怎么開發(fā)的?共一百二十九頁本講主要(zhyo)內(nèi)容課程設(shè)置相關(guān)問題(wnt)課程主要內(nèi)容課程設(shè)置安排實驗室環(huán)境嵌入式系統(tǒng)的基本概念嵌入式系統(tǒng)的定義嵌入式系統(tǒng)的構(gòu)成要素微處理器操作系統(tǒng)嵌入式系統(tǒng)的基本開發(fā)流程開發(fā)流程調(diào)試方法ARM介紹:體系結(jié)構(gòu)編程模型ARM匯編共一百二十九頁實驗室條件(tiojin)友善之臂公司(n s)Tiny210教學開發(fā)平臺三星S5PV210 (基于Cortex-A8內(nèi)

2、核) 1GHz微處理器Linux & Android 操作系統(tǒng)共一百二十九頁課程(kchng)主要內(nèi)容嵌入式系統(tǒng)(xtng)與ARM介紹ARM體系結(jié)構(gòu)、編程模型指令系統(tǒng)簡介嵌入式Linux開發(fā)環(huán)境與編程嵌入式Linux的開發(fā)環(huán)境及工具介紹嵌入式Linux程序開發(fā)Android系統(tǒng)開發(fā)初步Android開發(fā)環(huán)境搭建Android系統(tǒng)應用程序開發(fā)初步Android系統(tǒng)用戶界面技術(shù)共一百二十九頁課程(kchng)特點理論結(jié)合實踐,通過實驗掌握知識、鍛煉能力課程涉及面廣,要求軟硬件綜合(zngh)能力高硬件(嵌入式開發(fā)板、各種硬件接口)ARM匯編語言編程C語言編程Linux操作系統(tǒng)Java語言編程An

3、droid開發(fā)課程難學,要求花費時間多共一百二十九頁課程(kchng)安排(一)3-16周(32學時(xush))4周理論課(8學時)7、8周嵌入式Linux實驗(8學時)嵌入式Linux基礎(chǔ)實驗(系統(tǒng)構(gòu)建、Makefile實驗、Bootloader實驗、內(nèi)核編譯實驗等)嵌入式Linux驅(qū)動程序開發(fā)實驗(驅(qū)動程序結(jié)構(gòu)、IO口驅(qū)動實驗)9-16周Android實驗(32學時)共一百二十九頁評分標準理論課:10實驗(shyn):90實驗表現(xiàn)30%實驗報告40%出勤20%共一百二十九頁興趣小組適合于有一定基礎(chǔ),有興趣的已選課同學自擬題目,2-3人每組,自選課題題目要經(jīng)過老師評定,通過(tnggu)才

4、能成立不隨大班,自己掌握時間有中期考核和期末考核,分數(shù)單獨計算小組報名發(fā)郵件eelilei共一百二十九頁內(nèi)部(nib)網(wǎng)絡(luò)資源ftp服務(wù)器:4,port: 21, user: emb ,pwd: embeddedTiny210硬件平臺資料嵌入式Linux、Android開發(fā)包實驗(shyn)指導書其他安裝軟件(虛擬機等)共一百二十九頁參考書及資料(zlio)(一)ARM嵌入式處理器結(jié)構(gòu)與應用基礎(chǔ),北航出版社,馬忠梅等, 2002嵌入式系統(tǒng)Intel StrongARM結(jié)構(gòu)與開發(fā),北航出版社,陳章龍等, 2002ARM應用系統(tǒng)開發(fā)詳解,清華大學出版社,李駒光等, 2003Redhat Linux

5、 9 從入門與精通(jngtng),Michael Jang著,邱仲潘等譯,電子工業(yè)出版社Linux編程寶典,John Goerzen著,魏永明等譯,電子工業(yè)出版社共一百二十九頁參考書及資料(zlio)(二)Alessandro Rubini,魏永明等譯,linux設(shè)備驅(qū)動程序,第二版,中國(zhn u)電力出版社,2002中國Linux論壇 嵌入式開發(fā)網(wǎng)精通Android 3,Satya Komatineni等著,人民郵電出版社共一百二十九頁Android網(wǎng)絡(luò)資源/ 開放源代碼,用于移植制作手機/豐富的資料,用于開發(fā)上層應用程序/market 應用程序市場下載SDK等相關(guān)軟件查看文檔在線(z

6、i xin)幫助開發(fā)社區(qū)共一百二十九頁第一部分(b fen) 嵌入式系統(tǒng)概述共一百二十九頁應用(yngyng)于航空航天軍事共一百二十九頁應用(yngyng)于消費電子產(chǎn)品共一百二十九頁嵌入式Internet應用(yngyng)共一百二十九頁嵌入式系統(tǒng)(xtng)的定義(一)IEEE對嵌入式系統(tǒng)的定義: Embedded system is a kind of device used to control, monitor or assist the operation of equipment, machinery or plant. “控制、監(jiān)視或者輔助設(shè)備、機器和車間(chjin)運行的

7、裝置”共一百二十九頁嵌入式系統(tǒng)(xtng)的定義(二)一般的定義:嵌入式系統(tǒng)是以應用為中心和以計算機技術(shù)為基礎(chǔ)的,并且(bngqi)軟硬件是可裁減的,能滿足應用系統(tǒng)對功能、可靠性、實時性、成本、體積、功耗等指標的嚴格要求的專用計算機系統(tǒng)。簡單說,嵌入式系統(tǒng)就是應用軟件與系統(tǒng)硬件的一體化。共一百二十九頁嵌入式系統(tǒng)(xtng)的特點系統(tǒng)內(nèi)核?。阂话銘糜谛⌒碗娮友b置。專用性強:軟硬件結(jié)合緊密,針對硬件進行系統(tǒng)的移植。系統(tǒng)精簡:系統(tǒng)軟件和應用軟件緊密融合,部分無明顯區(qū)別。實時(sh sh)多任務(wù)的操作系統(tǒng): 合理調(diào)度多任務(wù),RTOS開發(fā)平臺。專門的開發(fā)工具和環(huán)境。共一百二十九頁嵌入式系統(tǒng)的基本(jb

8、n)構(gòu)成存儲器及外圍電路嵌入式處理器嵌入式操作系統(tǒng)應用軟件嵌入式硬件(yn jin)系統(tǒng)嵌入式處理器各種類型存儲器模擬電路及電源接口控制器及接插件嵌入式軟件系統(tǒng)板級支持包(BSP)操作系統(tǒng)(OS/RTOS)設(shè)備驅(qū)動(Device Driver)協(xié)議棧(Protocol Stack)應用程序(Application)共一百二十九頁嵌入式處理器的分類(fn li)嵌入式微處理器(MPU)ARMDragonball Mc9328 Mx1Xscale270嵌入式微控制器(MCU) 8051、P51XA、MC68HC05/11/12/16、68300等 嵌入式DSP處理器嵌入式片上系統(tǒng)(xtng)(SO

9、C-System On Chip)嵌入式可編程片上系統(tǒng)(EPSOC)共一百二十九頁ARM嵌入式微處理器ARM公司成立(chngl)于1990年,Saxby和12名工程師ARM=Advanced RISC MachineRISC(精簡指令集) 的典型代表32位處理器技術(shù)嵌入式領(lǐng)域的主力軍ARM處理器有三大特點體積小、功耗低、成本低,性能高ARM/Thumb 32/16位雙指令系統(tǒng)全球眾多的合作伙伴共一百二十九頁CISC與RISCARMAdvanced RISC MachineCISCComplex Instruction Set Computer ,復雜指令集Intel, IA (Intel A

10、rchitecture) 32架構(gòu)AMDRISCReduced Instruction Set Computer,精簡指令集SPARC ,Sun與TI開發(fā)PA-RISC, HP開發(fā)Alpha, Compaq開發(fā)PowerPC ,IBM與Motorola開發(fā)MIPSARM二者在軟件和硬件(yn jin)上都不兼容共一百二十九頁RISC體系結(jié)構(gòu)的特點(tdin)采用固定長度的指令(zhlng)格式,指令(zhlng)規(guī)整、簡單(ARM指令為32位)使用單周期指令,便于流水線操作大量使用寄存器(ARM共有37個寄存器),數(shù)據(jù)處理指令只對寄存器操作,訪問存儲器只使用Load/Store指令。共一百二十

11、九頁ARMARM的產(chǎn)品ARM處理器內(nèi)核,以知識產(chǎn)權(quán)(IP)形式(xngsh)提供給IC生產(chǎn)廠家硬核:有和特定工藝相連系的物理版圖。軟核:用硬件描述語言或C語言寫成,用于功能仿真ARM開發(fā)工具、SOC開發(fā)工具、評估板等ARM公司不生產(chǎn)芯片共一百二十九頁ARM贏利模式:專利授權(quán)費+版費目前在通信(tng xn)領(lǐng)域處于統(tǒng)治地位,100%的CDMA手機和85%以上的WCDMA手機Intel Inside & Inside IntelARM芯片年出貨量超過幾十億片ARM營收中,手機芯片占2/3共一百二十九頁市場(shchng)情況1998年,ARM擁有30項專利技術(shù),芯片出貨量為5100萬塊;而到了2

12、010年,ARM公司擁有的專利技術(shù)就猛增至250項,芯片出貨量更是達到61億塊。2011年底,全球智能手機銷量達到4.13億部,超過個人電腦銷量。在手機領(lǐng)域,ARM市場占有率超過90%在PC及平板電腦(dinno)領(lǐng)域,ARM處理器也占有部分份額共一百二十九頁ARM嵌入式微處理器共一百二十九頁嵌入式操作系統(tǒng)簡介(jin ji)使用操作系統(tǒng)的好處和壞處底層硬件(yn jin)抽象化,多任務(wù),在比較復雜的應用情況下優(yōu)勢明顯占用系統(tǒng)資源,簡單應用情況下增加開發(fā)難度嵌入式系統(tǒng)有多種操作系統(tǒng)可供選擇VxWorks, Palm OS, Nucleus, pSOS, OS-9,QNX,uCOS-II,Sym

13、bianWindows CE, NT,XP,Window MobileLinux, uCLinuxAndroid、iOS共一百二十九頁嵌入式操作系統(tǒng)特點(tdin)除具有普通操作系統(tǒng)的功能如任務(wù)調(diào)度、中斷處理等外,嵌入式操作系統(tǒng)還有以下特點:編碼體積小,適合(shh)有限的存儲空間面向應用,可裁減和移植部分要求實時性強,又稱實時多任務(wù)操作系統(tǒng)(RTOS)可靠性高以及較強的網(wǎng)絡(luò)功能共一百二十九頁嵌入式操作系統(tǒng)結(jié)構(gòu)(jigu)共一百二十九頁嵌入式操作系統(tǒng)通常按體系的分類(fn li)Windows兼容系列Windows CE/NT/XPLinux類嵌入式Linux, uCLinux,RTLinux

14、Android及其派生的iPhone、oPhone、LePhone等通信領(lǐng)域嵌入式操作系統(tǒng)VxWorks, Nucleus,VRTX,QNS,pSOS其他如Symbian、BlackBerry等共一百二十九頁嵌入式Linux特點免費(min fi)和代碼公開支持多種硬件平臺可裁剪使用成本低強大的網(wǎng)絡(luò)功能支持GUI開發(fā)豐富的開發(fā)技術(shù)資源共一百二十九頁Androidandroid一詞的本義指“機器人”,同時也是Google于2007年11月5日宣布的基于Linux平臺的開源手機操作系統(tǒng)的名稱,該平臺由操作系統(tǒng)、中間件、用戶界面和應用軟件組成,號稱是首個為移動(ydng)終端打造的真正開放和完整的移

15、動(ydng)軟件。2008年9月22日,美國運營商T-Mobile USA在紐約正式發(fā)布第一款Google手機T-Mobile G1。該款手機為臺灣宏達電代工制造,是世界上第一部使用Android操作系統(tǒng)的手機,支持WCDMA/HSPA網(wǎng)絡(luò),理論下載速率7.2Mbps,并支持Wi-Fi。共一百二十九頁Android歷史背景GPhone幕后(mhu)教父安迪洛賓2005年8月,洛賓將Android出售給Google共一百二十九頁Android平臺(pngti)架構(gòu)共一百二十九頁Android平臺(pngti)架構(gòu)共一百二十九頁Android系統(tǒng)(xtng)云應用隨著3G逐漸普及,Android

16、系統(tǒng)云應用日益廣泛物聯(lián)網(wǎng)及智能生活 Google Android C2DM(Cloud to Device Messaging)實現(xiàn)云服務(wù)(fw)與手機間的互動。手機支付、智能家居、醫(yī)療、衛(wèi)生、運輸?shù)阮I(lǐng)域已實現(xiàn)應用?;谖恢玫姆?wù)(LBS) 用無線網(wǎng)或GPS實現(xiàn)定位,導航,查詢等;手持端僅需顯示,復雜和巨大的數(shù)據(jù)在云端計算移動數(shù)據(jù) 數(shù)據(jù)存儲在云端,手持端僅顯示。數(shù)據(jù)同步、云硬盤等共一百二十九頁嵌入式系統(tǒng)(xtng)的應用開發(fā)本實驗室條件支持:無OSADS集成開發(fā)(kif)環(huán)境有OS嵌入式LinuxWindows CEAndroid共一百二十九頁嵌入式產(chǎn)品開發(fā)過程(guchng)共一百二十九頁集

17、成開發(fā)(kif)環(huán)境ARM ADS (ARM Developer Suits)它是ARM公司的集成開發(fā)環(huán)境,包括(boku)命令行開發(fā)工具、圖形開發(fā)工具、實用工具和支持軟件4部分,可以進行編輯、編譯及調(diào)試C、C+及匯編程序。Metrowerks CodeWarrior for ARM ADS v1.2ARM匯編及C程序的編輯、編譯AXD調(diào)試共一百二十九頁嵌入式應用開發(fā)(kif)的調(diào)試由于嵌入式系統(tǒng)的可用資源有限,嵌入式開發(fā)和調(diào)試工作通常要通過高性能的宿主機完成。嵌入式應用軟件通過宿主機上的交叉(jioch)編譯器,完成交叉(jioch)編譯和連接后下載到目標機。 宿主機:進行嵌入式軟件開發(fā)的主

18、機目標機:將要開發(fā)的目標板共一百二十九頁嵌入式開發(fā)的調(diào)試(dio sh)方法大致有以下幾種調(diào)試方法:模擬調(diào)試方式(fngsh)ROM Monitor方式(或Angel方式)ICE仿真JTAG調(diào)試與仿真共一百二十九頁模擬(mn)開發(fā)調(diào)試方式模擬(mn)開發(fā)調(diào)試不需開發(fā)板硬件,一臺PC即可純軟件模擬嵌入式處理器的功能和指令。如ARM公司的ARMulator模擬器。它雖然簡單可行,但是缺乏在線調(diào)試和實時仿真功能。共一百二十九頁ROM Monitor調(diào)試(dio sh)方式(一)ROM Monitor方式(或Angel方式)ROM Monitor(或Angel)是運行在目標機的Flash或ROM的一段

19、程序,它主要負責監(jiān)控目標機上被調(diào)試程序的運行情況。通過和宿主機的配合,完成嵌入式系統(tǒng)的調(diào)試。它是目前(mqin)低廉有效的一種調(diào)試方式。之前課程使用Metrowerks公司的CodeWarrior進行開發(fā)調(diào)試時要用到的Metro-TRK就屬于這類軟件。共一百二十九頁ROM Monitor調(diào)試(dio sh)方式(二)共一百二十九頁ICE在線仿真(fn zhn)模式在線仿真(In Circuit Emulator)傳統(tǒng)硬件級仿真調(diào)試模式取下目標板MPU;在線仿真器可以完全仿真MPU的行為;通過卡座等連接到目標板。它支持單步執(zhí)行、斷點、反匯編、源程序級調(diào)試。優(yōu)點:功能非常強大(qingd),軟硬件

20、均可做到完全實時在線調(diào)試缺點:適合于簡單的MPU一般滯后MPU幾個月價格昂貴宿主機目標板仿真器硬件連接示意圖共一百二十九頁JTAG仿真(fn zhn)調(diào)試方式(一)JTAG(Joint Test Action Group)聯(lián)合測試行動小組,是IEEE的一個標準JTAG初始主要用于芯片內(nèi)部測試,可對具有JTAG接口的芯片的硬件電路進行邊界掃描和故障檢測后用于調(diào)試:在芯片內(nèi)部定義TAP(Test Access Port),可以訪問(fngwn)寄存器和掛在總線上的設(shè)備共一百二十九頁JTAG仿真調(diào)試(dio sh)方式(二)JTAG調(diào)試器硬件簡單,只進行并口/usb和JTAG接口的電平轉(zhuǎn)換(zhun

21、hun)主要工作由主機軟件完成,如JTAG/usb協(xié)議轉(zhuǎn)換等速度慢,一般10K/s級別JTAG仿真器硬件復雜,除完成JTAG/usb協(xié)議轉(zhuǎn)換,可能有MPU進行控制提供并口/USB接口等,速度快價格貴共一百二十九頁JTAG仿真調(diào)試(dio sh)方式(三)JTAG仿真器 ARM處理器為了方便調(diào)試,內(nèi)含Embeded ICE 宏單元,并留有JTAG調(diào)試接口,支持在線仿真。它無需(wx)目標存儲器,不占用目標系統(tǒng)的端口。 使用集成開發(fā)環(huán)境配合JTAG仿真器是目前最常用的一種調(diào)試方式。宿主機目標板仿真器硬件連接示意圖共一百二十九頁JTAG仿真調(diào)試(dio sh)方式(四)共一百二十九頁ADS開發(fā)(ki

22、f)環(huán)境ARM ADS (ARM Developer Suits)它是ARM公司的集成開發(fā)環(huán)境,包括命令行開發(fā)工具、圖形開發(fā)工具、實用工具和支持軟件4部分,可以進行編輯、編譯及調(diào)試C、C+及匯編程序(hu bin chn x)。Multi 2000Multi 2000是Green Hills軟件公司()開發(fā)的集成開發(fā)環(huán)境。它支持C/C+/Ada 95/Fortran編程語言,可運行與Windows和UNIX平臺。共一百二十九頁嵌入式Linux開發(fā)(kif)調(diào)試嵌入式Linux工具鏈 交叉(jioch)編譯器GCCarm-linux-gcc項目管理工具MAKE調(diào)試工具GDBbreak設(shè)置斷點Ru

23、n執(zhí)行程序Step單步跟蹤進入Next單步不進入函數(shù)Print, Display顯示變量值Quit共一百二十九頁Android開發(fā)(kif)環(huán)境Android開發(fā)環(huán)境應用層Eclipse+SDKJAVA本地(bnd)代碼開發(fā)環(huán)境NDK共一百二十九頁 第二部分(b fen) ARM體系結(jié)構(gòu)、編程模型、匯編語言介紹共一百二十九頁ARM體系結(jié)構(gòu)的發(fā)展(fzhn)共一百二十九頁ARM體系結(jié)構(gòu)的發(fā)展(fzhn)2012年11月,ARM公司宣布(xunb)推出ARM v8架構(gòu)的cortex-A50系列處理器。共一百二十九頁ARM版本(bnbn)概覽共一百二十九頁ARM 版本性能(xngnng)結(jié)構(gòu)概覽共一

24、百二十九頁ARM處理器命名(mng mng)規(guī)則ARM7TDMI核命名規(guī)則7 體系結(jié)構(gòu) T Thumb 代碼(di m)支持 (16 bit 指令)D Debug 硬件調(diào)試模塊支持M 加強的乘法支持I EmbeddedICE LogicS 可綜合的軟核E DSPJ Jazeller,允許直接執(zhí)行Java字節(jié)碼共一百二十九頁ARM處理器系列(xli)共一百二十九頁ARM7系列(xli)處理器特點(一)ARM7系列:如ARM7TDMI、ARM720T等采用ARMV4T結(jié)構(gòu)常見芯片(xn pin)主頻為20133MHzARM720T以下沒有MMU適合對價位和功耗要求較高的產(chǎn)品。3級流水線和馮.諾依曼

25、結(jié)構(gòu)支持Window CE、Linux Palm OS等共一百二十九頁ARM7系列(xli)處理器特點(二)指令和數(shù)據(jù)Cache(ARM710,720,740)平均(pngjn)功耗0.6mW/MHz每條指令平均需要1.9時鐘周期處理速度0.9MIPS/MHz小型、快速、低能耗、集成式RISC內(nèi)核廣泛應用于手持式計算機、數(shù)據(jù)通信和消費類多媒體共一百二十九頁ARM9系列(xli)處理器特點(一)ARM9系列(xli): MX1采用ARM920T核采用ARMV4T結(jié)構(gòu)常見的芯片主頻為100233MHz5級流水線和哈佛結(jié)構(gòu)支持32位的高速AMBA總線接口MMU支持實時操作系統(tǒng)共一百二十九頁ARM9系

26、列(xli)處理器特點(二)指令數(shù)據(jù)分離的Cache(ARM920,940,9E)平均(pngjn)功耗0.7mW/MHz132MIPS(120MHz時鐘,3.3V供電)或220MIPS(200MHz時鐘)配寫緩沖低價、低能耗、高性能應用于高級引擎管理、保安系統(tǒng)、機頂盒、便攜計算機和高檔打印機共一百二十九頁ARM9E處理器特點(tdin)(略)ARM9E系列采用ARMV5TE結(jié)構(gòu)5級流水線和哈佛結(jié)構(gòu)緊耦合的存儲器接口支持32位的高速AMBA總線接口MMU支持DSP指令集,適合(shh)高速數(shù)字信號處理支持實時操作系統(tǒng)具有指令Cache和數(shù)據(jù)Cache支持VFP9浮點處理協(xié)處理器共一百二十九頁A

27、RM10系列(xli)處理器特點(一)ARM10系列采用ARMV5TE結(jié)構(gòu)6級流水線和哈佛結(jié)構(gòu)支持64位的高速AHB總線接口MMU支持DSP指令集,適合(shh)高速數(shù)字信號處理支持實時操作系統(tǒng)具有指令Cache和數(shù)據(jù)Cache支持VFP9浮點處理協(xié)處理器共一百二十九頁ARM10系列(xli)處理器特點(二)時鐘速度300MHz每條指令平均需要1.2個時鐘周期適用于高性能手持式因特網(wǎng)設(shè)備(shbi),數(shù)字式消費類產(chǎn)品共一百二十九頁ARM11系列(xli)處理器特點ARM11采用ARMV6結(jié)構(gòu)8級流水(lishu)時鐘達到550MHz0.13um工藝支持IEM(Intelligent Energ

28、y Manager),節(jié)約高達75的處理器功耗ARM1156T2-S,ARM1156T2F-S首批含有Thumb-2內(nèi)核技術(shù)共一百二十九頁一些(yxi)廠商的ARM處理器(一)SecureCore系列(xli)專為安全需要而設(shè)計靈活的保護單元Strong ARM融合了Intel技術(shù)的具有ARM體系結(jié)構(gòu)的32位處理器采用ARMV4T結(jié)構(gòu)5級流水Intel以SA110命名包括SA1100 PDA系統(tǒng)芯片和SA1500 多媒體處理器芯片共一百二十九頁一些(yxi)廠商ARM處理器(二)XscaleIntel新一代的性能(xngnng)全、性價比高、低功耗的微處理器 ARMV5TE7級超流水線32k數(shù)

29、據(jù)緩存、32k指令緩存共一百二十九頁ARM v7Cortex分為A,R,M三個系列A系列(適用復雜軟件系統(tǒng))使用MMU,支持虛擬內(nèi)存。A5、A7、A8、A9、A15全系列產(chǎn)品的支持。R系列(實時處理器)實時處理器,具有嚴格的實時響應限制 。使用MPU(memory protection unit),只能運行在內(nèi)存保護模式。M系列(成本和功耗出色)不支持原ARM指令,使用Thumb-2指令集。加入NVIC(Nested Vectored Interrupt Controller),提供更快的中斷處理(chl)、還有負責CPU在深層睡眠時的中斷處理WIC(Wake-up Interrupt Con

30、troller)。共一百二十九頁Cortex-A系列(xli)核心共一百二十九頁ARM v82012年11月,ARM宣布推出ARMv8架構(gòu)ARM Cortex-A50處理器系列產(chǎn)品 。該系列率先推出的是Cortex-A53與Cortex-A57處理器以及最新節(jié)能64位處理技術(shù)與現(xiàn)有32位處理技術(shù)的擴展升級。ARMv8是一個真正意義上的64位,同時這個64位的架構(gòu)當中加入了或者說提供了32位的支持。 Cortex-A57是ARM最先進、性能最高的應用處理器,而Cortex-A53不僅(bjn)是功耗效率最高的ARM應用處理器,也是全球最小的64位處理器。 共一百二十九頁ARM v8Cortex-

31、A 57,是為智能手機和超級手機功耗級別提供最新的性能,超級手機指的是三星的Glaxay3或者是蘋果的iPhone5手機這級別的手機。Cortex-A53在性能方面(fngmin)大概和Cortex-A9是相當?shù)?,但是它的尺寸小得多。?2納米的制程上能減少40%的尺寸,如果到了20納米的話可能只有目前主流CPU1/4的尺寸。所以說A53可能對于低功耗的這樣一個智能手機是一個很好的選擇。共一百二十九頁2012年后,高通處理器占據(jù)手機處理器王者地位。2015年預計正式發(fā)布的幾款手機來看,三星的Exynos 7420、高通的驍龍810都是A57+A53的大小核結(jié)構(gòu)。MTK的X10的(即MT6795

32、),8核心A53,主頻2.2GHZ,勝在功耗較低。下半年據(jù)稱將采用更強大的A72華為的麒麟930用了八核的A53蘋果A8處理器,雙核1.4GHz,不遜(bxn)驍龍800(2.5G四核);A8x處理器,獨一無二的三核CPU,64位共一百二十九頁ARM v8共一百二十九頁ARM v7 v8性能(xngnng)功耗對比共一百二十九頁 ARM處理器架構(gòu)(ji u)(略)共一百二十九頁ARM編程模型(mxng)共一百二十九頁主要(zhyo)內(nèi)容ARM處理器編程模型寄存器組處理器工作模式異常(ychng)處理共一百二十九頁ARM處理器支持(zhch)的運行模式ARM處理器共支持7種運行模式,分別為:用戶

33、(usr):ARM處理器正常的程序執(zhí)行狀態(tài);系統(tǒng)模式(sys):運行具有特權(quán)的操作系統(tǒng)任務(wù); 快速中斷(fiq):用于高速數(shù)據(jù)傳輸或通道處理(chl);外部中斷(irq):用于通用的中斷處理;管理模式(svc):操作系統(tǒng)使用的保護模式;中止(abt):當數(shù)據(jù)或指令訪問中止時進入該模式,可用于虛擬存儲及存儲保護;未定義(und):當未定義指令執(zhí)行時進入該模式,可用于硬件協(xié)處理器的軟件仿真。共一百二十九頁ARM處理器運行(ynxng)模式除用戶模式之外的其余6種稱為非用戶模式,或特權(quán)模式(Privileged Modes);而特權(quán)模式中,除系統(tǒng)模式之外的其余5種又稱為異常模式(Exception

34、Modes)。用戶程序運行在用戶模式下,不能訪問一些受操作系統(tǒng)保護的系統(tǒng)資源。應用程序也不能直接進行處理器模式的切換。當需要進行處理器模式切換時,應用程序可以產(chǎn)生異常處理,在異常處理過程中進行處理器處理器模式的切換。這種體系結(jié)構(gòu)可以使系統(tǒng)控制整個(zhngg)系統(tǒng)的資源。共一百二十九頁系統(tǒng)(xtng)模式系統(tǒng)模式并不是通過異常過程進入的,它和用戶模式具有完全一樣的寄存器。但是系統(tǒng)模式屬于特權(quán)模式,可以訪問所有的系統(tǒng)資源,也可以直接進行處理器模式切換(qi hun)。它主要供操作系統(tǒng)任務(wù)使用。通常操作系統(tǒng)的任務(wù)需要訪問所有的系統(tǒng)資源,同時該任務(wù)仍然使用用戶模式的寄存組,而不是使用異常模式下相應的

35、寄存器組,這樣可以保證當異常中斷發(fā)生時可以正常保存當前工作狀態(tài),進行模式切換(qi hun)。共一百二十九頁ARM處理器運行(ynxng)模式當應用程序發(fā)生異常中斷時,處理器進入相應的異常模式。在每一種異常模式中都有一組寄存器,供相應的異常處理程序使用,這樣(zhyng)就可以保證在進入異常模式時,用戶模式下的寄存器(保存了程序運行狀態(tài))不被破壞。共一百二十九頁ARM的寄存器組織(zzh)ARM處理器共有37個32位寄存器,其中31個為通用寄存器,6個狀態(tài)寄存器。ARM狀態(tài)下的寄存器組織(zzh)未分組寄存器R0R7分組寄存器R8R14程序計數(shù)器R15(PC)當前程序狀態(tài)寄存器 (CPSR)備

36、份的程序狀態(tài)寄存器(SPSR)共一百二十九頁共一百二十九頁Thumb狀態(tài)(zhungti)下的寄存器組織Thumb狀態(tài)下的寄存器組織通用寄存器R0R7程序(chngx)計數(shù)器PC堆棧指針SP(R13)連接寄存器LRCPSP和SPSR共一百二十九頁共一百二十九頁R13(SP堆棧(duzhn)指針)每種異常模式都有備份寄存器R13_usr, R13_svc, R13_abt, R13_und, R13_irq, R13_fiq用作堆棧指針每種異常模式有自己專用的棧地址(dzh)R13用于被中斷程序的現(xiàn)場保護,即保存需要保護的寄存器值共一百二十九頁R14(LR連接(linji)寄存器)每種異常模式(

37、msh)都有備份寄存器R14_usr, R14_svc, R14_abt, R14_und, R14_irq, R14_fiq作用存放當前子程序的返回地址異常中斷發(fā)生時,該異常模式R14_xxx被設(shè)置為將要返回的地址共一百二十九頁R15(PC程序(chngx)計數(shù)器)指令地址PC=當前執(zhí)行指令地址8地址值字對齊(du q)及半字對齊(du q)例MOV PC,PC;跳轉(zhuǎn)到下面第二條指令共一百二十九頁狀態(tài)(zhungti)寄存器狀態(tài)寄存器:當前程序狀態(tài)寄存器 CPSR,可以(ky)在任何工作模式下被訪問;程序狀態(tài)備份寄存器SPSR,只有在異常模式下,才能被訪問 ;共一百二十九頁CPSR當前程序(

38、chngx)狀態(tài)寄存器(一)當前程序狀態(tài)寄存器CPSR N:補碼形式的有符號數(shù)運算時,1為負,0為正;Z:1表示結(jié)果為零;C:加減法的進位(jnwi)或借位,以及非加減法的最后移位;V:1表示補碼形式的有符號數(shù)加減運算時符號位溢出;共一百二十九頁CPSR當前程序(chngx)狀態(tài)寄存器(二)Q:v5以上版本才有,描述增強DSP運算指令是否發(fā)生溢出;I、F:中斷禁止(jnzh)位,1表示中斷禁止(jnzh);T:指示處理器處于ARM或Thumb工作狀態(tài);共一百二十九頁CPSR當前程序(chngx)狀態(tài)寄存器(三)M4:0:表示(biosh)處理器的運行模式0b10000User0b10001FI

39、Q0b10010IRQ0b10011Supervisor0b10111Abort0b11011Undefined0b11111System共一百二十九頁ARM控制程序執(zhí)行(zhxng)的方式正常執(zhí)行,每執(zhí)行一條指令ARM指令PC+4Thumb指令PC+2跳轉(zhuǎn):B、BL、BX、BLX異常中斷執(zhí)行完當前指令,跳轉(zhuǎn)到異常中斷處理程序執(zhí)行完返回到發(fā)生中斷(zhngdun)指令的下一條處要保護和恢復被中斷程序的執(zhí)行現(xiàn)場共一百二十九頁ARM處理器的異常中斷(一)異常是指正常的程序執(zhí)行流程發(fā)生暫時(znsh)的停止或改變,例如在復位、有中斷請求及指令預取中止時; ARM處理器支持7種類型的異常。 復位(RE

40、SET):當處理器的復位電平有效時,產(chǎn)生復位異常,程序跳轉(zhuǎn)到復位異常處理程序處執(zhí)行。 未定義指令(UDEF):當ARM處理器或協(xié)處理器遇到不能處理的指令時,產(chǎn)生未定義指令異常??墒褂迷摦惓C制進行軟件仿真。 軟件中斷(SWI):該異常由執(zhí)行SWI指令產(chǎn)生,可用于用戶模式下的程序調(diào)用特權(quán)操作指令。使用該異常機制可以實現(xiàn)系統(tǒng)功能調(diào)用。共一百二十九頁ARM處理器的異常中斷(二)指令預取中止(PABT):若處理器預取指令的地址不存在,或該地址不允許當前指令訪問,存儲器會向處理器發(fā)出中止信號,但當預取的指令被執(zhí)行時,才會產(chǎn)生指令預取中止異常(ychng)。數(shù)據(jù)中止(DABT):若處理器數(shù)據(jù)訪問指令的地址

41、不存在,或該地址不允許當前指令訪問時,產(chǎn)生數(shù)據(jù)中止異常。IRQ(外部中斷請求):當處理器的外部中斷請求引腳有效,且CPSR中的I位為0時,產(chǎn)生IRQ異常。系統(tǒng)的外設(shè)可通過該異常請求中斷服務(wù)。FIQ(快速中斷請求):當處理器的快速中斷請求引腳有效,且CPSR中的F位為0時,產(chǎn)生FIQ異常。共一百二十九頁ARM處理器的異常中斷(三)異常類型模式正常向量地址高向量地址復位管理0 x000000000 xFFFF0000未定義指令未定義0 x000000040 xFFFF0004軟件中斷管理0 x000000080 xFFFF0008指令預取中止中止0 x0000000C0 xFFFF000C數(shù)據(jù)中止

42、中止0 x000000100 xFFFF0010IRQIRQ0 x000000180 xFFFF0018FIQFIQ0 x0000001C0 xFFFF001C共一百二十九頁ARM處理器的異常中斷(四)異常優(yōu)先級異常類型1(最高)復位2數(shù)據(jù)中止3FIQ4IRQ5預取中止6未定義指令,SWI共一百二十九頁ARM處理器對異常(ychng)的處理(一)對異常的響應:將下一條指令的地址存入相應異常類型的連接寄存器LR_mode;將CPSR復制到相應異常類型的SPSR_mode中;設(shè)置CPSR的M4:0,強制改變到相應的運行模式;禁止正常中斷,如果異常類型為快速中斷或復位,同時禁止快中斷;強制PC從相關(guān)

43、的異常向量(xingling)地址取下一條指令執(zhí)行,從而跳轉(zhuǎn)到相應的異常處理程序處。共一百二十九頁ARM處理器對異常(ychng)的處理(二)異常返回從堆棧中恢復用戶(yngh)寄存器將SPSR_mode復制回CPSR中復制LR_modePC共一百二十九頁未定義異常(ychng)的操作過程進入(jnr)異常:R14_und=產(chǎn)生異常的下一條指令地址SPSR_und=CPSRCPSR4:0=0b11011/*進入未定義運行模式*/CPSR5=0/*進入ARM工作狀態(tài)*/CPSR7=1/*禁止正常中斷*/如果設(shè)置了高向量模式,則PC=0 xFFFF0004 否則PC=0 x00000004退出異常

44、:MOVS PC R14 恢復PC(從R14_und)和CPSR(從SPSR_und),并返回到該未定義指令的下一條指令處共一百二十九頁ARM推薦(tujin)的異常退出指令異常類型R14(ARM)R14(Thumb)返回指令BLPC+4PC+2MOV PC, R14SWIPC+4PC+2MOVS PC, R14UDEFPC+4PC+2MOVS PC, R14FIQPC+4PC+4SUBS PC,R14,#4IRQPC+4PC+4SUBS PC,R14,#4PABTPC+4PC+4SUBS PC,R14,#4DABTPC+8PC+8SUBS PC,R14,#8RESET-共一百二十九頁例:SW

45、I中斷(zhngdun)的R14例如:0 x8000 mov .0 x8004 add .0 x8008 SWI .0 x800C mov .0 x8010 add .當程序執(zhí)行SWI異常時,PC指向0 x8010,在跳轉(zhuǎn)到異常向量的之前(zhqin),ARM會把R14調(diào)整到0 x800C共一百二十九頁ARM數(shù)據(jù)類型字(Word):在ARM體系結(jié)構(gòu)中,字的長度為32位,而在8位/16位處理器體系結(jié)構(gòu)中,字的長度一般(ybn)為16位,請注意區(qū)分。 半字(Half-Word):在ARM體系結(jié)構(gòu)中,半字的長度為16位,與8位/16位處理器體系結(jié)構(gòu)中字的長度一致。 字節(jié)(Byte):在ARM體系結(jié)構(gòu)

46、和8位/16位處理器體系結(jié)構(gòu)中,字節(jié)的長度均為8位。共一百二十九頁存儲器組織(zzh)以0 x87654321為例小端方式(fngsh)對應于地址A+3=0 x87,A+2=0 x65,A+1=0 x43,A=0 x21大端方式對應于地址A=0 x87,A+1=0 x65,A+2=0 x43,A+3=0 x21ByteA+3ByteA+2ByteA+1ByteABit31 bit0共一百二十九頁字對齊(du q)與半字對齊(du q)ARM狀態(tài),字地址的低兩位bits1:0必須為0b00,半字地址的最低位bit0為0b0Thumb狀態(tài),字地址最地位bit0必須為0b0如果寫入PC的指令地址非對

47、齊(du q)ARMV3及以下,忽略R15的bits1:0ARMV4及以上,執(zhí)行結(jié)果不可預知Thumb,忽略R15的bit0共一百二十九頁ARM處理器工作(gngzu)狀態(tài)從編程的角度看,ARM處理器有2種工作狀態(tài)并可自由(zyu)切換:ARM狀態(tài):處理器執(zhí)行32位的、字對準ARM指令;Thumb狀態(tài):處理器執(zhí)行16位、半字對準的Thumb指令。共一百二十九頁ARM/Thumb狀態(tài)(zhungti)的切換ARM處理器總是從ARM狀態(tài)開始執(zhí)行可用指令(zhlng)實現(xiàn)狀態(tài)切換BLXLDR、LDM及POP當處理器進入異常中斷處理程序時,自動切換到ARM狀態(tài)如果從Thumb狀態(tài)進入異常,處理完成退出

48、后仍自動進入Thumb狀態(tài)共一百二十九頁立即(lj)數(shù)一條ARM指令32位,可能含12位立即數(shù)immediate=immed_8循環(huán)右移(2*rotate_imm)合法(hf):0 xff,x0104,0 xff0,0 x3f0非法:0 x101,0 xff1,0 x102(非偶數(shù)位)Qu:0 x1fc共一百二十九頁ARM指令系統(tǒng)(zh ln x tn)跳轉(zhuǎn)B,BL,BLX移位ASR,LSL,LSR,ROR,ROX存儲(cn ch)加載LDR,STR軟中斷SWI共一百二十九頁指令名指令含義操作ADD相加Rd=Rn+op2SUB相減Rd=Rn-op2RSB反向相減Rd=op2-RnADC帶進位加

49、Rd=Rn+op2+CSBC帶借位減Rd=Rn-op2+C-1RSC反向帶借位減Rd=op2-Rn+C-1AND位與Rd=Rn AND op2ORR位或Rd=Rn OR op2EOR位異或Rd=Rn EOR op2BIC位清零Rd=Rn AND NOT op2MOV傳送Rd=op2MVN傳送非Rd=NOT op2CMP比較Rn-op2CMN負向比較Rd=op2-RnTST測試Rn AND op2TEQ測試相等Rn EOR op2共一百二十九頁指令名指令含義操作MUL乘法Rd=Rm*RsMLA乘加Rd=Rm*Rs+RnUMULL無符號數(shù)乘法RdH: RdL = Rm*RsUMLAL無符號數(shù)乘加R

50、dH: RdL += Rm*RsSMULL有符號數(shù)乘RdH: RdL = Rm*RsSMLAL有符號數(shù)乘加RdH: RdL += Rm*Rs共一百二十九頁多寄存器加載/存儲(cn ch)指令(一)該指令完成多個通用寄存器與存儲單元之間的數(shù)據(jù)傳送。 LDM|STM cond 尋址方式 Rn !,通用寄存器組 符號(fho)的含義:尋址方式為:IA、IB、DA、DB、FD、ED、FA、EA;Rn: 基址寄存器,不允許為R15 (PC);!:指令執(zhí)行后,刷新基址寄存器Rn“”:當寄存器列表包含PC且為LDM指令時,同時將SPSR拷貝到CPSR,用于異常返回;當寄存器列表不包含PC,指示指令中所有的寄

51、存器為用戶模式下的寄存器共一百二十九頁LDM / STM 操作(cozu)語法: Rb!, 四 種尋址操作(cozu): LDMIA / STMIAIncrement After(先操作,后增加) LDMIB / STMIBIncrement Before(先增加,后操作) LDMDA / STMDADecrement After (先操作,后遞減) LDMDB / STMDBDecrement Before (先遞減,后操作)IAr1地址增加r4r0r1r4r0r1r4r0r1r4r0r10IBDADBLDMxx r10, r0,r1,r4STMxx r10, r0,r1,r4基址寄存器 (

52、Rb)共一百二十九頁存儲器塊拷貝可選項“ ! ”將導致LDM / STM 指令去自動更新基址寄存器后綴為IA, IB時,加上4 乘以 用于傳送的寄存器的數(shù)目的值后綴為DA, DB時,減去4乘以用于傳送的寄存器的數(shù)目的值示例:; r12指向源數(shù)據(jù)起始地址; r14指向源數(shù)據(jù)尾地址; r13指向目的數(shù)據(jù)起始地址loopLDMIAr12!, r0-r11; 裝載48 bytesSTMIAr13!, r0-r11;存儲(cn ch)themCMPr12, r14; check for the endBNEloop;loop until done此循環(huán)傳送 48 bytes占用了31周期時鐘為33 MHz時傳輸速率超過50 Mbytes/sec存儲器增加(zngji)r13r14r12共一百二十九頁多寄存器加載/存儲(cn ch)指令(二)例如(lr):STMFD R13!, R0, R4-R7, LR ;寄存器進棧LDMFD R13!, R0, R4-R7, PC ;寄存器返回注:基址寄存器可以出現(xiàn)在寄存器列表中,但要避免和寫回操作“!”同時使用。R15可以出現(xiàn)在LDM指令的寄存器列表中;但要避免出現(xiàn)在S

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論