嵌入式系統(tǒng)原理及設計概述_第1頁
嵌入式系統(tǒng)原理及設計概述_第2頁
嵌入式系統(tǒng)原理及設計概述_第3頁
嵌入式系統(tǒng)原理及設計概述_第4頁
嵌入式系統(tǒng)原理及設計概述_第5頁
已閱讀5頁,還剩70頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

嵌入式系統(tǒng)原理及設計陳子為嵌入式系統(tǒng)原理及設計概述第1頁課程安排課時:32課時(上課)+16課時(試驗)形式:

專題講座+討論+試驗+項目設計內(nèi)容安排第1講嵌入式系統(tǒng)概述與ARM7體系結(jié)構(gòu)

第2講指令系統(tǒng)與程序編制

第3講存放器映射與重映射第4講系統(tǒng)控制與開啟代碼第5講異常與中止第6講定時器、PWM與實時時鐘

第7講UART與SPI第8講其它外設模塊

嵌入式系統(tǒng)原理及設計概述第2頁工程項目:聲音播放器數(shù)字時鐘要按照完整工程項目要求來做。要提交相關技術(shù)文檔,而且文檔要規(guī)范作業(yè)與試驗匯報:

不寫作業(yè)寫博客嵌入式系統(tǒng)原理及設計概述第3頁教材與參考書目教材《ARM嵌入式系統(tǒng)基礎教程(第2版)》周立功等編著,北京航空航天大學出版社,《ARM嵌入式系統(tǒng)試驗教程(一)》周立功等編著,北京航空航天大學出版社,參考書目《深入淺出ARM7——LPC2200》周立功等編著,廣州致遠電子有限企業(yè),《ARM體系結(jié)構(gòu)及其嵌入式處理器》任哲等編著,北京航空航天大學出版社,,1《ARM程序分析與設計》王宇行編著,北京航空航天大學出版社,,3嵌入式系統(tǒng)原理及設計概述第4頁1LECTURE嵌入式系統(tǒng)概述與ARM7體系結(jié)構(gòu)陳子為嵌入式系統(tǒng)原理及設計概述第5頁現(xiàn)實中嵌入式系統(tǒng)嵌入式系統(tǒng)原理及設計概述第6頁嵌入式系統(tǒng)無處不在嵌入式系統(tǒng)原理及設計概述第7頁討論什么是嵌入式系統(tǒng)、自己身邊嵌入式系統(tǒng)、與單片機、DSP聯(lián)絡話題范圍不限定,談談自己對嵌入式系統(tǒng)了解嵌入式系統(tǒng)原理及設計概述第8頁1、什么是嵌入式系統(tǒng):

來自IEEE定義 “Embeddedsystemisdevicesusedtocontrol,monitor,orassisttheoperationofequipment,machineryorplants”. ——IEEE上述定義主要從應用上加以定義。

能夠看出:嵌入式系統(tǒng)是軟硬件綜合體,還能夠涵蓋機械等從屬裝置。嵌入式系統(tǒng)原理及設計概述第9頁什么是嵌入式系統(tǒng):

廣義上嵌入式系統(tǒng)是一個應用系統(tǒng),它最少包含一個可編程計算機(通常是某種形式微控制器、微處理器或數(shù)字信號處理芯片(DSP))且使用該系統(tǒng)人普通并未意識到該系統(tǒng)是基于計算機。嵌入式系統(tǒng)原理及設計概述第10頁什么是嵌入式系統(tǒng):

國內(nèi)經(jīng)典定義嵌入式系統(tǒng)是

“以應用為中心,以計算機技術(shù)為基礎,而且軟硬件可裁剪,適合用于應用系統(tǒng)對功效、可靠性、成本、體積、功耗有嚴格要求專用計算機系統(tǒng)”普通由嵌入式微處理器、外圍硬件設備、嵌入式操作系統(tǒng)以及用戶應用程序等部分組成,用于實現(xiàn)對其它設備控制、監(jiān)視或管理等功效。嵌入式系統(tǒng)原理及設計概述第11頁嵌入式系統(tǒng)特點嵌入式系統(tǒng)與通用型計算機系統(tǒng)相比,含有以下特點:專用性強。可淘汰性。實時性與可靠性好。功耗低。嵌入式系統(tǒng)原理及設計概述第12頁通用計算機與嵌入式系統(tǒng)對比特征通用計算機嵌入式系統(tǒng)形式和類型看得見計算機。按其體系結(jié)構(gòu)、運算速度和結(jié)構(gòu)規(guī)模等原因分為大、中、小型機和微機??床灰娪嬎銠C。形式多樣,應用領域廣泛,按應用來分。組成通用處理器、標準總線和外設。軟件和硬件相對獨立。面向應用嵌入式微處理器,總線和外部接口多集成在處理器內(nèi)部。軟件與硬件是緊密集成在一起。開發(fā)方式開發(fā)平臺和運行平臺都是通用計算機采取交叉開發(fā)方式,開發(fā)平臺普通是通用計算機,運行平臺是嵌入式系統(tǒng)。二次開發(fā)性應用程序可重新編制普通不能再編程嵌入式系統(tǒng)原理及設計概述第13頁嵌入式處理器當前來講,嵌入式處理器能夠分成這么一些類型1、嵌入式微處理器(MicroprocessorUnit,MPU)

