版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
嵌入式系統(tǒng)2013研嵌入式系統(tǒng)概述第1頁/共140頁幾個問題什么是嵌入式系統(tǒng)?我們這門課主要講什么?這門課是如何安排的?ARM相關(guān)的介紹第2頁/共140頁本講主要內(nèi)容課程設(shè)置相關(guān)問題課程主要內(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匯編第3頁/共140頁實驗室條件深圳億道公司EELiod270教學(xué)開發(fā)平臺IntelXscale270微處理器,520MHz完善的硬件平臺支持WinCE和Linux操作系統(tǒng)友善之臂公司Tiny210教學(xué)開發(fā)平臺三星S5PV210(基于Cortex-A8內(nèi)核)@1GHz微處理器Linux&Android操作系統(tǒng)第4頁/共140頁課程主要內(nèi)容嵌入式系統(tǒng)與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)應(yīng)用程序開發(fā)初步Android系統(tǒng)用戶界面技術(shù)第5頁/共140頁課程特點理論結(jié)合實踐,通過實驗掌握知識、鍛煉能力課程涉及面廣,要求軟硬件綜合能力高硬件(嵌入式開發(fā)板、各種硬件接口)ARM匯編語言編程C語言編程Linux操作系統(tǒng)Java語言編程Android開發(fā)課程難學(xué),要求花費時間多第6頁/共140頁課程安排(一)2-17周(32學(xué)時)2-4周理論課(6學(xué)時)5-12周嵌入式Linux實驗(16學(xué)時)嵌入式Linux基礎(chǔ)實驗(系統(tǒng)構(gòu)建、Makefile實驗、Bootloader實驗、內(nèi)核編譯實驗)嵌入式Linux驅(qū)動程序開發(fā)實驗(驅(qū)動程序結(jié)構(gòu)、IO口驅(qū)動實驗)GUI應(yīng)用程序?qū)嶒?,QT移植實驗自選實驗13-17周Android實驗第7頁/共140頁評分標(biāo)準(zhǔn)理論課:10%實驗:90%實驗表現(xiàn)30%實驗報告40%出勤20%第8頁/共140頁內(nèi)部網(wǎng)絡(luò)資源ftp服務(wù)器:4,port:21,user:emb,pwd:embeddedEELiod硬件平臺資料ADS開發(fā)系統(tǒng)資料嵌入式Linux
BSP軟件包實驗指導(dǎo)書其他安裝軟件(虛擬機,Redhat9等)第9頁/共140頁參考書及資料(一)ARM嵌入式處理器結(jié)構(gòu)與應(yīng)用基礎(chǔ),北航出版社,馬忠梅等,2002嵌入式系統(tǒng)—IntelStrongARM結(jié)構(gòu)與開發(fā),北航出版社,陳章龍等,2002ARM應(yīng)用系統(tǒng)開發(fā)詳解,清華大學(xué)出版社,李駒光等,2003RedhatLinux9從入門與精通,MichaelJang著,邱仲潘等譯,電子工業(yè)出版社Linux編程寶典,JohnGoerzen著,魏永明等譯,電子工業(yè)出版社第10頁/共140頁參考書及資料(二)AlessandroRubini,魏永明等譯,linux設(shè)備驅(qū)動程序,第二版,中國電力出版社,2002中國Linux論壇嵌入式開發(fā)網(wǎng)第11頁/共140頁第一部分嵌入式系統(tǒng)概述第12頁/共140頁應(yīng)用于航空航天軍事第13頁/共140頁應(yīng)用于消費電子產(chǎn)品第14頁/共140頁嵌入式Internet應(yīng)用第15頁/共140頁嵌入式系統(tǒng)的定義(一)IEEE對嵌入式系統(tǒng)的定義:
Embeddedsystemisakindofdeviceusedtocontrol,monitororassisttheoperationofequipment,machineryorplant.
“控制、監(jiān)視或者輔助設(shè)備、機器和車間運行的裝置”第16頁/共140頁嵌入式系統(tǒng)的定義(二)一般的定義: 嵌入式系統(tǒng)是以應(yīng)用為中心和以計算機技術(shù)為基礎(chǔ)的,并且軟硬件是可裁減的,能滿足應(yīng)用系統(tǒng)對功能、可靠性、實時性、成本、體積、功耗等指標(biāo)的嚴(yán)格要求的專用計算機系統(tǒng)。簡單說,嵌入式系統(tǒng)就是應(yīng)用軟件與系統(tǒng)硬件的一體化。第17頁/共140頁嵌入式系統(tǒng)的特點系統(tǒng)內(nèi)核?。阂话銘?yīng)用于小型電子裝置。專用性強:軟硬件結(jié)合緊密,針對硬件進行系統(tǒng)的移植。系統(tǒng)精簡:系統(tǒng)軟件和應(yīng)用軟件緊密融合,部分無明顯區(qū)別。實時多任務(wù)的操作系統(tǒng):合理調(diào)度多任務(wù),RTOS開發(fā)平臺。專門的開發(fā)工具和環(huán)境。第18頁/共140頁嵌入式系統(tǒng)的基本構(gòu)成存儲器及外圍電路嵌入式處理器嵌入式操作系統(tǒng)應(yīng)用軟件嵌入式硬件系統(tǒng)嵌入式處理器各種類型存儲器模擬電路及電源接口控制器及接插件嵌入式軟件系統(tǒng)板級支持包(BSP)操作系統(tǒng)(OS/RTOS)設(shè)備驅(qū)動(DeviceDriver)協(xié)議棧(ProtocolStack)應(yīng)用程序(Application)第19頁/共140頁嵌入式處理器的分類嵌入式微處理器(MPU)ARMDragonballMc9328Mx1Xscale270嵌入式微控制器(MCU)8051、P51XA、MC68HC05/11/12/16、68300等嵌入式DSP處理器嵌入式片上系統(tǒng)(SOC-SystemOnChip)嵌入式可編程片上系統(tǒng)(EPSOC)第20頁/共140頁ARM嵌入式微處理器ARM公司成立于1990年,Saxby和12名工程師ARM=AdvancedRISCMachineRISC(精簡指令集)
的典型代表32位處理器技術(shù)嵌入式領(lǐng)域的主力軍ARM處理器有三大特點體積小、功耗低、成本低,性能高ARM/Thumb32/16位雙指令系統(tǒng)全球眾多的合作伙伴第21頁/共140頁CISC與RISCARM——AdvancedRISCMachineCISC——ComplexInstructionSetComputer,復(fù)雜指令集Intel,IA(IntelArchitecture)32架構(gòu)AMDRISC——ReducedInstructionSetComputer,精簡指令集SPARC,Sun與TI開發(fā)PA-RISC,HP開發(fā)Alpha,Compaq開發(fā)PowerPC,IBM與Motorola開發(fā)MIPSARM二者在軟件和硬件上都不兼容第22頁/共140頁RISC體系結(jié)構(gòu)的特點采用固定長度的指令格式,指令規(guī)整、簡單(ARM指令為32位)使用單周期指令,便于流水線操作大量使用寄存器(ARM共有37個寄存器),數(shù)據(jù)處理指令只對寄存器操作,訪問存儲器只使用Load/Store指令。第23頁/共140頁ARMARM的產(chǎn)品ARM處理器內(nèi)核,以知識產(chǎn)權(quán)(IP)形式提供給IC生產(chǎn)廠家硬核:有和特定工藝相連系的物理版圖。軟核:用硬件描述語言或C語言寫成,用于功能仿真ARM開發(fā)工具、SOC開發(fā)工具、評估板等ARM公司不生產(chǎn)芯片第24頁/共140頁ARM贏利模式:專利授權(quán)費+版費目前在通信領(lǐng)域處于統(tǒng)治地位,100%的CDMA手機和85%以上的WCDMA手機IntelInside&InsideIntelARM芯片年出貨量超過幾十億片ARM營收中,手機芯片占2/3第25頁/共140頁市場情況1998年,ARM擁有30項專利技術(shù),芯片出貨量為5100萬塊;而到了2010年,ARM公司擁有的專利技術(shù)就猛增至250項,芯片出貨量更是達到61億塊。2011年底,全球智能手機銷量達到4.13億部,超過個人電腦銷量。在手機領(lǐng)域,ARM市場占有率超過90%在PC及平板電腦領(lǐng)域,2013年ARM處理器估計占有10%的份額第26頁/共140頁ARM嵌入式微處理器第27頁/共140頁嵌入式操作系統(tǒng)簡介使用操作系統(tǒng)的好處和壞處底層硬件抽象化,多任務(wù),在比較復(fù)雜的應(yīng)用情況下優(yōu)勢明顯占用系統(tǒng)資源,簡單應(yīng)用情況下增加開發(fā)難度嵌入式系統(tǒng)有多種操作系統(tǒng)可供選擇VxWorks,PalmOS,Nucleus,pSOS,OS-9,QNX,uCOS-II,SymbianWindowsCE,NT,XP,WindowMobileLinux,uCLinuxAndroid、iOS第28頁/共140頁嵌入式操作系統(tǒng)特點除具有普通操作系統(tǒng)的功能如任務(wù)調(diào)度、中斷處理等外,嵌入式操作系統(tǒng)還有以下特點:編碼體積小,適合有限的存儲空間面向應(yīng)用,可裁減和移植部分要求實時性強,又稱實時多任務(wù)操作系統(tǒng)(RTOS)可靠性高以及較強的網(wǎng)絡(luò)功能第29頁/共140頁嵌入式操作系統(tǒng)結(jié)構(gòu)第30頁/共140頁嵌入式操作系統(tǒng)通常按體系的分類Windows兼容系列WindowsCE/NT/XPLinux類嵌入式Linux,uCLinux,RTLinuxAndroid及其派生的iPhone、oPhone、LePhone等通信領(lǐng)域嵌入式操作系統(tǒng)VxWorks,Nucleus,VRTX,QNS,pSOS其他如Symbian、BlackBerry等第31頁/共140頁嵌入式Linux特點免費和代碼公開支持多種硬件平臺可裁剪使用成本低強大的網(wǎng)絡(luò)功能支持GUI開發(fā)豐富的開發(fā)技術(shù)資源第32頁/共140頁Androidandroid一詞的本義指“機器人”,同時也是Google于2007年11月5日宣布的基于Linux平臺的開源手機操作系統(tǒng)的名稱,該平臺由操作系統(tǒng)、中間件、用戶界面和應(yīng)用軟件組成,號稱是首個為移動終端打造的真正開放和完整的移動軟件。2008年9月22日,美國運營商T-MobileUSA在紐約正式發(fā)布第一款Google手機——T-MobileG1。該款手機為臺灣宏達電代工制造,是世界上第一部使用Android操作系統(tǒng)的手機,支持WCDMA/HSPA網(wǎng)絡(luò),理論下載速率7.2Mbps,并支持Wi-Fi。第33頁/共140頁Android歷史背景GPhone幕后教父安迪·洛賓2005年8月,洛賓將Android出售給Google第34頁/共140頁Android平臺架構(gòu)第35頁/共140頁Android平臺架構(gòu)第36頁/共140頁Android系統(tǒng)云應(yīng)用隨著3G逐漸普及,Android系統(tǒng)云應(yīng)用日益廣泛物聯(lián)網(wǎng)及智能生活
GoogleAndroidC2DM(CloudtoDeviceMessaging)實現(xiàn)云服務(wù)與手機間的互動。手機支付、智能家居、醫(yī)療、衛(wèi)生、運輸?shù)阮I(lǐng)域已實現(xiàn)應(yīng)用?;谖恢玫姆?wù)(LBS)
用無線網(wǎng)或GPS實現(xiàn)定位,導(dǎo)航,查詢等;手持端僅需顯示,復(fù)雜和巨大的數(shù)據(jù)在云端計算移動數(shù)據(jù)
數(shù)據(jù)存儲在云端,手持端僅顯示。數(shù)據(jù)同步、云硬盤等第37頁/共140頁嵌入式系統(tǒng)的應(yīng)用開發(fā)本實驗室條件支持:無OSADS集成開發(fā)環(huán)境有OS嵌入式LinuxWindowsCEAndroid第38頁/共140頁嵌入式產(chǎn)品開發(fā)過程第39頁/共140頁集成開發(fā)環(huán)境ARMADS(ARMDeveloperSuits)它是ARM公司的集成開發(fā)環(huán)境,包括命令行開發(fā)工具、圖形開發(fā)工具、實用工具和支持軟件4部分,可以進行編輯、編譯及調(diào)試C、C++及匯編程序。MetrowerksCodeWarriorforARMADSv1.2ARM匯編及C程序的編輯、編譯AXD調(diào)試第40頁/共140頁嵌入式應(yīng)用開發(fā)的調(diào)試由于嵌入式系統(tǒng)的可用資源有限,嵌入式開發(fā)和調(diào)試工作通常要通過高性能的宿主機完成。 嵌入式應(yīng)用軟件通過宿主機上的交叉編譯器,完成交叉編譯和連接后下載到目標(biāo)機。宿主機:進行嵌入式軟件開發(fā)的主機目標(biāo)機:將要開發(fā)的目標(biāo)板第41頁/共140頁嵌入式開發(fā)的調(diào)試方法大致有以下幾種調(diào)試方法:模擬調(diào)試方式ROMMonitor方式(或Angel方式)ICE仿真JTAG調(diào)試與仿真第42頁/共140頁模擬開發(fā)調(diào)試方式模擬開發(fā)調(diào)試不需開發(fā)板硬件,一臺PC即可純軟件模擬嵌入式處理器的功能和指令。如ARM公司的ARMulator模擬器。它雖然簡單可行,但是缺乏在線調(diào)試和實時仿真功能。第43頁/共140頁ROMMonitor調(diào)試方式(一)ROMMonitor方式(或Angel方式)ROMMonitor(或Angel)是運行在目標(biāo)機的Flash或ROM的一段程序,它主要負責(zé)監(jiān)控目標(biāo)機上被調(diào)試程序的運行情況。通過和宿主機的配合,完成嵌入式系統(tǒng)的調(diào)試。它是目前低廉有效的一種調(diào)試方式。之前課程使用Metrowerks公司的CodeWarrior進行開發(fā)調(diào)試時要用到的Metro-TRK就屬于這類軟件。第44頁/共140頁ROMMonitor調(diào)試方式(二)第45頁/共140頁ICE在線仿真模式在線仿真(InCircuitEmulator)傳統(tǒng)硬件級仿真調(diào)試模式取下目標(biāo)板MPU;在線仿真器可以完全仿真MPU的行為;通過卡座等連接到目標(biāo)板。它支持單步執(zhí)行、斷點、反匯編、源程序級調(diào)試。優(yōu)點:功能非常強大,軟硬件均可做到完全實時在線調(diào)試缺點:適合于簡單的MPU一般滯后MPU幾個月價格昂貴宿主機目標(biāo)板仿真器硬件連接示意圖第46頁/共140頁JTAG仿真調(diào)試方式(一)JTAG(JointTestActionGroup)聯(lián)合測試行動小組,是IEEE的一個標(biāo)準(zhǔn)JTAG初始主要用于芯片內(nèi)部測試,可對具有JTAG接口的芯片的硬件電路進行邊界掃描和故障檢測后用于調(diào)試:在芯片內(nèi)部定義TAP(TestAccessPort),可以訪問寄存器和掛在總線上的設(shè)備第47頁/共140頁JTAG仿真調(diào)試方式(二)JTAG調(diào)試器硬件簡單,只進行并口/usb和JTAG接口的電平轉(zhuǎn)換主要工作由主機軟件完成,如JTAG/usb協(xié)議轉(zhuǎn)換等速度慢,一般10K/s級別JTAG仿真器硬件復(fù)雜,除完成JTAG/usb協(xié)議轉(zhuǎn)換,可能有MPU進行控制提供并口/USB接口等,速度快價格貴第48頁/共140頁JTAG仿真調(diào)試方式(三)JTAG仿真器
ARM處理器為了方便調(diào)試,內(nèi)含EmbededICE宏單元,并留有JTAG調(diào)試接口,支持在線仿真。它無需目標(biāo)存儲器,不占用目標(biāo)系統(tǒng)的端口。使用集成開發(fā)環(huán)境配合JTAG仿真器是目前最常用的一種調(diào)試方式。宿主機目標(biāo)板仿真器硬件連接示意圖第49頁/共140頁JTAG仿真調(diào)試方式(四)第50頁/共140頁ADS開發(fā)環(huán)境ARMADS(ARMDeveloperSuits)它是ARM公司的集成開發(fā)環(huán)境,包括命令行開發(fā)工具、圖形開發(fā)工具、實用工具和支持軟件4部分,可以進行編輯、編譯及調(diào)試C、C++及匯編程序。Multi2000Multi2000是GreenHills軟件公司()開發(fā)的集成開發(fā)環(huán)境。它支持C/C++/Ada95/Fortran編程語言,可運行與Windows和UNIX平臺。第51頁/共140頁嵌入式Linux開發(fā)調(diào)試嵌入式Linux工具鏈交叉編譯器GCCarm-linux-gcc項目管理工具MAKE調(diào)試工具GDBbreak 設(shè)置斷點Run 執(zhí)行程序Step 單步跟蹤進入Next 單步不進入函數(shù)Print,Display 顯示變量值Quit第52頁/共140頁Android開發(fā)環(huán)境Android開發(fā)環(huán)境應(yīng)用層Eclipse+SDKJAVA本地代碼開發(fā)環(huán)境NDK第53頁/共140頁第二部分ARM體系結(jié)構(gòu)、編程模型、匯編語言介紹第54頁/共140頁ARM體系結(jié)構(gòu)的發(fā)展第55頁/共140頁ARM體系結(jié)構(gòu)的發(fā)展2012年11月,ARM公司宣布推出ARMv8架構(gòu)的cortex-A50系列處理器。第56頁/共140頁ARM版本概覽第57頁/共140頁ARM版本性能結(jié)構(gòu)概覽第58頁/共140頁ARM處理器命名規(guī)則ARM7TDMI核命名規(guī)則
7 -體系結(jié)構(gòu)T -Thumb代碼支持(16bit指令)D -Debug硬件調(diào)試模塊支持M -加強的乘法支持I -EmbeddedICELogicS-可綜合的軟核E-DSPJ-Jazeller,允許直接執(zhí)行Java字節(jié)碼第59頁/共140頁ARM處理器系列第60頁/共140頁ARM7系列處理器特點(一)ARM7系列:如ARM7TDMI、ARM720T等采用ARMV4T結(jié)構(gòu)常見芯片主頻為20~133MHzARM720T以下沒有MMU適合對價位和功耗要求較高的產(chǎn)品。3級流水線和馮.諾依曼結(jié)構(gòu)支持WindowCE、LinuxPalmOS等第61頁/共140頁ARM7系列處理器特點(二)指令和數(shù)據(jù)Cache(ARM710,720,740)平均功耗0.6mW/MHz每條指令平均需要1.9時鐘周期處理速度0.9MIPS/MHz小型、快速、低能耗、集成式RISC內(nèi)核廣泛應(yīng)用于手持式計算機、數(shù)據(jù)通信和消費類多媒體第62頁/共140頁ARM9系列處理器特點(一)ARM9系列:MX1采用ARM920T核采用ARMV4T結(jié)構(gòu)常見的芯片主頻為100~233MHz5級流水線和哈佛結(jié)構(gòu)支持32位的高速AMBA總線接口MMU支持實時操作系統(tǒng)第63頁/共140頁ARM9系列處理器特點(二)指令數(shù)據(jù)分離的Cache(ARM920,940,9E)平均功耗0.7mW/MHz132MIPS(120MHz時鐘,3.3V供電)或220MIPS(200MHz時鐘)配寫緩沖低價、低能耗、高性能應(yīng)用于高級引擎管理、保安系統(tǒng)、機頂盒、便攜計算機和高檔打印機第64頁/共140頁ARM9E處理器特點(略)ARM9E系列采用ARMV5TE結(jié)構(gòu)5級流水線和哈佛結(jié)構(gòu)緊耦合的存儲器接口支持32位的高速AMBA總線接口MMU支持DSP指令集,適合高速數(shù)字信號處理支持實時操作系統(tǒng)具有指令Cache和數(shù)據(jù)Cache支持VFP9浮點處理協(xié)處理器第65頁/共140頁ARM10系列處理器特點(一)ARM10系列采用ARMV5TE結(jié)構(gòu)6級流水線和哈佛結(jié)構(gòu)支持64位的高速AHB總線接口MMU支持DSP指令集,適合高速數(shù)字信號處理支持實時操作系統(tǒng)具有指令Cache和數(shù)據(jù)Cache支持VFP9浮點處理協(xié)處理器第66頁/共140頁ARM10系列處理器特點(二)時鐘速度300MHz每條指令平均需要1.2個時鐘周期適用于高性能手持式因特網(wǎng)設(shè)備,數(shù)字式消費類產(chǎn)品第67頁/共140頁ARM11系列處理器特點ARM11采用ARMV6結(jié)構(gòu)8級流水時鐘達到550MHz0.13um工藝支持IEM(IntelligentEnergyManager),節(jié)約高達75%的處理器功耗ARM1156T2-S,ARM1156T2F-S首批含有Thumb-2內(nèi)核技術(shù)第68頁/共140頁一些廠商的ARM處理器(一)SecureCore系列專為安全需要而設(shè)計靈活的保護單元StrongARM融合了Intel技術(shù)的具有ARM體系結(jié)構(gòu)的32位處理器采用ARMV4T結(jié)構(gòu)5級流水Intel以SA110命名包括SA1100PDA系統(tǒng)芯片和SA1500多媒體處理器芯片第69頁/共140頁一些廠商ARM處理器(二)XscaleIntel新一代的性能全、性價比高、低功耗的微處理器
ARMV5TE7級超流水線32k數(shù)據(jù)緩存、32k指令緩存第70頁/共140頁ARMv7Cortex分為A,R,M三個系列A系列(適用復(fù)雜軟件系統(tǒng))使用MMU,支持虛擬內(nèi)存。A5、A7、A8、A9、A15全系列產(chǎn)品的支持。R系列(實時處理器)實時處理器,具有嚴(yán)格的實時響應(yīng)限制。使用MPU(memoryprotectionunit),只能運行在內(nèi)存保護模式。M系列(成本和功耗出色)不支持原ARM指令,使用Thumb-2指令集。加入NVIC(NestedVectoredInterruptController),提供更快的中斷處理、還有負責(zé)CPU在深層睡眠時的中斷處理WIC(Wake-upInterruptController)。第71頁/共140頁Cortex-A系列核心第72頁/共140頁ARMv82012年11月,ARM宣布推出ARMv8架構(gòu)ARMCortex-A50處理器系列產(chǎn)品。該系列率先推出的是Cortex-A53與Cortex-A57處理器以及最新節(jié)能64位處理技術(shù)與現(xiàn)有32位處理技術(shù)的擴展升級。ARMv8是一個真正意義上的64位,同時這個64位的架構(gòu)當(dāng)中加入了或者說提供了32位的支持。
Cortex-A57是ARM最先進、性能最高的應(yīng)用處理器,而Cortex-A53不僅是功耗效率最高的ARM應(yīng)用處理器,也是全球最小的64位處理器。
第73頁/共140頁ARMv8Cortex-A57,是為智能手機和超級手機功耗級別提供最新的性能,超級手機指的是三星的Glaxay3或者是蘋果的iPhone5手機這級別的手機。Cortex-A53在性能方面大概和Cortex-A9是相當(dāng)?shù)?,但是它的尺寸小得多。?2納米的制程上能減少40%的尺寸,如果到了20納米的話可能只有目前主流CPU1/4的尺寸。所以說A53可能對于低功耗的這樣一個智能手機是一個很好的選擇。上述兩款A(yù)RMv8產(chǎn)品預(yù)計2014年上市。
第74頁/共140頁ARMv8第75頁/共140頁ARMv7v8性能功耗對比第76頁/共140頁
ARM處理器架構(gòu)簡述第77頁/共140頁計算機體系結(jié)構(gòu)一.馮·諾依曼結(jié)構(gòu)第78頁/共140頁計算機體系結(jié)構(gòu)馮·諾依曼結(jié)構(gòu)特點:1、指令和數(shù)據(jù)存儲在相同的內(nèi)存空間,但存儲地址不同。2、處理器利用相同的總線處理內(nèi)存中的指令和數(shù)據(jù),指令和數(shù)據(jù)具有相同的數(shù)據(jù)寬度,指令與數(shù)據(jù)無法同時存取。一般用途的微處理器大多采用此結(jié)構(gòu),如x86微處理器。
ARM7嵌入式微處理器亦采用此結(jié)構(gòu)第79頁/共140頁計算機體系結(jié)構(gòu)二.哈佛體系結(jié)構(gòu)
第80頁/共140頁計算機體系結(jié)構(gòu)哈佛結(jié)構(gòu)的特點:1、指令存儲和數(shù)據(jù)存儲分開,指令和數(shù)據(jù)分別位于不同的存儲空間。2、指令與數(shù)據(jù)的存取采用不同總線,取指令和存取數(shù)據(jù)可同時進行,微處理器具有較高的執(zhí)行效率。數(shù)字信號處理器DSP通常采用哈佛結(jié)構(gòu),ARM9嵌入式微處理器亦采用此結(jié)構(gòu)。第81頁/共140頁ARM7處理器架構(gòu)(三級流水)ARM處理器包括:32位ALU31個32位通用寄存器及6個狀態(tài)寄存器32x8位乘法器32x32位桶形移位寄存器指令譯碼及控制邏輯數(shù)據(jù)/地址寄存器組成
第82頁/共140頁ARM處理器流程示意第83頁/共140頁ARM的流水線結(jié)構(gòu)(一)流水線結(jié)構(gòu)一條指令典型執(zhí)行過程可能包括:取指:從存儲器中取出指令(fetch);譯碼(dec);取操作數(shù),從寄存器組中讀操作數(shù)(reg);執(zhí)行運算(ALU);存儲器訪問(mem);結(jié)果寫回寄存器(res);第84頁/共140頁ARM的流水線結(jié)構(gòu)(二)指令流水線第85頁/共140頁ARM7的三級流水ARM7采用3級流水線,即分為取指、譯碼和執(zhí)行。第86頁/共140頁ARM9的五級流水ARM95級流水線,即分為取指、譯碼、執(zhí)行、數(shù)據(jù)緩存和寫回。3級流水線阻塞主要發(fā)生在存儲器訪問和數(shù)據(jù)通路的占用上,ARM9則采用5級流水線,把存儲器存取和數(shù)據(jù)存取分開,且增加I-Cache和D-Cache,同時增加了數(shù)據(jù)寫回的專用通道第87頁/共140頁ARM的I/O結(jié)構(gòu)形式ARM采用存儲器映像I/O的方式,即把I/O端口當(dāng)作特殊的存儲器地址來訪問。一般有若干個寄存器:發(fā)送數(shù)據(jù)寄存器(只寫)接收數(shù)據(jù)寄存器(只讀)控制寄存器狀態(tài)寄存器(只讀)中斷控制寄存器中斷IRQ和快速中斷FIQ對于FIQ的請求響應(yīng)時長最多28個周期第88頁/共140頁ARMJTAG調(diào)試接口(一)JTAG測試標(biāo)準(zhǔn)是由聯(lián)合測試行動小組(JointTestActionGroup)提出的一種國際標(biāo)準(zhǔn),主要用于芯片內(nèi)部測試及對系統(tǒng)進行仿真、調(diào)試第89頁/共140頁ARMJTAG調(diào)試接口(二)TAP控制器(測試訪問端口)指令寄存器器件ID寄存器旁路寄存器邊界掃描寄存器
第90頁/共140頁ARMJTAG調(diào)試接口(三)Embedded-ICE模塊JTAG調(diào)試接口基礎(chǔ)上的擴展;包含2個觀察點寄存器以及控制與狀態(tài)寄存器;能夠中止ARM處理器的運行,完成設(shè)置斷點、觀測點等功能;包含調(diào)試通信端口,使得目標(biāo)系統(tǒng)的軟件可以與主機通信;其寄存器需要通過JTAG測試端口來編程。第91頁/共140頁ARM編程模型第92頁/共140頁主要內(nèi)容ARM處理器編程模型寄存器組處理器工作模式異常處理第93頁/共140頁ARM處理器支持的運行模式ARM處理器共支持7種運行模式,分別為:用戶(usr):ARM處理器正常的程序執(zhí)行狀態(tài);系統(tǒng)模式(sys):運行具有特權(quán)的操作系統(tǒng)任務(wù);
快速中斷(fiq):用于高速數(shù)據(jù)傳輸或通道處理;外部中斷(irq):用于通用的中斷處理;管理模式(svc):操作系統(tǒng)使用的保護模式;中止(abt):當(dāng)數(shù)據(jù)或指令訪問中止時進入該模式,可用于虛擬存儲及存儲保護;未定義(und):當(dāng)未定義指令執(zhí)行時進入該模式,可用于硬件協(xié)處理器的軟件仿真。第94頁/共140頁ARM處理器運行模式除用戶模式之外的其余6種稱為非用戶模式,或特權(quán)模式(PrivilegedModes);而特權(quán)模式中,除系統(tǒng)模式之外的其余5種又稱為異常模式(ExceptionModes)。用戶程序運行在用戶模式下,不能訪問一些受操作系統(tǒng)保護的系統(tǒng)資源。應(yīng)用程序也不能直接進行處理器模式的切換。當(dāng)需要進行處理器模式切換時,應(yīng)用程序可以產(chǎn)生異常處理,在異常處理過程中進行處理器處理器模式的切換。這種體系結(jié)構(gòu)可以使系統(tǒng)控制整個系統(tǒng)的資源。
第95頁/共140頁系統(tǒng)模式系統(tǒng)模式并不是通過異常過程進入的,它和用戶模式具有完全一樣的寄存器。但是系統(tǒng)模式屬于特權(quán)模式,可以訪問所有的系統(tǒng)資源,也可以直接進行處理器模式切換。它主要供操作系統(tǒng)任務(wù)使用。通常操作系統(tǒng)的任務(wù)需要訪問所有的系統(tǒng)資源,同時該任務(wù)仍然使用用戶模式的寄存組,而不是使用異常模式下相應(yīng)的寄存器組,這樣可以保證當(dāng)異常中斷發(fā)生時可以正常保存當(dāng)前工作狀態(tài),進行模式切換。第96頁/共140頁ARM處理器運行模式當(dāng)應(yīng)用程序發(fā)生異常中斷時,處理器進入相應(yīng)的異常模式。在每一種異常模式中都有一組寄存器,供相應(yīng)的異常處理程序使用,這樣就可以保證在進入異常模式時,用戶模式下的寄存器(保存了程序運行狀態(tài))不被破壞。第97頁/共140頁ARM的寄存器組織ARM處理器共有37個32位寄存器,其中31個為通用寄存器,6個狀態(tài)寄存器。ARM狀態(tài)下的寄存器組織未分組寄存器R0~R7分組寄存器R8~R14程序計數(shù)器R15(PC)當(dāng)前程序狀態(tài)寄存器(CPSR)備份的程序狀態(tài)寄存器(SPSR)第98頁/共140頁第99頁/共140頁Thumb狀態(tài)下的寄存器組織Thumb狀態(tài)下的寄存器組織通用寄存器R0~R7程序計數(shù)器PC堆棧指針SP(R13)連接寄存器LRCPSP和SPSR第100頁/共140頁第101頁/共140頁R13(SP-堆棧指針)每種異常模式都有備份寄存器R13_usr,R13_svc,R13_abt,R13_und,R13_irq,R13_fiq用作堆棧指針每種異常模式有自己專用的棧地址R13用于被中斷程序的現(xiàn)場保護,即保存需要保護的寄存器值第102頁/共140頁R14(LR-連接寄存器)每種異常模式都有備份寄存器R14_usr,R14_svc,R14_abt,R14_und,R14_irq,R14_fiq作用存放當(dāng)前子程序的返回地址異常中斷發(fā)生時,該異常模式R14_xxx被設(shè)置為將要返回的地址第103頁/共140頁R15(PC-程序計數(shù)器)指令地址PC=當(dāng)前執(zhí)行指令地址+8地址值字對齊及半字對齊例MOVPC,PC ;跳轉(zhuǎn)到下面第二條指令第104頁/共140頁狀態(tài)寄存器狀態(tài)寄存器:當(dāng)前程序狀態(tài)寄存器CPSR,可以在任何工作模式下被訪問;程序狀態(tài)備份寄存器SPSR,只有在異常模式下,才能被訪問;第105頁/共140頁CPSR-當(dāng)前程序狀態(tài)寄存器(一)當(dāng)前程序狀態(tài)寄存器CPSR
N:補碼形式的有符號數(shù)運算時,1為負,0為正;Z:1表示結(jié)果為零;C:加減法的進位或借位,以及非加減法的最后移位;V:1表示補碼形式的有符號數(shù)加減運算時符號位溢出;第106頁/共140頁CPSR-當(dāng)前程序狀態(tài)寄存器(二)Q:v5以上版本才有,描述增強DSP運算指令是否發(fā)生溢出;I、F:中斷禁止位,1表示中斷禁止;T:指示處理器處于ARM或Thumb工作狀態(tài);第107頁/共140頁CPSR-當(dāng)前程序狀態(tài)寄存器(三)M[4:0]:表示處理器的運行模式0b10000——User0b10001——FIQ0b10010——IRQ0b10011——Supervisor0b10111——Abort0b11011——Undefined0b11111——System第108頁/共140頁ARM控制程序執(zhí)行的方式正常執(zhí)行,每執(zhí)行一條指令A(yù)RM指令PC+4Thumb指令PC+2跳轉(zhuǎn):B、BL、BX、BLX異常中斷執(zhí)行完當(dāng)前指令,跳轉(zhuǎn)到異常中斷處理程序執(zhí)行完返回到發(fā)生中斷指令的下一條處要保護和恢復(fù)被中斷程序的執(zhí)行現(xiàn)場第109頁/共140頁ARM處理器的異常中斷(一)異常是指正常的程序執(zhí)行流程發(fā)生暫時的停止或改變,例如在復(fù)位、有中斷請求及指令預(yù)取中止時;
ARM處理器支持7種類型的異常。復(fù)位(RESET):當(dāng)處理器的復(fù)位電平有效時,產(chǎn)生復(fù)位異常,程序跳轉(zhuǎn)到復(fù)位異常處理程序處執(zhí)行。未定義指令(UDEF):當(dāng)ARM處理器或協(xié)處理器遇到不能處理的指令時,產(chǎn)生未定義指令異常。可使用該異常機制進行軟件仿真。軟件中斷(SWI):該異常由執(zhí)行SWI指令產(chǎn)生,可用于用戶模式下的程序調(diào)用特權(quán)操作指令。使用該異常機制可以實現(xiàn)系統(tǒng)功能調(diào)用。第110頁/共140頁ARM處理器的異常中斷(二)指令預(yù)取中止(PABT):若處理器預(yù)取指令的地址不存在,或該地址不允許當(dāng)前指令訪問,存儲器會向處理器發(fā)出中止信號,但當(dāng)預(yù)取的指令被執(zhí)行時,才會產(chǎn)生指令預(yù)取中止異常。數(shù)據(jù)中止(DABT):若處理器數(shù)據(jù)訪問指令的地址不存在,或該地址不允許當(dāng)前指令訪問時,產(chǎn)生數(shù)據(jù)中止異常。IRQ(外部中斷請求):當(dāng)處理器的外部中斷請求引腳有效,且CPSR中的I位為0時,產(chǎn)生IRQ異常。系統(tǒng)的外設(shè)可通過該異常請求中斷服務(wù)。FIQ(快速中斷請求):當(dāng)處理器的快速中斷請求引腳有效,且CPSR中的F位為0時,產(chǎn)生FIQ異常。第111頁/共140頁ARM處理器的異常中斷(三)異常類型模式正常向量地址高向量地址復(fù)位管理0x000000000xFFFF0000未定義指令未定義0x000000040xFFFF0004軟件中斷管理0x000000080xFFFF0008指令預(yù)取中止中止0x0000000C0xFFFF000C數(shù)據(jù)中止中止0x000000100xFFFF0010IRQIRQ0x000000180xFFFF0018FIQFIQ0x0000001C0xFFFF001C第112頁/共140頁ARM處理器的異常中斷(四)異常優(yōu)先級異常類型1(最高)復(fù)位2數(shù)據(jù)中止3FIQ4IRQ5預(yù)取中止6未定義指令,SWI第113頁/共140頁ARM處理器對異常的處理(一)對異常的響應(yīng):將下一條指令的地址存入相應(yīng)異常類型的連接寄存器LR_mode;將CPSR復(fù)制到相應(yīng)異常類型的SPSR_mode中;設(shè)置CPSR的M[4:0],強制改變到相應(yīng)的運行模式;禁止正常中斷,如果異常類型為快速中斷或復(fù)位,同時禁止快中斷;強制PC從相關(guān)的異常向量地址取下一條指令執(zhí)行,從而跳轉(zhuǎn)到相應(yīng)的異常處理程序處。第114頁/共140頁ARM處理器對異常的處理(二)異常返回從堆棧中恢復(fù)用戶寄存器將SPSR_mode復(fù)制回CPSR中復(fù)制LR_mode->PC第115頁/共140頁未定義異常的操作過程進入異常:R14_und=產(chǎn)生異常的下一條指令地址SPSR_und=CPSRCPSR[4:0]=0b11011/*進入未定義運行模式*/CPSR[5]=0/*進入ARM工作狀態(tài)*/CPSR[7]=1/*禁止正常中斷*/如果設(shè)置了高向量模式,則PC=0xFFFF0004 否則 PC=0x00000004退出異常:MOVSPCR14恢復(fù)PC(從R14_und)和CPSR(從SPSR_und),并返回到該未定義指令的下一條指令處第116頁/共140頁ARM推薦的異常退出指令異常類型R14(ARM)R14(Thumb)返回指令BLPC+4PC+2MOVPC,R14SWIPC+4PC+2MOVSPC,R14UDEFPC+4PC+2MOVSPC,R14FIQPC+4PC+4SUBSPC,R14,#4IRQPC+4PC+4SUBSPC,R14,#4PABTPC+4PC+4SUBSPC,R14,#4DABTPC+8PC+8SUBSPC,R14,#8RESET---第117頁/共140頁例:SWI中斷的R14例如: 0x8000
mov...... 0x8004
add...... 0x8008
SWI...... 0x800C
mov...... 0x8010
add......當(dāng)程序執(zhí)行SWI異常時,PC指向0x8010,在跳轉(zhuǎn)到異常向量的之前,ARM會把R14調(diào)整到0x800C第118頁/共140頁ARM數(shù)據(jù)類型字(Word):在ARM體系結(jié)構(gòu)中,字的長度為32位,而在8位/16位處理器體系結(jié)構(gòu)中,字的長度一般為16位,請注意區(qū)分。半字(Half-Word):在ARM體系結(jié)構(gòu)中,半字的長度為16位,與8位/16位處理器體系結(jié)構(gòu)中字的長度一致。字節(jié)(Byte):在ARM體系結(jié)構(gòu)和8位/16位處理器體系結(jié)構(gòu)中,字節(jié)的長度均為8位。第119頁/共140頁存儲器組織以0x87654321為例小端方式對應(yīng)于地址[A+3]=0x87,[A+2]=0x65,[A+1]=0x43,[A]=0x21大端方式對應(yīng)于地址[A]=0x87,[A+1]=0x65,[A+2]=0x43,[A+3]=0x21Byte[A+3]Byte[A+2]Byte[A+1]Byte[A]Bit31bit0第120頁/共140頁字對齊與半字對齊ARM狀態(tài),字地址的低兩位bits[1:0]必須為0b00,半字地址的最低位bit[0]為0b0Thumb狀態(tài),字地址最地位bit[0]必須為0b0如果寫入PC的指令地址非對齊ARMV3及以下,忽略R15的bits[1:0]ARMV4及以上,執(zhí)行結(jié)果不可預(yù)知Thumb,忽略R15的bit[0]第121頁/共140頁ARM處理器工作狀態(tài)從編程的角度看,ARM處理器有2種工作狀態(tài)并可自由切換:ARM狀態(tài):處理器執(zhí)行32位的、字對準(zhǔn)ARM指令;Thumb狀態(tài):處理器執(zhí)行16位、半字對準(zhǔn)的Thumb指令。第122頁/共140頁ARM/Thumb狀態(tài)的切換ARM處理器總是從ARM狀態(tài)開始執(zhí)行可用指令實現(xiàn)狀態(tài)切換BLXLDR、LDM及POP當(dāng)處理器進入異常中斷處理程序時,自動切換到ARM狀態(tài)如果從Thumb狀態(tài)進入異常,處理完成退出后仍自動進入Thumb狀態(tài)第123頁/共140頁立即數(shù)一條ARM指令32位,可能含12位立即數(shù)immediate=immed_8循環(huán)右移(2*rotate_imm)合法:0xff,x0104,0xff0,0x3f0非法:0x101,0xff1,0x102(非偶數(shù)位)Qu:0x1fc第124頁/共140頁ARM指令系統(tǒng)跳轉(zhuǎn)B,BL,BLX移位ASR,LSL,LSR,ROR,ROX存儲加載LDR,STR軟中斷SWI第125頁/共140頁指令名指令含義操作ADD相加Rd=Rn+op2SUB相減Rd=Rn-op2RSB反向相減Rd=op2-RnADC帶進位加Rd=Rn+op2+CSBC帶借位減Rd=Rn-op2+C-1RSC反向帶借位減Rd=op2-Rn+C-1AND位與Rd=RnANDop2ORR位或Rd=RnORop2EOR位異或Rd=RnEORop2BIC位清零Rd=RnANDNOTop2MOV傳送Rd=op2MVN傳送非Rd=NOTop2CMP比較Rn-op2CMN負向比較Rd=op2-RnTST測試RnANDop2TEQ測試相等RnEORop2第126頁/共140頁指令名指令含義操作MUL乘法Rd=Rm*RsMLA乘加Rd=Rm*Rs+RnUMULL無符號數(shù)乘法RdH:RdL=Rm*RsUMLAL無符號數(shù)乘加RdH:RdL+=Rm*RsSMULL有符號數(shù)乘RdH:RdL=Rm*RsSMLAL有符號數(shù)乘加RdH:RdL+=Rm*Rs第127頁/共140頁多寄存器加載/存儲指令(一)該指令完成多個通用寄存器與存儲單元之間的數(shù)據(jù)傳送。LDM|STM{cond}尋址方式Rn{!},通用寄存器組{^}符號的含義:尋址方式為:IA、IB、DA、DB、FD、ED、FA、EA;Rn:基址寄存器,不允許為R15(PC);?。褐噶顖?zhí)行后,刷新基址寄存器Rn“^”:當(dāng)寄存器列表包含PC且為LDM指令時,同時將SPSR拷貝到CPSR,用于異常返回;當(dāng)寄存器列表不包含PC,指示指令中所有的寄存器為用戶模式下的寄存器第128頁/共140頁LDM/STM操作語法:<LDM|STM>{<cond>}<addressing_mode>Rb{!},<寄存器list>四
種尋址操作:
LDMIA/STMIA IncrementAfter(先操作,后增加)
LDMIB/STMIB IncrementBefore(先增加,后操作)
LDMDA/STMDA DecrementAfter(先操作,后遞減)
LDMDB/STMDB DecrementBefore(先遞減,后操作)IAr1地址增加r4r0r1r4r0r1r4r0r1r4r0r10IBDADBLDMxxr10,{r0,r1,r4}STMxxr10,{r0,r1,r4}基址寄存器(Rb)第129頁/共140頁存儲器塊拷貝可選項“!
”將導(dǎo)致LDM/STM
指令去自動更新基址寄存器后綴為IA,IB時,加上4乘以用于傳送的寄存器的數(shù)目的值后綴為DA,DB時,減去4乘以用于傳送的寄存器的數(shù)目的值示例:;r12指向源數(shù)據(jù)起始地址;r14指向源數(shù)據(jù)尾地址;r13指向目的數(shù)據(jù)起始地址loop LDMIA r12!,{r0-r11} ;裝載48bytes STMIA r13!,{r0-r11} ;存儲them CMP r12,
溫馨提示
- 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)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年新能源汽車動力電池回收體系構(gòu)建行業(yè)報告
- 2025年建筑行業(yè)BIM技術(shù)應(yīng)用與綠色建筑報告
- 2026年建筑智能溫控系統(tǒng)報告及未來五至十年智能家居報告
- 2026年風(fēng)能發(fā)電儲能技術(shù)報告及未來五至十年并網(wǎng)規(guī)劃報告
- 2025年光伏組件功率十年提升趨勢報告
- 工業(yè)CT檢測五年應(yīng)用:2025年生物醫(yī)用植入物材料檢測行業(yè)報告
- 2026年禁毒知識競賽試卷及答案(四)
- 2026年黨建知識競賽考試卷及答案(三)
- 2025年綠色環(huán)保鋁合金門窗五金件五年趨勢報告
- AI助力下的家校共育均衡推進:初中生家長培訓(xùn)模式研究教學(xué)研究課題報告
- 國開2023年企業(yè)法務(wù)形考任務(wù)1-4答案
- 感應(yīng)加熱器安全操作規(guī)程
- 商業(yè)地產(chǎn)行業(yè)商業(yè)地產(chǎn)投資機會
- 兩輪車控制器行業(yè)報告
- JSA臨時用電作業(yè)安全分析表
- 紅外和拉曼光譜
- 2015-2022年北京衛(wèi)生職業(yè)學(xué)院高職單招語文/數(shù)學(xué)/英語筆試參考題庫含答案解析
- 賽膚潤常見臨床應(yīng)用2010年
- 提高鋁模板施工質(zhì)量合格率
- 傳感器與檢測技術(shù)習(xí)題集
- MT/T 106-1996順槽用刮板轉(zhuǎn)載機通用技術(shù)條件
評論
0/150
提交評論