![嵌入式系統(tǒng)原理及設(shè)計(jì)概述_第1頁(yè)](http://file4.renrendoc.com/view8/M01/1D/0F/wKhkGWcB2Z6AMc8wAACXYXnrEkI048.jpg)
![嵌入式系統(tǒng)原理及設(shè)計(jì)概述_第2頁(yè)](http://file4.renrendoc.com/view8/M01/1D/0F/wKhkGWcB2Z6AMc8wAACXYXnrEkI0482.jpg)
![嵌入式系統(tǒng)原理及設(shè)計(jì)概述_第3頁(yè)](http://file4.renrendoc.com/view8/M01/1D/0F/wKhkGWcB2Z6AMc8wAACXYXnrEkI0483.jpg)
![嵌入式系統(tǒng)原理及設(shè)計(jì)概述_第4頁(yè)](http://file4.renrendoc.com/view8/M01/1D/0F/wKhkGWcB2Z6AMc8wAACXYXnrEkI0484.jpg)
![嵌入式系統(tǒng)原理及設(shè)計(jì)概述_第5頁(yè)](http://file4.renrendoc.com/view8/M01/1D/0F/wKhkGWcB2Z6AMc8wAACXYXnrEkI0485.jpg)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
嵌入式系統(tǒng)原理及設(shè)計(jì)陳子為嵌入式系統(tǒng)原理及設(shè)計(jì)概述第1頁(yè)課程安排課時(shí):32課時(shí)(上課)+16課時(shí)(試驗(yàn))形式:
專題講座+討論+試驗(yàn)+項(xiàng)目設(shè)計(jì)內(nèi)容安排第1講嵌入式系統(tǒng)概述與ARM7體系結(jié)構(gòu)
第2講指令系統(tǒng)與程序編制
第3講存放器映射與重映射第4講系統(tǒng)控制與開啟代碼第5講異常與中止第6講定時(shí)器、PWM與實(shí)時(shí)時(shí)鐘
第7講UART與SPI第8講其它外設(shè)模塊
嵌入式系統(tǒng)原理及設(shè)計(jì)概述第2頁(yè)工程項(xiàng)目:聲音播放器數(shù)字時(shí)鐘要按照完整工程項(xiàng)目要求來(lái)做。要提交相關(guān)技術(shù)文檔,而且文檔要規(guī)范作業(yè)與試驗(yàn)匯報(bào):
不寫作業(yè)寫博客嵌入式系統(tǒng)原理及設(shè)計(jì)概述第3頁(yè)教材與參考書目教材《ARM嵌入式系統(tǒng)基礎(chǔ)教程(第2版)》周立功等編著,北京航空航天大學(xué)出版社,《ARM嵌入式系統(tǒng)試驗(yàn)教程(一)》周立功等編著,北京航空航天大學(xué)出版社,參考書目《深入淺出ARM7——LPC2200》周立功等編著,廣州致遠(yuǎn)電子有限企業(yè),《ARM體系結(jié)構(gòu)及其嵌入式處理器》任哲等編著,北京航空航天大學(xué)出版社,,1《ARM程序分析與設(shè)計(jì)》王宇行編著,北京航空航天大學(xué)出版社,,3嵌入式系統(tǒng)原理及設(shè)計(jì)概述第4頁(yè)1LECTURE嵌入式系統(tǒng)概述與ARM7體系結(jié)構(gòu)陳子為嵌入式系統(tǒng)原理及設(shè)計(jì)概述第5頁(yè)現(xiàn)實(shí)中嵌入式系統(tǒng)嵌入式系統(tǒng)原理及設(shè)計(jì)概述第6頁(yè)嵌入式系統(tǒng)無(wú)處不在嵌入式系統(tǒng)原理及設(shè)計(jì)概述第7頁(yè)討論什么是嵌入式系統(tǒng)、自己身邊嵌入式系統(tǒng)、與單片機(jī)、DSP聯(lián)絡(luò)話題范圍不限定,談?wù)勛约簩?duì)嵌入式系統(tǒng)了解嵌入式系統(tǒng)原理及設(shè)計(jì)概述第8頁(yè)1、什么是嵌入式系統(tǒng):
來(lái)自IEEE定義 “Embeddedsystemisdevicesusedtocontrol,monitor,orassisttheoperationofequipment,machineryorplants”. ——IEEE上述定義主要從應(yīng)用上加以定義。
能夠看出:嵌入式系統(tǒng)是軟硬件綜合體,還能夠涵蓋機(jī)械等從屬裝置。嵌入式系統(tǒng)原理及設(shè)計(jì)概述第9頁(yè)什么是嵌入式系統(tǒng):
廣義上嵌入式系統(tǒng)是一個(gè)應(yīng)用系統(tǒng),它最少包含一個(gè)可編程計(jì)算機(jī)(通常是某種形式微控制器、微處理器或數(shù)字信號(hào)處理芯片(DSP))且使用該系統(tǒng)人普通并未意識(shí)到該系統(tǒng)是基于計(jì)算機(jī)。嵌入式系統(tǒng)原理及設(shè)計(jì)概述第10頁(yè)什么是嵌入式系統(tǒng):
國(guó)內(nèi)經(jīng)典定義嵌入式系統(tǒng)是
“以應(yīng)用為中心,以計(jì)算機(jī)技術(shù)為基礎(chǔ),而且軟硬件可裁剪,適合用于應(yīng)用系統(tǒng)對(duì)功效、可靠性、成本、體積、功耗有嚴(yán)格要求專用計(jì)算機(jī)系統(tǒng)”普通由嵌入式微處理器、外圍硬件設(shè)備、嵌入式操作系統(tǒng)以及用戶應(yīng)用程序等部分組成,用于實(shí)現(xiàn)對(duì)其它設(shè)備控制、監(jiān)視或管理等功效。嵌入式系統(tǒng)原理及設(shè)計(jì)概述第11頁(yè)嵌入式系統(tǒng)特點(diǎn)嵌入式系統(tǒng)與通用型計(jì)算機(jī)系統(tǒng)相比,含有以下特點(diǎn):專用性強(qiáng)??商蕴?。實(shí)時(shí)性與可靠性好。功耗低。嵌入式系統(tǒng)原理及設(shè)計(jì)概述第12頁(yè)通用計(jì)算機(jī)與嵌入式系統(tǒng)對(duì)比特征通用計(jì)算機(jī)嵌入式系統(tǒng)形式和類型看得見計(jì)算機(jī)。按其體系結(jié)構(gòu)、運(yùn)算速度和結(jié)構(gòu)規(guī)模等原因分為大、中、小型機(jī)和微機(jī)。看不見計(jì)算機(jī)。形式多樣,應(yīng)用領(lǐng)域廣泛,按應(yīng)用來(lái)分。組成通用處理器、標(biāo)準(zhǔn)總線和外設(shè)。軟件和硬件相對(duì)獨(dú)立。面向應(yīng)用嵌入式微處理器,總線和外部接口多集成在處理器內(nèi)部。軟件與硬件是緊密集成在一起。開發(fā)方式開發(fā)平臺(tái)和運(yùn)行平臺(tái)都是通用計(jì)算機(jī)采取交叉開發(fā)方式,開發(fā)平臺(tái)普通是通用計(jì)算機(jī),運(yùn)行平臺(tái)是嵌入式系統(tǒng)。二次開發(fā)性應(yīng)用程序可重新編制普通不能再編程嵌入式系統(tǒng)原理及設(shè)計(jì)概述第13頁(yè)嵌入式處理器當(dāng)前來(lái)講,嵌入式處理器能夠分成這么一些類型1、嵌入式微處理器(MicroprocessorUnit,MPU)
2、嵌入式微控制器(MicrocontrollerUnit,MCU)3、嵌入式DSP(DigitalSignalProcessor)處理器4、嵌入式片上系統(tǒng)(SystemonChip,SoC)嵌入式系統(tǒng)原理及設(shè)計(jì)概述第14頁(yè)處理器外設(shè)存放器I/O“Systemonboard”“Systemonchip”USB以太網(wǎng)memory嵌入式系統(tǒng)原理及設(shè)計(jì)概述第15頁(yè)ExternalMemoryCPUAddressDataCacheBusInterfaceWriteBufferMMU/MPURRWWWW(R/W)
外設(shè)如USB、LCD控制器等擴(kuò)展芯片內(nèi)核(core)處理器存放器子系統(tǒng)SoC片內(nèi)外設(shè)系統(tǒng)片外設(shè)備處理器(Processor)芯片(SoC)系統(tǒng)(System)嵌入式系統(tǒng)原理及設(shè)計(jì)概述第16頁(yè)微處理器是整個(gè)系統(tǒng)關(guān)鍵,通常由3大部分組成:控制單元、算術(shù)邏輯單元和存放器。
算術(shù)邏輯單元存放器控制單元微處理器存放器輸入輸出嵌入式系統(tǒng)原理及設(shè)計(jì)概述第17頁(yè)嵌入式系統(tǒng)組成嵌入式系統(tǒng)普通由嵌入式硬件和軟件組成硬件以微處理器為關(guān)鍵集成存放器和系統(tǒng)專用輸入/輸出設(shè)備軟件包含:初始化代碼及驅(qū)動(dòng)、嵌入式操作系統(tǒng)和應(yīng)用程序等,這些軟件有機(jī)地結(jié)合在一起,形成系統(tǒng)特定一體化軟件。嵌入式系統(tǒng)原理及設(shè)計(jì)概述第18頁(yè)手機(jī)大約組成嵌入式系統(tǒng)原理及設(shè)計(jì)概述第19頁(yè)微波爐CPUBUSROMRAM輸入接口輸出接口輸入鍵開門馬達(dá)磁電管風(fēng)扇燈具嵌入式處理器喇叭嵌入式系統(tǒng)原理及設(shè)計(jì)概述第20頁(yè)嵌入式系統(tǒng)應(yīng)用領(lǐng)域MicroprocessorCCDpreprocessorPixelcoprocessorA2DD2AJPEGcodecDMAcontrollerMemorycontrollerISAbusinterfaceUARTLCDctrlDisplayctrlMultiplier/AccumDigitalcamerachiplensCCDADigitalCamera嵌入式系統(tǒng)原理及設(shè)計(jì)概述第21頁(yè)嵌入式系統(tǒng)硬件部分嵌入式系統(tǒng)軟件部分如人大腦,決定了硬件操作模式。經(jīng)過良好操作系統(tǒng)以及應(yīng)用程序,把硬件功效發(fā)揮到極至。如人手、腳、神經(jīng)等部位,決定了嵌入式系統(tǒng)先天功效。如運(yùn)算能力和I/O接口等。嵌入式系統(tǒng)原理及設(shè)計(jì)概述第22頁(yè)2ARM介紹ARM企業(yè)介紹ARM是AdvancedRISCMachines縮寫,它是一家微處理器行業(yè)著名企業(yè),該企業(yè)設(shè)計(jì)了大量高性能、廉價(jià)、耗能低RISC(精簡(jiǎn)指令集)處理器。企業(yè)特點(diǎn)是只設(shè)計(jì)芯片,而不生產(chǎn)。它將技術(shù)授權(quán)給世界上許多著名半導(dǎo)體、軟件和OEM廠商,并提供服務(wù)。嵌入式系統(tǒng)原理及設(shè)計(jì)概述第23頁(yè)ARM企業(yè)介紹將技術(shù)授權(quán)給其它芯片廠商形成各具特色ARM芯片...嵌入式系統(tǒng)原理及設(shè)計(jì)概述第24頁(yè)IP商半導(dǎo)體芯片(SOC)商嵌入式系統(tǒng)開發(fā)者分工邊界個(gè)性化強(qiáng)度嵌入式系統(tǒng)組成層次圖嵌入式系統(tǒng)原理及設(shè)計(jì)概述第25頁(yè)ARM處理器應(yīng)用當(dāng)前主要應(yīng)用于消費(fèi)類電子領(lǐng)域;到當(dāng)前為止,基于ARM技術(shù)微處理器應(yīng)用約占據(jù)了32位嵌入式微處理器75%以上市場(chǎng)份額全球80%GSM/3G手機(jī)、99%CDMA手機(jī)以及絕大多數(shù)PDA產(chǎn)品均采取ARM體系嵌入式處理器,“掌上計(jì)算”相關(guān)全部領(lǐng)域皆為其所主宰。ARM技術(shù)正在逐步滲透到我們生活各個(gè)方面。嵌入式系統(tǒng)原理及設(shè)計(jì)概述第26頁(yè)ARM處理器核介紹ARM企業(yè)開發(fā)了很多系列ARM處理器核,當(dāng)前最新系列已經(jīng)是ARMcortex了,而ARM6核以及更早系列已經(jīng)很罕見了。ARM7ARM9ARM9EARM10ARM11CortexV4V4TV5TEV5TEV6V7ARM體系結(jié)構(gòu)版本ARM體系結(jié)構(gòu)從最初開發(fā)到現(xiàn)在有了很大改進(jìn),并仍在完善和發(fā)展。為了清楚表示每個(gè)ARM應(yīng)用實(shí)例所使用指令集,ARM企業(yè)定義了7種主要ARM指令集體系結(jié)構(gòu)版本,以版本號(hào)V1~V7表示。嵌入式系統(tǒng)原理及設(shè)計(jì)概述第27頁(yè)v4v5TESA110v4TARM720TARM7TDMI-SARM920TARM940TARM922TARM966E-SARM946E-SARM1020Ev5TEJ/Jazellev6/JazelleARM7EJ-SARM926EJ-SARM1026EJ-SARM11Micro-ArchitectureRoadmapofARMV4/V5/V6嵌入式系統(tǒng)原理及設(shè)計(jì)概述第28頁(yè)項(xiàng)目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)原理及設(shè)計(jì)概述第29頁(yè)ARM系列微處理器核特點(diǎn)ARM7ARM7TDMI:整數(shù)處理核ARM7TDMI處理器可綜合版本;ARM720T:帶MMU處理器關(guān)鍵,支持操作系統(tǒng);ARM7EJ-S:帶有DSP和JazelleTM技術(shù),能夠?qū)崿F(xiàn)Java加速功效馮諾伊曼體系結(jié)構(gòu);ARMTDMI是當(dāng)前應(yīng)用最廣微處理器核ARM720T帶有MMU和8KB指令數(shù)據(jù)混合cache;ARM7EJ-執(zhí)行ARMv5TEJ指令,5級(jí)流水線,提供Java加速指令,沒有存放器保護(hù)。ARM9ARM920T:帶有獨(dú)立16KB數(shù)據(jù)和指令Cache;ARM922T:帶有獨(dú)立8位KB數(shù)據(jù)和指令Cache;ARM940T–包含更小數(shù)據(jù)和指令Cache和一個(gè)MPU基于ARM9TDMI,帶16位Thumb指令集,增強(qiáng)代碼密度最多到35%;在0.13μm工藝下最高性能可抵達(dá)300MIPS(Dhrystone2.1測(cè)試標(biāo)準(zhǔn));集成了數(shù)據(jù)和指令Chche;32位AMBA總線接口MMU支持;可在0.18μm、0.15μm和0.13μm工藝硅芯片上實(shí)現(xiàn)。嵌入式系統(tǒng)原理及設(shè)計(jì)概述第30頁(yè)ARM9EARM926EJ-S:Jazelle技術(shù),有MMU,可配置數(shù)據(jù)和指令Cache,TCM接口;ARM946E-S:可配置數(shù)據(jù)和指令Cache及TCM;ARM966E-S:針對(duì)要求高性能和低功耗可預(yù)測(cè)指令執(zhí)行時(shí)間硬實(shí)時(shí)應(yīng)用設(shè)計(jì)ARM968E-S:最小、功耗最小
ARM9E系列處理器,針對(duì)嵌入式實(shí)時(shí)應(yīng)用設(shè)計(jì);ARM9E是針對(duì)微控制器、DSP和Java單處理器處理方案;ARM
Jazelle
技術(shù)提供8倍Java加速性能(ARM926EJ-S);5-級(jí)整數(shù)流水線;在0.13μm工藝下最高性能可抵達(dá)300MIPS(Dhrystone2.1測(cè)試標(biāo)準(zhǔn));可選擇
向量浮點(diǎn)單元VFP9協(xié)處理器指令優(yōu)異海浮點(diǎn)性能,對(duì)于3D圖形加速和實(shí)時(shí)控制可抵達(dá)
215MFLOPS。高性能AHB總線,帶MMU可在0.18μm,0.15μm,0.13μm工藝硅芯片上實(shí)現(xiàn)。ARM10EARM1020E:帶DSP指令集,在片調(diào)試功效,獨(dú)立32KB數(shù)據(jù)和指令Cache,MMU支持;ARM1022E:與ARM1020E相同,只是獨(dú)立數(shù)據(jù)和指令Cache變?yōu)?6KB;ARM1026EJ-S:同時(shí)含有MPU和MMU,可綜合版本;帶分支預(yù)測(cè)6級(jí)整數(shù)流水線;在0.13μm工藝下最高性能可抵達(dá)430MIPS(Dhrystone2.1測(cè)試標(biāo)準(zhǔn));對(duì)于3D圖形運(yùn)算和實(shí)時(shí)控制采取VFP協(xié)處理器,浮點(diǎn)運(yùn)算性能最高可達(dá)650MFLOPS;雙64位AMBA總線接口和64位內(nèi)部總路線接口;優(yōu)化緩存結(jié)構(gòu)提升了處理器訪問低速存放器性能;可在0.18μm,0.15μm,0.13μm工藝硅芯片上實(shí)現(xiàn)嵌入式系統(tǒng)原理及設(shè)計(jì)概述第31頁(yè)ARM11ARM11MPCore:可綜合多處理器核,1至4個(gè)處理器可配置;ARM1136J(F)-S:可配置數(shù)據(jù)和指令Cache,可提供1.9位MPEG4編碼加速功效;ARM1156T2(F)-S:帶集成浮點(diǎn)協(xié)處理器,帶內(nèi)存保護(hù)單元MPU
;ARM1176JZ(F)-S:帶針對(duì)CPU和系統(tǒng)安全架構(gòu)擴(kuò)展TrustZone技術(shù)。增強(qiáng)Thumb、Jazelle、DSP擴(kuò)展支持;帶片上和系統(tǒng)安全TrustZone技術(shù)支持;在0.13μm工藝下最高可抵達(dá)550MHz;MPCore在0.13μm工藝下最高性能可抵達(dá)740MIPS(Dhrystone2.1測(cè)試標(biāo)準(zhǔn));支持多媒體指令SIMD;采取三種電源模式:全速/待命/休眠集成DMATCM低功耗、高性能。SecurCoreSC100:第一個(gè)32位安全處理器;、SC110:在SC100上增加密鑰協(xié)處理器;SC200:帶Jazelle技術(shù)高級(jí)安全處理器;SC210:在SC200上增加密鑰協(xié)處理器SecurCore是專門為智能卡、安全I(xiàn)C提供32位安全處理器,為電子商務(wù)、銀行、網(wǎng)絡(luò)、移動(dòng)多媒體、公共交通提供安全處理方案;體積小、功耗低,代碼壓縮密度高;為快速增加Java卡平臺(tái)提供Java加速功效;嵌入式系統(tǒng)原理及設(shè)計(jì)概述第32頁(yè)CortexCortex-A:面向應(yīng)用微處理器,針對(duì)復(fù)雜操作系統(tǒng)和應(yīng)用程序設(shè)計(jì);Cortex-R:針對(duì)實(shí)時(shí)系統(tǒng)嵌入式處理器;Cortex-M:針對(duì)成本敏感應(yīng)用優(yōu)化深度嵌入式處理器;公布,提供增強(qiáng)媒體和數(shù)字處理能力,增加了系統(tǒng)性能;支持ARM、Thumb、Thumb-2指令集;Thumb-2指令集提供了更高代碼存放密度,深入降低成本;Intel系列StrongARM:ARMv4體系XScale:ARMv5TE體系,增加MMX指令StrongARM主要應(yīng)用于手持設(shè)備和PDA,5級(jí)流水線,含有獨(dú)立數(shù)據(jù)和指令Cache,不支持Thumb指令集,當(dāng)前已停產(chǎn);XScale是當(dāng)前Intel企業(yè)主推高性能嵌入式處理器,分通用處理器、網(wǎng)絡(luò)處理器和I/O處理器三類。其中通用處理器有PXA25x、PXA26x、PXA27x三個(gè)系列,被廣泛應(yīng)用于智能手機(jī)、PDA領(lǐng)域。嵌入式系統(tǒng)原理及設(shè)計(jì)概述第33頁(yè)ARM系列產(chǎn)品表示ARM系列產(chǎn)品很多,以ARM7系列為例,其內(nèi)核ARM7TDMI表示為:·ARM7:ARM系列含有32位整數(shù)運(yùn)算核·T:內(nèi)含16位壓縮指令集Thumb·D:支持片內(nèi)Debug調(diào)試,·M:采取增強(qiáng)型乘法器(Multiplier),·I:內(nèi)含嵌入式ICE宏單元另外,各產(chǎn)品后綴提供了各種形式與功效選擇:·-S:可綜合軟核Softcore·-E:含有DSP功效·-J:Jazeller,允許直接執(zhí)行Java字節(jié)碼嵌入式系統(tǒng)原理及設(shè)計(jì)概述第34頁(yè)對(duì)本部分要求因?yàn)镃語(yǔ)言編譯器已經(jīng)考慮到了許多復(fù)雜原因,所以作為初學(xué)者無(wú)需成為一個(gè)教授就能夠使用LPC2200。不過為了能夠設(shè)計(jì)出可靠應(yīng)用系統(tǒng)和培養(yǎng)學(xué)習(xí)新技術(shù)能力,作為初學(xué)者確實(shí)需要對(duì)CPU(即ARM內(nèi)核)運(yùn)作機(jī)制及其獨(dú)特性能有所了解。同一個(gè)系列ARM(比如都是ARM7或均為V4架構(gòu)),其內(nèi)核體系結(jié)構(gòu)基本相同,了解其中一個(gè),其它也能很快上手。嵌入式系統(tǒng)原理及設(shè)計(jì)概述第35頁(yè)3、ARM7TDMI介紹ARM7TDMI基于ARM體系結(jié)構(gòu)V4版本,是當(dāng)前低端ARM核。含有廣泛應(yīng)用,其最顯著應(yīng)用為數(shù)字移動(dòng)電話。注意:“ARM核”并不是芯片,ARM核與其它部件如RAM、ROM、片內(nèi)外設(shè)組合在一起才能組成現(xiàn)實(shí)芯片。嵌入式系統(tǒng)原理及設(shè)計(jì)概述第36頁(yè)馮·諾依曼體系結(jié)構(gòu)ARM7TDMI處理器使用了馮·諾依曼(VonNeumann)結(jié)構(gòu),指令和數(shù)據(jù)共用一條32位總線。只有裝載、存放和交換指令能夠?qū)Υ娣牌髦袛?shù)據(jù)進(jìn)行訪問。嵌入式系統(tǒng)原理及設(shè)計(jì)概述第37頁(yè)馮·諾依曼體系結(jié)構(gòu)指令存放器控制器數(shù)據(jù)通道輸入輸出中央處理器存放器程序指令0指令1指令2指令3指令4數(shù)據(jù)數(shù)據(jù)0數(shù)據(jù)1數(shù)據(jù)2嵌入式系統(tǒng)原理及設(shè)計(jì)概述第38頁(yè)哈佛體系結(jié)構(gòu)指令存放器控制器數(shù)據(jù)通道輸入輸出CPU程序存放器指令0指令1指令2數(shù)據(jù)存放器數(shù)據(jù)0數(shù)據(jù)1數(shù)據(jù)2地址指令地址數(shù)據(jù)嵌入式系統(tǒng)原理及設(shè)計(jì)概述第39頁(yè)存放器字與半字ARM處理器直接支持字節(jié)(8位)、半字(16位)或者字(32位)數(shù)據(jù)類型。其中能被4整除地址開始連續(xù)4個(gè)字節(jié)組成一個(gè)字,字?jǐn)?shù)據(jù)類型為4個(gè)連續(xù)字節(jié)。從偶數(shù)地址開始連續(xù)2個(gè)字節(jié)組成一個(gè)半字,半字?jǐn)?shù)據(jù)類型為2個(gè)連續(xù)字節(jié)。ARM指令長(zhǎng)度剛好是1個(gè)字。1112342嵌入式系統(tǒng)原理及設(shè)計(jì)概述第40頁(yè)方式半字對(duì)齊字對(duì)齊地址…0x40020x40040x40060x4008……0x40040x40080x400C0x4010…特征bit0=0其它位為任意值bit0=0,bit1=0其它位為任意值字/半字對(duì)齊嵌入式系統(tǒng)原理及設(shè)計(jì)概述第41頁(yè)存放方式小端存放方式大端存放方式字低位字節(jié)嵌入式系統(tǒng)原理及設(shè)計(jì)概述第42頁(yè)流水線技術(shù)流水線(Pipeline)技術(shù):幾個(gè)指令能夠并行執(zhí)行允許多個(gè)操作同時(shí)處理,比逐條指令執(zhí)行要快。提升了CPU運(yùn)行效率譯碼取指執(zhí)行add譯碼取指執(zhí)行sub譯碼取指執(zhí)行cmp時(shí)間AddSubCmp為增加處理器指令流速度,ARM7系列使用3級(jí)流水線.PC指向正被取指指令,而非正在執(zhí)行指令0x4000PC-80x4004PC-40x4008PC周期1周期2周期3周期4周期5當(dāng)前周期PC值=當(dāng)前途序執(zhí)行位置+8第1條指令第2條指令第3條指令嵌入式系統(tǒng)原理及設(shè)計(jì)概述第43頁(yè)預(yù)?。‵etch)譯碼(Decode)執(zhí)行(Execute)預(yù)?。‵etch)譯碼(Decode)執(zhí)行(Execute)訪存(Memory)寫入(Write)預(yù)?。‵etch)譯碼(Decode)發(fā)送(Issue)預(yù)?。‵etch)預(yù)?。‵etch)執(zhí)行(Execute)訪存(Memory)寫入(Write)譯碼(Decode)發(fā)送(Issue)執(zhí)行(Execute)轉(zhuǎn)換(Snny)訪存(Memory)寫入(Write)ARM7ARM9ARM10ARM11嵌入式系統(tǒng)原理及設(shè)計(jì)概述第44頁(yè)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指令。注意:兩個(gè)狀態(tài)之間切換并不影響處理器模式或存放器內(nèi)容。由“當(dāng)前途序狀態(tài)存放器CPSR”中第5位(即控制位T)反應(yīng)處理器正在操作狀態(tài)。嵌入式系統(tǒng)原理及設(shè)計(jì)概述第45頁(yè)ARM指令集與Thumb指令集關(guān)系Thumb指令集含有靈活、小巧特點(diǎn)ARM指令集支持ARM核全部特征,含有高效、快速特點(diǎn)嵌入式系統(tǒng)原理及設(shè)計(jì)概述第46頁(yè)處理器狀態(tài)切換使用BX指令將ARM7TDMI內(nèi)核操作狀態(tài)在ARM狀態(tài)和Thumb狀態(tài)之間進(jìn)行切換(詳見第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)地址標(biāo)號(hào)嵌入式系統(tǒng)原理及設(shè)計(jì)概述第47頁(yè)處理器模式說明備注用戶(usr)正常程序執(zhí)行模式不能直接切換到其它模式系統(tǒng)(sys)運(yùn)行操作系統(tǒng)特權(quán)任務(wù)與用戶模式類似,但含有能夠直接切換到其它模式等特權(quán)快中止(fiq)支持高速數(shù)據(jù)傳輸及通道處理FIQ異常響應(yīng)時(shí)進(jìn)入此模式中止(irq)用于通用中止處理IRQ異常響應(yīng)時(shí)進(jìn)入此模式管理(svc)操作系統(tǒng)保護(hù)模式系統(tǒng)復(fù)位和軟件中止響應(yīng)時(shí)進(jìn)入此模式中止(abt)用于支持虛擬內(nèi)存和/或存放器保護(hù)在ARM7TDMI沒有大用處未定義(und)支持硬件協(xié)處理器軟件仿真未定義指令異常響應(yīng)時(shí)進(jìn)入此模式5處理器模式處理器7種模式usersystemfastinterruptrequestinterruptrequestsupervisorabortunderfined嵌入式系統(tǒng)原理及設(shè)計(jì)概述第48頁(yè)特權(quán)模式處理器模式說明備注用戶(usr)正常程序工作模式不能直接切換到其它模式系統(tǒng)(sys)用于支持操作系統(tǒng)特權(quán)任務(wù)等與用戶模式類似,但含有能夠直接切換到其它模式等特權(quán)快中止(fiq)支持高速數(shù)據(jù)傳輸及通道處理FIQ異常響應(yīng)時(shí)進(jìn)入此模式中止(irq)用于通用中止處理IRQ異常響應(yīng)時(shí)進(jìn)入此模式管理(svc)操作系統(tǒng)保護(hù)代碼系統(tǒng)復(fù)位和軟件中止響應(yīng)時(shí)進(jìn)入此模式中止(abt)用于支持虛擬內(nèi)存和/或存放器保護(hù)在ARM7TDMI沒有大用處未定義(und)支持硬件協(xié)處理器軟件仿真未定義指令異常響應(yīng)時(shí)進(jìn)入此模式除用戶模式外,其它模式均為特權(quán)模式。ARM內(nèi)部存放器和一些片內(nèi)外設(shè)在硬件設(shè)計(jì)上只允許(或者可選為只允許)特權(quán)模式下訪問。另外,特權(quán)模式能夠自由切換處理器模式,而用戶模式不能直接切換到別模式。未定義(und)中止(abt)管理(svc)中止(irq)快中止(fiq)系統(tǒng)(sys)嵌入式系統(tǒng)原理及設(shè)計(jì)概述第49頁(yè)異常模式處理器模式說明備注用戶(usr)正常程序工作模式不能直接切換到其它模式系統(tǒng)(sys)用于支持操作系統(tǒng)特權(quán)任務(wù)等與用戶模式類似,但含有能夠直接切換到其它模式等特權(quán)快中止(fiq)支持高速數(shù)據(jù)傳輸及通道處理FIQ異常響應(yīng)時(shí)進(jìn)入此模式中止(irq)用于通用中止處理IRQ異常響應(yīng)時(shí)進(jìn)入此模式管理(svc)操作系統(tǒng)保護(hù)代碼系統(tǒng)復(fù)位和軟件中止響應(yīng)時(shí)進(jìn)入此模式中止(abt)用于支持虛擬內(nèi)存和/或存放器保護(hù)在ARM7TDMI沒有大用處未定義(und)支持硬件協(xié)處理器軟件仿真未定義指令異常響應(yīng)時(shí)進(jìn)入此模式未定義(und)中止(abt)管理(svc)中止(irq)快中止(fiq)這五種模式稱為異常模式。它們除了能夠經(jīng)過程序切換進(jìn)入外,也能夠由特定異常進(jìn)入。當(dāng)特定異常出現(xiàn)時(shí),處理器進(jìn)入對(duì)應(yīng)模式。每種異常模式都有一些獨(dú)立存放器,以防止異常退出時(shí)用戶模式狀態(tài)不可靠。MSRCPSR_c,#(NoInt|SYS32Mode);從管理模式切換到系統(tǒng)模式MSRCPSR_c,#(NoInt|SVC32Mode);從系統(tǒng)模式切換到管理模式嵌入式系統(tǒng)原理及設(shè)計(jì)概述第50頁(yè)用戶和系統(tǒng)模式處理器模式說明備注用戶(usr)正常程序工作模式不能直接切換到其它模式系統(tǒng)(sys)用于支持操作系統(tǒng)特權(quán)任務(wù)等與用戶模式類似,但含有能夠直接切換到其它模式等特權(quán)快中止(fiq)支持高速數(shù)據(jù)傳輸及通道處理FIQ異常響應(yīng)時(shí)進(jìn)入此模式中止(irq)用于通用中止處理IRQ異常響應(yīng)時(shí)進(jìn)入此模式管理(svc)操作系統(tǒng)保護(hù)代碼系統(tǒng)復(fù)位和軟件中止響應(yīng)時(shí)進(jìn)入此模式中止(abt)用于支持虛擬內(nèi)存和/或存放器保護(hù)在ARM7TDMI沒有大用處未定義(und)支持硬件協(xié)處理器軟件仿真未定義指令異常響應(yīng)時(shí)進(jìn)入此模式這兩種模式都不能由異常進(jìn)入,而且它們使用完全相同存放器組。系統(tǒng)模式是特權(quán)模式,不受用戶模式限制。操作系統(tǒng)在該模式下訪問用戶模式存放器就比較方便,而且操作系統(tǒng)一些特權(quán)任務(wù)能夠使用這個(gè)模式訪問一些受控資源。系統(tǒng)(sys)用戶(usr)嵌入式系統(tǒng)原理及設(shè)計(jì)概述第51頁(yè)6ARM內(nèi)部存放器在ARM7TDMI處理器內(nèi)部有37個(gè)用戶可見存放器。31個(gè)通用32位存放器(包含程序計(jì)數(shù)器PC)6個(gè)狀態(tài)存放器通用存放器包含R0~R15,能夠分為三類:——未分組存放器R0~R7——分組存放器R8~R14——程序計(jì)數(shù)器PC(R15)狀態(tài)存放器:——CPSR(CurrentProgramStatusRegister,當(dāng)前途序狀態(tài)存放器)——SPSR(SavedProgramStatusRegister,備份程序狀態(tài)存放器)在不一樣工作模式和處理器狀態(tài)下,程序員能夠訪問存放器不盡相同。嵌入式系統(tǒng)原理及設(shè)計(jì)概述第52頁(yè)存放器類別存放器在匯編中名稱各模式下實(shí)際訪問存放器用戶系統(tǒng)管理中止未定義中止快中止通用存放器和程序計(jì)數(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無(wú)SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiqARM狀態(tài)各模式下存放器嵌入式系統(tǒng)原理及設(shè)計(jì)概述第53頁(yè)存放器類別存放器在匯編中名稱各模式下實(shí)際訪問存放器用戶系統(tǒng)管理中止未定義中止快中止通用存放器和程序計(jì)數(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無(wú)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個(gè)存放器,分成兩大類:31個(gè)通用32位存放器;6個(gè)狀態(tài)存放器。嵌入式系統(tǒng)原理及設(shè)計(jì)概述第54頁(yè)存放器類別存放器在匯編中名稱各模式下實(shí)際訪問存放器用戶系統(tǒng)管理中止未定義中止快中止通用存放器和程序計(jì)數(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無(wú)SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiq無(wú)CPSRR15R14R13R12R11R10R9R8R7R6R5R4R3R2R1R0用戶無(wú)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)原理及設(shè)計(jì)概述第55頁(yè)存放器類別存放器在匯編中名稱各模式下實(shí)際訪問存放器用戶系統(tǒng)管理中止未定義中止快中止通用存放器和程序計(jì)數(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無(wú)SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiq普通通用存放器R13_fiqR13_irqR13_undR13_abtR13_svcR13R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8R7R6R5R4R3R2R1R0在匯編語(yǔ)言中存放器R0~R13為保留數(shù)據(jù)或地址值通用存放器。它們是完全通用存放器,不會(huì)被體系結(jié)構(gòu)作為特殊用途,而且可用于任何使用通用存放器指令。嵌入式系統(tǒng)原理及設(shè)計(jì)概述第56頁(yè)存放器類別存放器在匯編中名稱各模式下實(shí)際訪問存放器用戶系統(tǒng)管理中止未定義中止快中止通用存放器和程序計(jì)數(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無(wú)SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiq普通通用存放器R13_fiqR13_irqR13_undR13_abtR13_svcR13R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8R7R6R5R4R3R2R1R0R7R6R5R4R3R2R1R0其中R0~R7為未分組存放器,也就是說對(duì)于任何處理器模式,這些存放器都對(duì)應(yīng)于相同32位物理存放器。嵌入式系統(tǒng)原理及設(shè)計(jì)概述第57頁(yè)存放器類別存放器在匯編中名稱各模式下實(shí)際訪問存放器用戶系統(tǒng)管理中止未定義中止快中止通用存放器和程序計(jì)數(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無(wú)SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiq普通通用存放器R14_fiqR14_irqR14_undR14_abtR14_svcR14R13_fiqR13_irqR13_undR13_abtR13_svcR13R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8存放器R8~R14為分組存放器。它們所對(duì)應(yīng)物理存放器取決于當(dāng)前處理器模式,幾乎全部允許使用通用存放器指令都允許使用分組存放器嵌入式系統(tǒng)原理及設(shè)計(jì)概述第58頁(yè)存放器類別存放器在匯編中名稱各模式下實(shí)際訪問存放器用戶系統(tǒng)管理中止未定義中止快中止通用存放器和程序計(jì)數(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無(wú)SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiq普通通用存放器R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8存放器R8~R12有兩個(gè)分組物理存放器。一個(gè)用于除FIQ模式之外全部存放器模式,另一個(gè)用于FIQ模式。這么在發(fā)生FIQ中止后,能夠加速FIQ處理速度。嵌入式系統(tǒng)原理及設(shè)計(jì)概述第59頁(yè)存放器類別存放器在匯編中名稱各模式下實(shí)際訪問存放器用戶系統(tǒng)管理中止未定義中止快中止通用存放器和程序計(jì)數(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無(wú)SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiq普通通用存放器存放器R13、R14分別有6個(gè)分組物理存放器。一個(gè)用于用戶和系統(tǒng)模式,其余5個(gè)分別用于5種異常模式。R14_fiqR14_irqR14_undR14_abtR14_svcR14R13_fiqR13_irqR13_undR13_abtR13_svcR13嵌入式系統(tǒng)原理及設(shè)計(jì)概述第60頁(yè)存放器類別存放器在匯編中名稱各模式下實(shí)際訪問存放器用戶系統(tǒng)管理中止未定義中止快中止通用存放器和程序計(jì)數(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無(wú)SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiq堆棧指針存放器R13(SP)存放器R13常作為堆棧指針(SP)。在ARM指令集當(dāng)中,沒有以特殊方式使用R13指令或其它功效,只是習(xí)慣上都這么使用。不過在Thumb指令集中存在使用R13指令。嵌入式系統(tǒng)原理及設(shè)計(jì)概述第61頁(yè)存放器類別存放器在匯編中名稱各模式下實(shí)際訪問存放器用戶系統(tǒng)管理中止未定義中止快中止通用存放器和程序計(jì)數(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無(wú)SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiq鏈接存放器R14(LR)R14為鏈接存放器(LR),在結(jié)構(gòu)上有兩個(gè)特殊功效:在每種模式下,模式本身R14版本用于保留子程序返回地址;當(dāng)發(fā)生異常時(shí),將R14對(duì)應(yīng)異常模式版本設(shè)置為異常返回地址(有些異常有一個(gè)小固定偏移量)。嵌入式系統(tǒng)原理及設(shè)計(jì)概述第62頁(yè)Lable程序A程序BR14R14(LR)存放器與子程序調(diào)用BLLable地址A???MOVPC,LRR14(地址A)Lable???1.程序A執(zhí)行過程中調(diào)用程序B;操作流程2.程序跳轉(zhuǎn)至標(biāo)號(hào)Lable,執(zhí)行程序B。同時(shí)硬件將“BLLable”指令下一條指令所在地址存入R14(LR);3.程序B執(zhí)行最終,將R14存放器內(nèi)容放入PC,返回程序A;嵌入式系統(tǒng)原理及設(shè)計(jì)概述第63頁(yè)R14存放器與異常發(fā)生異常發(fā)生時(shí),程序要跳轉(zhuǎn)至異常服務(wù)程序,對(duì)返回地址處理與子程序調(diào)用類似,都是由硬件完成。區(qū)分在于有些異常有一個(gè)小常量偏移。嵌入式系統(tǒng)原理及設(shè)計(jì)概述第64頁(yè)R14存放器注意關(guān)鍵點(diǎn)R14R14_irq用戶模式下程序IRQ模式下程序AareturnB...XA地址A地址A1.執(zhí)行用戶模式下程序;2.發(fā)生IRQ中止,硬件將某個(gè)地址存入IRQ模式下R14_irq存放器,用戶模式下R14沒有被破壞;3.IRQ服務(wù)程序A執(zhí)行完成,將R14_irq存放器內(nèi)容減去某個(gè)常量后存入PC,返回之前被中止程序;未被破壞R14_irq嵌入式系統(tǒng)原理及設(shè)計(jì)概述第65頁(yè)R14存放器注意關(guān)鍵點(diǎn)R14R14_irq用戶模式下程序IRQ模式下程序AaB...XA地址A地址A1.執(zhí)行用戶模式下程序;2.發(fā)生IRQ中止,硬件將某個(gè)地址存入IRQ模式下R14_irq存放器,用戶模式下R14沒有被破壞;3.IRQ服務(wù)程序A執(zhí)行完成,將R14_irq存放器內(nèi)容減去某個(gè)常量后存入PC,返回之前被中止程序;未被破壞IRQ模式下程序BareturnB...XA地址B地址B4.假如在IRQ處理程序中打開IRQ中止,而且再次發(fā)生IRQ中止;5.硬件將返回地址保留在R14_irq存放器中,原來(lái)保留返回地址將被覆蓋,造成錯(cuò)誤;R14_irq被破壞6.在程序B返回到程序A,然后在返回到用戶模式下被中止程序時(shí),發(fā)生錯(cuò)誤,將不能正確返回;returnreturn處理方法是確保R14對(duì)應(yīng)版本在發(fā)生中止嵌套時(shí)不再保留任何有意義值(將R14入棧),或者切換到其它處理器模式下。嵌入式系統(tǒng)原理及設(shè)計(jì)概述第66頁(yè)存放器類別存放器在匯編中名稱各模式下實(shí)際訪問存放器用戶系統(tǒng)管理中止未定義中止快中止通用存放器和程序計(jì)數(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無(wú)SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiq程序計(jì)數(shù)器R15(PC)存放器R15為程序計(jì)數(shù)器(PC),它指向正在取指地址。能夠認(rèn)為它是一個(gè)通用存放器,不過對(duì)于它使用有許多與指令相關(guān)限制或特殊情況。假如R15使用方式超出了這些限制,那么結(jié)果將是不可預(yù)測(cè)。嵌入式系統(tǒng)原理及設(shè)計(jì)概述第67頁(yè)讀R15限制正常操作時(shí),從R15讀取值是處理器正在取指地址,即當(dāng)前正在執(zhí)行指令地址加上8個(gè)字節(jié)(兩條ARM指令長(zhǎng)度)。因?yàn)锳RM指令總是以字為單位,所以R15存放器最低兩位總是為0。LDRR0,PC??????PCPC-4PC-8正在執(zhí)行正在譯碼正在取指流水線狀態(tài)地址程序代碼嵌入式系統(tǒng)原理及設(shè)計(jì)概述第68頁(yè)讀R15限制當(dāng)使用STR或STM指令保留R15時(shí),會(huì)有一個(gè)例外。這些指令可能將當(dāng)前指令地址加8字節(jié)或加12字節(jié)保留(未來(lái)可能還有其它數(shù)字)。偏移量是8還是12取決于詳細(xì)ARM芯片,不過對(duì)于一個(gè)確定芯片,這個(gè)值是一個(gè)常量。所以最好防止使用STR和STM指令來(lái)保留R15,假如極難做到,那么應(yīng)該在程序中計(jì)算出該芯片偏移量。嵌入式系統(tǒng)原理及設(shè)計(jì)概述第69頁(yè)讀R15限制計(jì)算偏移量(PC值和當(dāng)前指令地址差)程序代碼:SUB R1,PC,#4 ;R1=下面STR指令地址STR PC,[R0] ;保留STR指令地址+偏移量LDR R0,[R0] ;然后重裝SUB R0,R0,R1 ;計(jì)算偏移量04812ARM狀態(tài)嵌入式系統(tǒng)原理及設(shè)計(jì)概述第70頁(yè)寫R15限制正常操作時(shí),寫入R15值被看成一個(gè)指令地址,程序從這個(gè)地址處繼續(xù)執(zhí)行(相當(dāng)于執(zhí)行一次無(wú)條件跳轉(zhuǎn))。嵌入式系統(tǒng)原理及設(shè)計(jì)概述第71頁(yè)寫R15限制因?yàn)锳RM指令以字節(jié)為邊界,所以寫入R15值最低兩位通常為0b00。詳細(xì)規(guī)則取決于內(nèi)核結(jié)構(gòu)版本:在ARM結(jié)構(gòu)V3版及以下版本中,寫入R15值最低兩位被忽略,所以跳轉(zhuǎn)地址由指令實(shí)際目標(biāo)地址(寫入R15值)和0xFFFFFFFC相與得到;在ARM結(jié)構(gòu)V4版及以上版本中,寫入R15值最低兩位為0,假如不是,結(jié)果將不可預(yù)測(cè)。嵌入式系統(tǒng)原理及設(shè)計(jì)概述第72頁(yè)存放器類別存放器在匯編中名稱各模式下實(shí)際訪問存放器用戶系統(tǒng)管理中止未定義中止快中止通用存放器和程序計(jì)數(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無(wú)SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiq程序狀態(tài)存放器CPSR存放器CPSR為程序狀態(tài)存放器,在異常模式中,另外一個(gè)存放器“程序狀態(tài)保留存放器(SPSR)”能夠被訪問。每種異常都有自己SPSR,在進(jìn)入異常時(shí)它保留CPSR當(dāng)前值,異常退出時(shí)可經(jīng)過它恢復(fù)CPSR。詳細(xì)描述參看3.8小節(jié)。嵌入式系統(tǒng)原理及設(shè)計(jì)概述第73頁(yè)ARM指令集全部指令都能夠被有條件執(zhí)行,簡(jiǎn)稱條件執(zhí)行。在以往微控制器中,只有條件轉(zhuǎn)移指令或位測(cè)試和設(shè)置一類指令是條
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- Rilmazolam-生命科學(xué)試劑-MCE-2242
- cis-N-Acetyl-S-4-hydroxy-2-buten-1-yl-L-cysteine-d3-生命科學(xué)試劑-MCE-7054
- 3-4-MDPA-hydrochloride-生命科學(xué)試劑-MCE-3492
- 二零二五年度離婚后財(cái)產(chǎn)分割與共同生活費(fèi)用承擔(dān)協(xié)議
- 2025年度養(yǎng)老服務(wù)機(jī)構(gòu)專用房產(chǎn)租賃協(xié)議
- 二零二五年度貨車運(yùn)輸貨物跟蹤與反饋合同
- 2025年度股份占比協(xié)議書模板:知識(shí)產(chǎn)權(quán)入股股份占比協(xié)議書
- 二零二五年度企業(yè)食堂衛(wèi)生安全責(zé)任合同
- 2025年度越野輪車銷售與服務(wù)協(xié)議
- 跨學(xué)科知識(shí)體系的整合與實(shí)踐
- 綠色建筑項(xiàng)目造價(jià)咨詢服務(wù)方案
- DB34T4826-2024畜禽養(yǎng)殖業(yè)污染防治技術(shù)規(guī)范
- 腰麻課件教學(xué)課件
- 石油化工企業(yè)環(huán)境保護(hù)管理制度預(yù)案
- 2024年甘肅省高考?xì)v史試卷(含答案解析)
- 2024年山東省煙臺(tái)市初中學(xué)業(yè)水平考試地理試卷含答案
- 抗腫瘤治療所致惡心嘔吐護(hù)理
- 2024年廣東省中考地理試題(含解析)
- 西安經(jīng)濟(jì)技術(shù)開發(fā)區(qū)管委會(huì)招聘考試真題
- 冀教版小學(xué)英語(yǔ)六年級(jí)下冊(cè)全冊(cè)教案
- 2024人工智能開源大模型生態(tài)體系研究報(bào)告
評(píng)論
0/150
提交評(píng)論