2、嵌入式微控制器(MicrocontrollerUnit,MCU)3、嵌入式DSP(DigitalSignalProcessor)處理器4、嵌入式片上系統(tǒng)(SystemonChip,SoC)嵌入式系統(tǒng)原理及設計概述第14頁處理器外設存放器I/O“Systemonboard”“Systemonchip”USB以太網(wǎng)memory嵌入式系統(tǒng)原理及設計概述第15頁ExternalMemoryCPUAddressDataCacheBusInterfaceWriteBufferMMU/MPURRWWWW(R/W)

外設如USB、LCD控制器等擴展芯片內(nèi)核(core)處理器存放器子系統(tǒng)SoC片內(nèi)外設系統(tǒng)片外設備處理器(Processor)芯片(SoC)系統(tǒng)(System)嵌入式系統(tǒng)原理及設計概述第16頁微處理器是整個系統(tǒng)關鍵,通常由3大部分組成:控制單元、算術(shù)邏輯單元和存放器。

算術(shù)邏輯單元存放器控制單元微處理器存放器輸入輸出嵌入式系統(tǒng)原理及設計概述第17頁嵌入式系統(tǒng)組成嵌入式系統(tǒng)普通由嵌入式硬件和軟件組成硬件以微處理器為關鍵集成存放器和系統(tǒng)專用輸入/輸出設備軟件包含:初始化代碼及驅(qū)動、嵌入式操作系統(tǒng)和應用程序等,這些軟件有機地結(jié)合在一起,形成系統(tǒng)特定一體化軟件。嵌入式系統(tǒng)原理及設計概述第18頁手機大約組成嵌入式系統(tǒng)原理及設計概述第19頁微波爐CPUBUSROMRAM輸入接口輸出接口輸入鍵開門馬達磁電管風扇燈具嵌入式處理器喇叭嵌入式系統(tǒng)原理及設計概述第20頁嵌入式系統(tǒng)應用領域MicroprocessorCCDpreprocessorPixelcoprocessorA2DD2AJPEGcodecDMAcontrollerMemorycontrollerISAbusinterfaceUARTLCDctrlDisplayctrlMultiplier/AccumDigitalcamerachiplensCCDADigitalCamera嵌入式系統(tǒng)原理及設計概述第21頁嵌入式系統(tǒng)硬件部分嵌入式系統(tǒng)軟件部分如人大腦,決定了硬件操作模式。經(jīng)過良好操作系統(tǒng)以及應用程序,把硬件功效發(fā)揮到極至。如人手、腳、神經(jīng)等部位,決定了嵌入式系統(tǒng)先天功效。如運算能力和I/O接口等。嵌入式系統(tǒng)原理及設計概述第22頁2ARM介紹ARM企業(yè)介紹ARM是AdvancedRISCMachines縮寫,它是一家微處理器行業(yè)著名企業(yè),該企業(yè)設計了大量高性能、廉價、耗能低RISC(精簡指令集)處理器。企業(yè)特點是只設計芯片,而不生產(chǎn)。它將技術(shù)授權(quán)給世界上許多著名半導體、軟件和OEM廠商,并提供服務。嵌入式系統(tǒng)原理及設計概述第23頁ARM企業(yè)介紹將技術(shù)授權(quán)給其它芯片廠商形成各具特色ARM芯片...嵌入式系統(tǒng)原理及設計概述第24頁IP商半導體芯片(SOC)商嵌入式系統(tǒng)開發(fā)者分工邊界個性化強度嵌入式系統(tǒng)組成層次圖嵌入式系統(tǒng)原理及設計概述第25頁ARM處理器應用當前主要應用于消費類電子領域;到當前為止,基于ARM技術(shù)微處理器應用約占據(jù)了32位嵌入式微處理器75%以上市場份額全球80%GSM/3G手機、99%CDMA手機以及絕大多數(shù)PDA產(chǎn)品均采取ARM體系嵌入式處理器,“掌上計算”相關全部領域皆為其所主宰。ARM技術(shù)正在逐步滲透到我們生活各個方面。嵌入式系統(tǒng)原理及設計概述第26頁ARM處理器核介紹ARM企業(yè)開發(fā)了很多系列ARM處理器核,當前最新系列已經(jīng)是ARMcortex了,而ARM6核以及更早系列已經(jīng)很罕見了。ARM7ARM9ARM9EARM10ARM11CortexV4V4TV5TEV5TEV6V7ARM體系結(jié)構(gòu)版本ARM體系結(jié)構(gòu)從最初開發(fā)到現(xiàn)在有了很大改進,并仍在完善和發(fā)展。為了清楚表示每個ARM應用實例所使用指令集,ARM企業(yè)定義了7種主要ARM指令集體系結(jié)構(gòu)版本,以版本號V1~V7表示。嵌入式系統(tǒng)原理及設計概述第27頁v4v5TESA110v4TARM720TARM7TDMI-SARM920TARM940TARM922TARM966E-SARM946E-SARM1020Ev5TEJ/Jazellev6/JazelleARM7EJ-SARM926EJ-SARM1026EJ-SARM11Micro-ArchitectureRoadmapofARMV4/V5/V6嵌入式系統(tǒng)原理及設計概述第28頁項目ARM7ARM9ARM10ARM11流水線3568經(jīng)典頻率(MHz)80150260335功耗(mW/MHz)0.060.19(+cache)0.5(+cache)0.4(+cache)性能MIPS**/MHz0.971.11.31.2架構(gòu)馮

諾伊曼哈佛哈佛哈佛嵌入式系統(tǒng)原理及設計概述第29頁ARM系列微處理器核特點ARM7ARM7TDMI:整數(shù)處理核ARM7TDMI處理器可綜合版本;ARM720T:帶MMU處理器關鍵,支持操作系統(tǒng);ARM7EJ-S:帶有DSP和JazelleTM技術(shù),能夠?qū)崿F(xiàn)Java加速功效馮諾伊曼體系結(jié)構(gòu);ARMTDMI是當前應用最廣微處理器核ARM720T帶有MMU和8KB指令數(shù)據(jù)混合cache;ARM7EJ-執(zhí)行ARMv5TEJ指令,5級流水線,提供Java加速指令,沒有存放器保護。ARM9ARM920T:帶有獨立16KB數(shù)據(jù)和指令Cache;ARM922T:帶有獨立8位KB數(shù)據(jù)和指令Cache;ARM940T–包含更小數(shù)據(jù)和指令Cache和一個MPU基于ARM9TDMI,帶16位Thumb指令集,增強代碼密度最多到35%;在0.13μm工藝下最高性能可抵達300MIPS(Dhrystone2.1測試標準);集成了數(shù)據(jù)和指令Chche;32位AMBA總線接口MMU支持;可在0.18μm、0.15μm和0.13μm工藝硅芯片上實現(xiàn)。嵌入式系統(tǒng)原理及設計概述第30頁ARM9EARM926EJ-S:Jazelle技術(shù),有MMU,可配置數(shù)據(jù)和指令Cache,TCM接口;ARM946E-S:可配置數(shù)據(jù)和指令Cache及TCM;ARM966E-S:針對要求高性能和低功耗可預測指令執(zhí)行時間硬實時應用設計ARM968E-S:最小、功耗最小

ARM9E系列處理器,針對嵌入式實時應用設計;ARM9E是針對微控制器、DSP和Java單處理器處理方案;ARM

Jazelle

技術(shù)提供8倍Java加速性能(ARM926EJ-S);5-級整數(shù)流水線;在0.13μm工藝下最高性能可抵達300MIPS(Dhrystone2.1測試標準);可選擇

向量浮點單元VFP9協(xié)處理器指令優(yōu)異海浮點性能,對于3D圖形加速和實時控制可抵達

215MFLOPS。高性能AHB總線,帶MMU可在0.18μm,0.15μm,0.13μm工藝硅芯片上實現(xiàn)。ARM10EARM1020E:帶DSP指令集,在片調(diào)試功效,獨立32KB數(shù)據(jù)和指令Cache,MMU支持;ARM1022E:與ARM1020E相同,只是獨立數(shù)據(jù)和指令Cache變?yōu)?6KB;ARM1026EJ-S:同時含有MPU和MMU,可綜合版本;帶分支預測6級整數(shù)流水線;在0.13μm工藝下最高性能可抵達430MIPS(Dhrystone2.1測試標準);對于3D圖形運算和實時控制采取VFP協(xié)處理器,浮點運算性能最高可達650MFLOPS;雙64位AMBA總線接口和64位內(nèi)部總路線接口;優(yōu)化緩存結(jié)構(gòu)提升了處理器訪問低速存放器性能;可在0.18μm,0.15μm,0.13μm工藝硅芯片上實現(xiàn)嵌入式系統(tǒng)原理及設計概述第31頁ARM11ARM11MPCore:可綜合多處理器核,1至4個處理器可配置;ARM1136J(F)-S:可配置數(shù)據(jù)和指令Cache,可提供1.9位MPEG4編碼加速功效;ARM1156T2(F)-S:帶集成浮點協(xié)處理器,帶內(nèi)存保護單元MPU

;ARM1176JZ(F)-S:帶針對CPU和系統(tǒng)安全架構(gòu)擴展TrustZone技術(shù)。增強Thumb、Jazelle、DSP擴展支持;帶片上和系統(tǒng)安全TrustZone技術(shù)支持;在0.13μm工藝下最高可抵達550MHz;MPCore在0.13μm工藝下最高性能可抵達740MIPS(Dhrystone2.1測試標準);支持多媒體指令SIMD;采取三種電源模式:全速/待命/休眠集成DMATCM低功耗、高性能。SecurCoreSC100:第一個32位安全處理器;、SC110:在SC100上增加密鑰協(xié)處理器;SC200:帶Jazelle技術(shù)高級安全處理器;SC210:在SC200上增加密鑰協(xié)處理器SecurCore是專門為智能卡、安全IC提供32位安全處理器,為電子商務、銀行、網(wǎng)絡、移動多媒體、公共交通提供安全處理方案;體積小、功耗低,代碼壓縮密度高;為快速增加Java卡平臺提供Java加速功效;嵌入式系統(tǒng)原理及設計概述第32頁CortexCortex-A:面向應用微處理器,針對復雜操作系統(tǒng)和應用程序設計;Cortex-R:針對實時系統(tǒng)嵌入式處理器;Cortex-M:針對成本敏感應用優(yōu)化深度嵌入式處理器;公布,提供增強媒體和數(shù)字處理能力,增加了系統(tǒng)性能;支持ARM、Thumb、Thumb-2指令集;Thumb-2指令集提供了更高代碼存放密度,深入降低成本;Intel系列StrongARM:ARMv4體系XScale:ARMv5TE體系,增加MMX指令StrongARM主要應用于手持設備和PDA,5級流水線,含有獨立數(shù)據(jù)和指令Cache,不支持Thumb指令集,當前已停產(chǎn);XScale是當前Intel企業(yè)主推高性能嵌入式處理器,分通用處理器、網(wǎng)絡處理器和I/O處理器三類。其中通用處理器有PXA25x、PXA26x、PXA27x三個系列,被廣泛應用于智能手機、PDA領域。嵌入式系統(tǒng)原理及設計概述第33頁ARM系列產(chǎn)品表示ARM系列產(chǎn)品很多,以ARM7系列為例,其內(nèi)核ARM7TDMI表示為:·ARM7:ARM系列含有32位整數(shù)運算核·T:內(nèi)含16位壓縮指令集Thumb·D:支持片內(nèi)Debug調(diào)試,·M:采取增強型乘法器(Multiplier),·I:內(nèi)含嵌入式ICE宏單元另外,各產(chǎn)品后綴提供了各種形式與功效選擇:·-S:可綜合軟核Softcore·-E:含有DSP功效·-J:Jazeller,允許直接執(zhí)行Java字節(jié)碼嵌入式系統(tǒng)原理及設計概述第34頁對本部分要求因為C語言編譯器已經(jīng)考慮到了許多復雜原因,所以作為初學者無需成為一個教授就能夠使用LPC2200。不過為了能夠設計出可靠應用系統(tǒng)和培養(yǎng)學習新技術(shù)能力,作為初學者確實需要對CPU(即ARM內(nèi)核)運作機制及其獨特性能有所了解。同一個系列ARM(比如都是ARM7或均為V4架構(gòu)),其內(nèi)核體系結(jié)構(gòu)基本相同,了解其中一個,其它也能很快上手。嵌入式系統(tǒng)原理及設計概述第35頁3、ARM7TDMI介紹ARM7TDMI基于ARM體系結(jié)構(gòu)V4版本,是當前低端ARM核。含有廣泛應用,其最顯著應用為數(shù)字移動電話。注意:“ARM核”并不是芯片,ARM核與其它部件如RAM、ROM、片內(nèi)外設組合在一起才能組成現(xiàn)實芯片。嵌入式系統(tǒng)原理及設計概述第36頁馮·諾依曼體系結(jié)構(gòu)ARM7TDMI處理器使用了馮·諾依曼(VonNeumann)結(jié)構(gòu),指令和數(shù)據(jù)共用一條32位總線。只有裝載、存放和交換指令能夠?qū)Υ娣牌髦袛?shù)據(jù)進行訪問。嵌入式系統(tǒng)原理及設計概述第37頁馮·諾依曼體系結(jié)構(gòu)指令存放器控制器數(shù)據(jù)通道輸入輸出中央處理器存放器程序指令0指令1指令2指令3指令4數(shù)據(jù)數(shù)據(jù)0數(shù)據(jù)1數(shù)據(jù)2嵌入式系統(tǒng)原理及設計概述第38頁哈佛體系結(jié)構(gòu)指令存放器控制器數(shù)據(jù)通道輸入輸出CPU程序存放器指令0指令1指令2數(shù)據(jù)存放器數(shù)據(jù)0數(shù)據(jù)1數(shù)據(jù)2地址指令地址數(shù)據(jù)嵌入式系統(tǒng)原理及設計概述第39頁存放器字與半字ARM處理器直接支持字節(jié)(8位)、半字(16位)或者字(32位)數(shù)據(jù)類型。其中能被4整除地址開始連續(xù)4個字節(jié)組成一個字,字數(shù)據(jù)類型為4個連續(xù)字節(jié)。從偶數(shù)地址開始連續(xù)2個字節(jié)組成一個半字,半字數(shù)據(jù)類型為2個連續(xù)字節(jié)。ARM指令長度剛好是1個字。1112342嵌入式系統(tǒng)原理及設計概述第40頁方式半字對齊字對齊地址…0x40020x40040x40060x4008……0x40040x40080x400C0x4010…特征bit0=0其它位為任意值bit0=0,bit1=0其它位為任意值字/半字對齊嵌入式系統(tǒng)原理及設計概述第41頁存放方式小端存放方式大端存放方式字低位字節(jié)嵌入式系統(tǒng)原理及設計概述第42頁流水線技術(shù)流水線(Pipeline)技術(shù):幾個指令能夠并行執(zhí)行允許多個操作同時處理,比逐條指令執(zhí)行要快。提升了CPU運行效率譯碼取指執(zhí)行add譯碼取指執(zhí)行sub譯碼取指執(zhí)行cmp時間AddSubCmp為增加處理器指令流速度,ARM7系列使用3級流水線.PC指向正被取指指令,而非正在執(zhí)行指令0x4000PC-80x4004PC-40x4008PC周期1周期2周期3周期4周期5當前周期PC值=當前途序執(zhí)行位置+8第1條指令第2條指令第3條指令嵌入式系統(tǒng)原理及設計概述第43頁預?。‵etch)譯碼(Decode)執(zhí)行(Execute)預取(Fetch)譯碼(Decode)執(zhí)行(Execute)訪存(Memory)寫入(Write)預?。‵etch)譯碼(Decode)發(fā)送(Issue)預?。‵etch)預取(Fetch)執(zhí)行(Execute)訪存(Memory)寫入(Write)譯碼(Decode)發(fā)送(Issue)執(zhí)行(Execute)轉(zhuǎn)換(Snny)訪存(Memory)寫入(Write)ARM7ARM9ARM10ARM11嵌入式系統(tǒng)原理及設計概述第44頁4、處理器狀態(tài)處理器狀態(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)容。由“當前途序狀態(tài)存放器CPSR”中第5位(即控制位T)反應處理器正在操作狀態(tài)。嵌入式系統(tǒng)原理及設計概述第45頁ARM指令集與Thumb指令集關系Thumb指令集含有靈活、小巧特點ARM指令集支持ARM核全部特征,含有高效、快速特點嵌入式系統(tǒng)原理及設計概述第46頁處理器狀態(tài)切換使用BX指令將ARM7TDMI內(nèi)核操作狀態(tài)在ARM狀態(tài)和Thumb狀態(tài)之間進行切換(詳見第4章),程序以下所表示。;從Arm狀態(tài)切換到Thumb狀態(tài)LDRR0,=Lable+1BXR0;從Thumb狀態(tài)切換到ARM狀態(tài)LDRR0,=LableBXR0地址最低位為1,表示切換到Thumb狀態(tài)地址最低位為0,表示切換到ARM狀態(tài)跳轉(zhuǎn)地址標號嵌入式系統(tǒng)原理及設計概述第47頁處理器模式說明備注用戶(usr)正常程序執(zhí)行模式不能直接切換到其它模式系統(tǒng)(sys)運行操作系統(tǒng)特權(quán)任務與用戶模式類似,但含有能夠直接切換到其它模式等特權(quán)快中止(fiq)支持高速數(shù)據(jù)傳輸及通道處理FIQ異常響應時進入此模式中止(irq)用于通用中止處理IRQ異常響應時進入此模式管理(svc)操作系統(tǒng)保護模式系統(tǒng)復位和軟件中止響應時進入此模式中止(abt)用于支持虛擬內(nèi)存和/或存放器保護在ARM7TDMI沒有大用處未定義(und)支持硬件協(xié)處理器軟件仿真未定義指令異常響應時進入此模式5處理器模式處理器7種模式usersystemfastinterruptrequestinterruptrequestsupervisorabortunderfined嵌入式系統(tǒng)原理及設計概述第48頁特權(quán)模式處理器模式說明備注用戶(usr)正常程序工作模式不能直接切換到其它模式系統(tǒng)(sys)用于支持操作系統(tǒng)特權(quán)任務等與用戶模式類似,但含有能夠直接切換到其它模式等特權(quán)快中止(fiq)支持高速數(shù)據(jù)傳輸及通道處理FIQ異常響應時進入此模式中止(irq)用于通用中止處理IRQ異常響應時進入此模式管理(svc)操作系統(tǒng)保護代碼系統(tǒng)復位和軟件中止響應時進入此模式中止(abt)用于支持虛擬內(nèi)存和/或存放器保護在ARM7TDMI沒有大用處未定義(und)支持硬件協(xié)處理器軟件仿真未定義指令異常響應時進入此模式除用戶模式外,其它模式均為特權(quán)模式。ARM內(nèi)部存放器和一些片內(nèi)外設在硬件設計上只允許(或者可選為只允許)特權(quán)模式下訪問。另外,特權(quán)模式能夠自由切換處理器模式,而用戶模式不能直接切換到別模式。未定義(und)中止(abt)管理(svc)中止(irq)快中止(fiq)系統(tǒng)(sys)嵌入式系統(tǒng)原理及設計概述第49頁異常模式處理器模式說明備注用戶(usr)正常程序工作模式不能直接切換到其它模式系統(tǒng)(sys)用于支持操作系統(tǒng)特權(quán)任務等與用戶模式類似,但含有能夠直接切換到其它模式等特權(quán)快中止(fiq)支持高速數(shù)據(jù)傳輸及通道處理FIQ異常響應時進入此模式中止(irq)用于通用中止處理IRQ異常響應時進入此模式管理(svc)操作系統(tǒng)保護代碼系統(tǒng)復位和軟件中止響應時進入此模式中止(abt)用于支持虛擬內(nèi)存和/或存放器保護在ARM7TDMI沒有大用處未定義(und)支持硬件協(xié)處理器軟件仿真未定義指令異常響應時進入此模式未定義(und)中止(abt)管理(svc)中止(irq)快中止(fiq)這五種模式稱為異常模式。它們除了能夠經(jīng)過程序切換進入外,也能夠由特定異常進入。當特定異常出現(xiàn)時,處理器進入對應模式。每種異常模式都有一些獨立存放器,以防止異常退出時用戶模式狀態(tài)不可靠。MSRCPSR_c,#(NoInt|SYS32Mode);從管理模式切換到系統(tǒng)模式MSRCPSR_c,#(NoInt|SVC32Mode);從系統(tǒng)模式切換到管理模式嵌入式系統(tǒng)原理及設計概述第50頁用戶和系統(tǒng)模式處理器模式說明備注用戶(usr)正常程序工作模式不能直接切換到其它模式系統(tǒng)(sys)用于支持操作系統(tǒng)特權(quán)任務等與用戶模式類似,但含有能夠直接切換到其它模式等特權(quán)快中止(fiq)支持高速數(shù)據(jù)傳輸及通道處理FIQ異常響應時進入此模式中止(irq)用于通用中止處理IRQ異常響應時進入此模式管理(svc)操作系統(tǒng)保護代碼系統(tǒng)復位和軟件中止響應時進入此模式中止(abt)用于支持虛擬內(nèi)存和/或存放器保護在ARM7TDMI沒有大用處未定義(und)支持硬件協(xié)處理器軟件仿真未定義指令異常響應時進入此模式這兩種模式都不能由異常進入,而且它們使用完全相同存放器組。系統(tǒng)模式是特權(quán)模式,不受用戶模式限制。操作系統(tǒng)在該模式下訪問用戶模式存放器就比較方便,而且操作系統(tǒng)一些特權(quán)任務能夠使用這個模式訪問一些受控資源。系統(tǒng)(sys)用戶(usr)嵌入式系統(tǒng)原理及設計概述第51頁6ARM內(nèi)部存放器在ARM7TDMI處理器內(nèi)部有37個用戶可見存放器。31個通用32位存放器(包含程序計數(shù)器PC)6個狀態(tài)存放器通用存放器包含R0~R15,能夠分為三類:——未分組存放器R0~R7——分組存放器R8~R14——程序計數(shù)器PC(R15)狀態(tài)存放器:——CPSR(CurrentProgramStatusRegister,當前途序狀態(tài)存放器)——SPSR(SavedProgramStatusRegister,備份程序狀態(tài)存放器)在不一樣工作模式和處理器狀態(tài)下,程序員能夠訪問存放器不盡相同。嵌入式系統(tǒng)原理及設計概述第52頁存放器類別存放器在匯編中名稱各模式下實際訪問存放器用戶系統(tǒng)管理中止未定義中止快中止通用存放器和程序計數(shù)器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiq*R9(SB,v6)R9R9_fiq*R10(SL,v7)R10R10_fiq*R11(FP,v8)R11R11_fiq*R12(IP)R12R12_fiq*R13(SP)R13R13_svc*R13_abt*R13_und*R13_irq*R13_fiq*R14(LR)R14R14_svc*R14_abt*R14_und*R14_irq*R14_fiq*R15(PC)R15狀態(tài)存放器R16(CPSR)CPSRSPSR無SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiqARM狀態(tài)各模式下存放器嵌入式系統(tǒng)原理及設計概述第53頁存放器類別存放器在匯編中名稱各模式下實際訪問存放器用戶系統(tǒng)管理中止未定義中止快中止通用存放器和程序計數(shù)器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15狀態(tài)存放器CPSRCPSRSPSR無SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiqARM狀態(tài)各模式下存放器SPSR_fiqSPSR_irqSPSR_undSPSR_abtSPSR_abtCPSRR15R14_fiqR14_irqR14_undR14_abtR14_svcR14R13_fiqR13_irqR13_undR13_abtR13_svcR13R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8R7R6R5R4R3R2R1R0全部37個存放器,分成兩大類:31個通用32位存放器;6個狀態(tài)存放器。嵌入式系統(tǒng)原理及設計概述第54頁存放器類別存放器在匯編中名稱各模式下實際訪問存放器用戶系統(tǒng)管理中止未定義中止快中止通用存放器和程序計數(shù)器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15狀態(tài)存放器CPSRCPSRSPSR無SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiq無CPSRR15R14R13R12R11R10R9R8R7R6R5R4R3R2R1R0用戶無CPSRR15R14R13R12R11R10R9R8R7R6R5R4R3R2R1R0系統(tǒng)SPSR_abtCPSRR15R14_svcR13_svcR12R11R10R9R8R7R6R5R4R3R2R1R0管理SPSR_abtCPSRR15R14_abtR13_abtR12R11R10R9R8R7R6R5R4R3R2R1R0中止SPSR_undCPSRR15R14_undR13_undR12R11R10R9R8R7R6R5R4R3R2R1R0未定義SPSR_irqCPSRR15R14_irqR13_irqR12R11R10R9R8R7R6R5R4R3R2R1R0中止SPSR_fiqCPSRR15R14_fiqR13_fiqR12_fiqR11_fiqR10_fiqR9_fiqR8_fiqR7R6R5R4R3R2R1R0快中止ARM狀態(tài)各模式下能夠訪問存放器嵌入式系統(tǒng)原理及設計概述第55頁存放器類別存放器在匯編中名稱各模式下實際訪問存放器用戶系統(tǒng)管理中止未定義中止快中止通用存放器和程序計數(shù)器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15狀態(tài)存放器CPSRCPSRSPSR無SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiq普通通用存放器R13_fiqR13_irqR13_undR13_abtR13_svcR13R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8R7R6R5R4R3R2R1R0在匯編語言中存放器R0~R13為保留數(shù)據(jù)或地址值通用存放器。它們是完全通用存放器,不會被體系結(jié)構(gòu)作為特殊用途,而且可用于任何使用通用存放器指令。嵌入式系統(tǒng)原理及設計概述第56頁存放器類別存放器在匯編中名稱各模式下實際訪問存放器用戶系統(tǒng)管理中止未定義中止快中止通用存放器和程序計數(shù)器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15狀態(tài)存放器CPSRCPSRSPSR無SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiq普通通用存放器R13_fiqR13_irqR13_undR13_abtR13_svcR13R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8R7R6R5R4R3R2R1R0R7R6R5R4R3R2R1R0其中R0~R7為未分組存放器,也就是說對于任何處理器模式,這些存放器都對應于相同32位物理存放器。嵌入式系統(tǒng)原理及設計概述第57頁存放器類別存放器在匯編中名稱各模式下實際訪問存放器用戶系統(tǒng)管理中止未定義中止快中止通用存放器和程序計數(shù)器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15狀態(tài)存放器CPSRCPSRSPSR無SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiq普通通用存放器R14_fiqR14_irqR14_undR14_abtR14_svcR14R13_fiqR13_irqR13_undR13_abtR13_svcR13R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8存放器R8~R14為分組存放器。它們所對應物理存放器取決于當前處理器模式,幾乎全部允許使用通用存放器指令都允許使用分組存放器嵌入式系統(tǒng)原理及設計概述第58頁存放器類別存放器在匯編中名稱各模式下實際訪問存放器用戶系統(tǒng)管理中止未定義中止快中止通用存放器和程序計數(shù)器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15狀態(tài)存放器CPSRCPSRSPSR無SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiq普通通用存放器R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8存放器R8~R12有兩個分組物理存放器。一個用于除FIQ模式之外全部存放器模式,另一個用于FIQ模式。這么在發(fā)生FIQ中止后,能夠加速FIQ處理速度。嵌入式系統(tǒng)原理及設計概述第59頁存放器類別存放器在匯編中名稱各模式下實際訪問存放器用戶系統(tǒng)管理中止未定義中止快中止通用存放器和程序計數(shù)器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15狀態(tài)存放器CPSRCPSRSPSR無SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiq普通通用存放器存放器R13、R14分別有6個分組物理存放器。一個用于用戶和系統(tǒng)模式,其余5個分別用于5種異常模式。R14_fiqR14_irqR14_undR14_abtR14_svcR14R13_fiqR13_irqR13_undR13_abtR13_svcR13嵌入式系統(tǒng)原理及設計概述第60頁存放器類別存放器在匯編中名稱各模式下實際訪問存放器用戶系統(tǒng)管理中止未定義中止快中止通用存放器和程序計數(shù)器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15狀態(tài)存放器CPSRCPSRSPSR無SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiq堆棧指針存放器R13(SP)存放器R13常作為堆棧指針(SP)。在ARM指令集當中,沒有以特殊方式使用R13指令或其它功效,只是習慣上都這么使用。不過在Thumb指令集中存在使用R13指令。嵌入式系統(tǒng)原理及設計概述第61頁存放器類別存放器在匯編中名稱各模式下實際訪問存放器用戶系統(tǒng)管理中止未定義中止快中止通用存放器和程序計數(shù)器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15狀態(tài)存放器CPSRCPSRSPSR無SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiq鏈接存放器R14(LR)R14為鏈接存放器(LR),在結(jié)構(gòu)上有兩個特殊功效:在每種模式下,模式本身R14版本用于保留子程序返回地址;當發(fā)生異常時,將R14對應異常模式版本設置為異常返回地址(有些異常有一個小固定偏移量)。嵌入式系統(tǒng)原理及設計概述第62頁Lable程序A程序BR14R14(LR)存放器與子程序調(diào)用BLLable地址A???MOVPC,LRR14(地址A)Lable???1.程序A執(zhí)行過程中調(diào)用程序B;操作流程2.程序跳轉(zhuǎn)至標號Lable,執(zhí)行程序B。同時硬件將“BLLable”指令下一條指令所在地址存入R14(LR);3.程序B執(zhí)行最終,將R14存放器內(nèi)容放入PC,返回程序A;嵌入式系統(tǒng)原理及設計概述第63頁R14存放器與異常發(fā)生異常發(fā)生時,程序要跳轉(zhuǎn)至異常服務程序,對返回地址處理與子程序調(diào)用類似,都是由硬件完成。區(qū)分在于有些異常有一個小常量偏移。嵌入式系統(tǒng)原理及設計概述第64頁R14存放器注意關鍵點R14R14_irq用戶模式下程序IRQ模式下程序AareturnB...XA地址A地址A1.執(zhí)行用戶模式下程序;2.發(fā)生IRQ中止,硬件將某個地址存入IRQ模式下R14_irq存放器,用戶模式下R14沒有被破壞;3.IRQ服務程序A執(zhí)行完成,將R14_irq存放器內(nèi)容減去某個常量后存入PC,返回之前被中止程序;未被破壞R14_irq嵌入式系統(tǒng)原理及設計概述第65頁R14存放器注意關鍵點R14R14_irq用戶模式下程序IRQ模式下程序AaB...XA地址A地址A1.執(zhí)行用戶模式下程序;2.發(fā)生IRQ中止,硬件將某個地址存入IRQ模式下R14_irq存放器,用戶模式下R14沒有被破壞;3.IRQ服務程序A執(zhí)行完成,將R14_irq存放器內(nèi)容減去某個常量后存入PC,返回之前被中止程序;未被破壞IRQ模式下程序BareturnB...XA地址B地址B4.假如在IRQ處理程序中打開IRQ中止,而且再次發(fā)生IRQ中止;5.硬件將返回地址保留在R14_irq存放器中,原來保留返回地址將被覆蓋,造成錯誤;R14_irq被破壞6.在程序B返回到程序A,然后在返回到用戶模式下被中止程序時,發(fā)生錯誤,將不能正確返回;returnreturn處理方法是確保R14對應版本在發(fā)生中止嵌套時不再保留任何有意義值(將R14入棧),或者切換到其它處理器模式下。嵌入式系統(tǒng)原理及設計概述第66頁存放器類別存放器在匯編中名稱各模式下實際訪問存放器用戶系統(tǒng)管理中止未定義中止快中止通用存放器和程序計數(shù)器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15狀態(tài)存放器CPSRCPSRSPSR無SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiq程序計數(shù)器R15(PC)存放器R15為程序計數(shù)器(PC),它指向正在取指地址。能夠認為它是一個通用存放器,不過對于它使用有許多與指令相關限制或特殊情況。假如R15使用方式超出了這些限制,那么結(jié)果將是不可預測。嵌入式系統(tǒng)原理及設計概述第67頁讀R15限制正常操作時,從R15讀取值是處理器正在取指地址,即當前正在執(zhí)行指令地址加上8個字節(jié)(兩條ARM指令長度)。因為ARM指令總是以字為單位,所以R15存放器最低兩位總是為0。LDRR0,PC??????PCPC-4PC-8正在執(zhí)行正在譯碼正在取指流水線狀態(tài)地址程序代碼嵌入式系統(tǒng)原理及設計概述第68頁讀R15限制當使用STR或STM指令保留R15時,會有一個例外。這些指令可能將當前指令地址加8字節(jié)或加12字節(jié)保留(未來可能還有其它數(shù)字)。偏移量是8還是12取決于詳細ARM芯片,不過對于一個確定芯片,這個值是一個常量。所以最好防止使用STR和STM指令來保留R15,假如極難做到,那么應該在程序中計算出該芯片偏移量。嵌入式系統(tǒng)原理及設計概述第69頁讀R15限制計算偏移量(PC值和當前指令地址差)程序代碼:SUB R1,PC,#4 ;R1=下面STR指令地址STR PC,[R0] ;保留STR指令地址+偏移量LDR R0,[R0] ;然后重裝SUB R0,R0,R1 ;計算偏移量04812ARM狀態(tài)嵌入式系統(tǒng)原理及設計概述第70頁寫R15限制正常操作時,寫入R15值被看成一個指令地址,程序從這個地址處繼續(xù)執(zhí)行(相當于執(zhí)行一次無條件跳轉(zhuǎn))。嵌入式系統(tǒng)原理及設計概述第71頁寫R15限制因為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é)果將不可預測。嵌入式系統(tǒng)原理及設計概述第72頁存放器類別存放器在匯編中名稱各模式下實際訪問存放器用戶系統(tǒng)管理中止未定義中止快中止通用存放器和程序計數(shù)器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15狀態(tài)存放器CPSRCPSRSPSR無SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiq程序狀態(tài)存放器CPSR存放器CPSR為程序狀態(tài)存放器,在異常模式中,另外一個存放器“程序狀態(tài)保留存放器(SPSR)”能夠被訪問。每種異常都有自己SPSR,在進入異常時它保留CPSR當前值,異常退出時可經(jīng)過它恢復CPSR。詳細描述參看3.8小節(jié)。嵌入式系統(tǒng)原理及設計概述第73頁ARM指令集全部指令都能夠被有條件執(zhí)行,簡稱條件執(zhí)行。在以往微控制器中,只有條件轉(zhuǎn)移指令或位測試和設置一類指令是條

溫馨提示

  • 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

提交評論