




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、實(shí)驗(yàn)二ARM體系結(jié)構(gòu)及GPIO一實(shí)驗(yàn)?zāi)康牧私獠⒄莆誂RM7芯片的體系結(jié)構(gòu),能熟練的對(duì)個(gè)端口進(jìn)行操作,熟悉嵌入式 系統(tǒng)設(shè)計(jì)和調(diào)試的基本技術(shù)。二實(shí)驗(yàn)任務(wù)1熟悉和掌握ADS1.2軟件的使用。2利用ARM實(shí)驗(yàn)開發(fā)平臺(tái),了解系統(tǒng)啟動(dòng)流程,端口控制程序,并完成調(diào)試 工作。三實(shí)驗(yàn)設(shè)備PC機(jī)一臺(tái)ARM實(shí)驗(yàn)開發(fā)板及相關(guān)設(shè)備一套ADS1.2開發(fā)軟件一套四實(shí)驗(yàn)原理ARM體系結(jié)構(gòu)概述從最初開發(fā)到現(xiàn)在,ARM指令集體系結(jié)構(gòu)有了巨大的改進(jìn),并在不斷完善和 發(fā)展。為了清楚地表示每個(gè)ARM應(yīng)用實(shí)例所使用的指令集,ARM公司定義了5種 主要的ARM指令集體系結(jié)構(gòu)版本,以版本號(hào)vlv5表示。版本1(v1 )在ARM 1中使用,由
2、于只有26位的尋址空間(現(xiàn)已廢棄不用) 從為商業(yè)化,該版本包括;基本的數(shù)據(jù)處理指令(不包括乘法);字節(jié)、字和半字加載、存儲(chǔ)指令;分支指令(branch),包括在子程序調(diào)用中使用的分支和鏈接指令;在操作系統(tǒng)調(diào)用中使用的軟件中斷指令;版本2(v2)依然只有26位尋址空間(現(xiàn)己廢棄不用),但相對(duì)版本1增 加了以下內(nèi)容:乘法和乘加指令;協(xié)處理器支持;快速中斷模式中的兩個(gè)以上的分組寄存器;原子性加載存儲(chǔ)指令SWP和SWPB(稍后版本中稱作v2a);版本3(v3)將尋址范圍擴(kuò)展到32位;先前存儲(chǔ)于R15的程序狀態(tài)信息 存儲(chǔ)在新的當(dāng)前程序狀態(tài)寄存器(CPSR)中,且增加了程序狀態(tài)保存寄存器 (SPSR),以
3、便出現(xiàn)異常時(shí)保存CPSR中的內(nèi)容。另外,版本3還增加了兩種處理 器模式,以便在操作系統(tǒng)代碼中有效地使用數(shù)據(jù)中止(Data Abort)、取值中止 (Prefetch Abort)和未定義指令異常(Undefined Instruction Exception)。相 應(yīng)地,版本3指令集發(fā)生如下改變:增加了兩個(gè)指令MRS和MSR允許訪問新的CPSR和SPSR寄存器;修改過去用于異常返回指令的功能,以便繼續(xù)使用。版本4(v4)不再強(qiáng)制要求與以前的版本兼容以支持26位體系結(jié)構(gòu),清 楚地指明哪個(gè)指令會(huì)引起未定義指令異常發(fā)生。版本4在版本3的基礎(chǔ)上增加了 如下內(nèi)容:半字加載/存儲(chǔ)指令;字節(jié)和半字的加載和符
4、號(hào)擴(kuò)展(sign-extend)指令;在T變量中,轉(zhuǎn)換到Thumb狀態(tài)的指令;使用用戶(User)模式寄存器的新的特權(quán)處理器模式。版本5(v5)在版本4的基礎(chǔ)上,對(duì)現(xiàn)有指令的定義進(jìn)行了必要的修正, 對(duì)版本4體系結(jié)構(gòu)進(jìn)行了擴(kuò)展,并增加了指令,具體如下:改進(jìn)在T變量中ARM/Thumb狀態(tài)之間的切換效率;允許非丁變量和T變量一樣,使用相同的代碼生成技術(shù);增加討”數(shù)的導(dǎo)零指令,允許更有效的整數(shù)除法和中斷優(yōu)先程序;增加軟件斷點(diǎn)指令;增加更多可選擇的指令以方便協(xié)處理器設(shè)計(jì)者:對(duì)乘法指令如何設(shè)置標(biāo)志進(jìn)行了嚴(yán)格的定義。數(shù)據(jù)類型ARM處理器支持下列數(shù)據(jù)類型:Byte字節(jié),8位Halfword 半字,16位(半
5、寧必須和2字節(jié)邊界對(duì)準(zhǔn))Word 字,32位(字必須與4字節(jié)邊界對(duì)準(zhǔn))ARM微處理器的工作狀態(tài)ARM微處理器的工作狀態(tài)一般有兩種,并可在兩種狀態(tài)之間切換:ARM狀態(tài):此時(shí)處理器執(zhí)行32位的字對(duì)齊的ARM指令;Thumb狀態(tài),:此時(shí)處理器執(zhí)行16位的、半字對(duì)齊的Thumb指令。THUMB指令是ARM指令的子集,它們之間能夠相互調(diào)用,只要遵循一定的調(diào) 用規(guī)則。當(dāng)操作數(shù)寄存器的狀態(tài)位(位0)為1時(shí),能夠采用執(zhí)行BX指令的方 法,使微處理器從ARM狀態(tài)切換到Thumb狀態(tài)。當(dāng)處理器處于Thumb狀態(tài)時(shí)發(fā)生 異常(如IRQ、FIQ、Undef、Abort、SWI等),則異常處理返回時(shí),自動(dòng)切 換到Thu
6、mb狀態(tài)。當(dāng)操作數(shù)寄存器的狀態(tài)位為0時(shí),執(zhí)行BX指令時(shí)能夠使微處 理器從Thumb狀態(tài)切換到ARM狀態(tài)。在處理器進(jìn)行異常處理時(shí),把PC指針放入 異常模式鏈接寄存器中,并從異常向量地址開始執(zhí)行程序,也能夠使處理器切 換到ARM狀態(tài)。處理器模式ARM體系結(jié)構(gòu)支持7種處理器模式,軟件控制、外部中斷和異常處理都能夠 使模式發(fā)生改變。用戶模式(usr) : ARM處理器正常的程序執(zhí)行狀態(tài);快速中斷模式(fiq):用于高速數(shù)據(jù)傳輸或通道處理;普通中斷模式(irq):用于通用的中斷處理;服務(wù)模式(svc):操作系統(tǒng)使用的保護(hù)模式;中止模式(abt):用于虛擬存儲(chǔ)及存儲(chǔ)保護(hù);未定義模式(und):當(dāng)出現(xiàn)未定義
7、指令終止時(shí)進(jìn)入該模式;系統(tǒng)模式(sys):運(yùn)行具有特權(quán)的操作系統(tǒng)任務(wù);除了用戶模式之外的其它6種處理器模式稱為特權(quán)模式。特權(quán)模式下,程序 能夠訪問所有的系統(tǒng)資源,也能夠任意地進(jìn)行處理器模式的切換。特權(quán)模式中, 除系統(tǒng)模式外,其它5種模式又稱為異常模式。大多數(shù)的用戶程序運(yùn)行在用戶模 式下,此時(shí),應(yīng)用程序不能夠訪問一些受操作系統(tǒng)保護(hù)的系統(tǒng)資源,應(yīng)用程序 也不能直接進(jìn)行處理器模式的切換。用戶模式下,當(dāng)需要進(jìn)行處理器模式切換時(shí), 應(yīng)用程序能夠產(chǎn)生異常處理,在異常處理中進(jìn)行處理器模式的切換。處理器模式能夠經(jīng)過軟件進(jìn)行切換,也能夠經(jīng)過外部中斷或者異常處理過 程進(jìn)行切換。當(dāng)應(yīng)用程序發(fā)生異常中斷時(shí),處理器進(jìn)入
8、相應(yīng)的異常模式。在每一 種異常模式下都有一組寄存器,供相應(yīng)的異常處理程序使用,這樣就能夠保證 在進(jìn)入異常模式時(shí),用戶模式下的寄存器不被破壞。系統(tǒng)模式并不是經(jīng)過異常進(jìn)入的,它和用戶模式具有完全一樣的寄存器???是系統(tǒng)模式屬于特權(quán)模式,能夠訪問所有的系統(tǒng)資源,也能夠直接進(jìn)行處理器 模式切換。它主要供操作系統(tǒng)任務(wù)使用。一般操作系統(tǒng)的任務(wù)需要訪問所有的系 統(tǒng)資源,同時(shí)該任務(wù)依然使用用戶模式的寄存器組,而不是使用異常模式下相 應(yīng)的寄存器組,這樣能夠保證當(dāng)異常中斷發(fā)生時(shí)任務(wù)狀態(tài)不被破壞。ARM微處理器的存儲(chǔ)器格式ARM體系結(jié)構(gòu)所支持的最大尋址空間為4GB。將存儲(chǔ)器看作是從零地址開始的 字節(jié)的線性組合。從零
9、字節(jié)到三字節(jié)放置第一個(gè)存儲(chǔ)的字?jǐn)?shù)據(jù),從第四個(gè)字節(jié)到 第七個(gè)字節(jié)放置第二個(gè)存儲(chǔ)的字?jǐn)?shù)據(jù),依次排列。ARM體系結(jié)構(gòu)能夠用兩種方法 存儲(chǔ)字?jǐn)?shù)據(jù),稱之為大端格式和小端格式。大端格式:在這種格式中,字?jǐn)?shù)據(jù)的高字節(jié)存儲(chǔ)在低地址中,而字?jǐn)?shù)據(jù)的 低字節(jié)則存放在高地址中。小端格式:與大端存儲(chǔ)格式相反,在小端存儲(chǔ)格式中,低地址中存放的是 字?jǐn)?shù)據(jù)的低字節(jié), 高地址存放的是字?jǐn)?shù)據(jù)的高字節(jié)。ARM微處理器的指令長度能夠是32位(在ARM狀態(tài)下),也能夠?yàn)?6位(在 Thumb狀態(tài)下)ARM微處理器中支持字節(jié)(8位)、半字(16位)、字(32位) 三種數(shù)據(jù)類型,其中,字需要4字節(jié)對(duì)齊(地址的低兩位為0)、半字需要2字節(jié)
10、對(duì)齊(地址的最低位為0)寄存器ARM處理器共具有37個(gè)32位的寄存器:31個(gè)通用寄存器,6個(gè)狀態(tài)寄存器, 但并不是所有的寄存器都能總是被訪問到。在某一時(shí)刻寄存器能否訪問,由處理 器的當(dāng)前工作狀態(tài)和操作模式?jīng)Q定。根據(jù)微處理器內(nèi)核的當(dāng)前工作狀態(tài),可分別訪問ARM狀態(tài)寄存器集和Thumb 狀態(tài)寄存器集。ARM狀態(tài)寄存器集包含16個(gè)能夠直接訪問的寄存器:R0R15。 除R15以外,其余的寄存器為通用寄存器,可用于存放地址或數(shù)據(jù)值R16寄存 器是當(dāng)前程序狀態(tài)寄存器CPSR,用于保存狀態(tài)信息。詳細(xì)的說明如下:ARM狀態(tài)下的寄存器組織通用寄存器:通用寄存器包括R0R15,可分為三類未分組寄存器R0R7在所有
11、的運(yùn)行模式下,未分組寄存器都指向同一個(gè)物理寄存器,她們未被 系統(tǒng)用作特殊的用途,因此,在中斷或異常處理進(jìn)行運(yùn)行模式轉(zhuǎn)換時(shí),由于不 同的處理器運(yùn)行模式均使用相同的物理寄存器,可能會(huì)造成寄存器中數(shù)據(jù)的破 壞,這一點(diǎn)在進(jìn)行程序設(shè)計(jì)時(shí)應(yīng)引起注意。分組寄存器R8R14每次所訪問的物理寄存器與處理器當(dāng)前的運(yùn)行模式有關(guān)。當(dāng)使用fiq模式時(shí), 訪問寄存器R8_fiqR12_fiq;當(dāng)使用除fiq模式以外的其它模式時(shí),訪問寄存 器R8_usrR12_usr。R13、R14:每個(gè)寄存器對(duì)應(yīng)6個(gè)不同的物理寄存器。其中的一個(gè)是用戶模式 與系統(tǒng)模式共用,另外5個(gè)物理寄存器對(duì)應(yīng)于其它5種不同的運(yùn)行模式。采用以下 的記號(hào)來
12、區(qū)分不同的物理寄存器:R13_R14_mode 為以下幾種之一:usr、 fiq、 irq、 svc、 abt、 und。R13在ARM指令中常見作堆棧指針,但這只是一種習(xí)慣用法,用戶也可使用 其它的寄存器作為堆棧指針。在Thumb指令集中,某些指令強(qiáng)制性的要求使用R13 作為堆棧指針。由于處理器的每種運(yùn)行模式均有自己獨(dú)立的物理寄存器R13,在 初始化部分,都要初始化每種模式下的R13,這樣,當(dāng)程序的運(yùn)行進(jìn)入異常模式 時(shí),能夠?qū)⑿枰Wo(hù)的寄存器放入R13所指向的堆棧,而當(dāng)程序從異常模式返回 時(shí),則從對(duì)應(yīng)的堆棧中恢復(fù)。R14也稱作子程序連接寄存器或連接寄存器LR。當(dāng)執(zhí)行BL子程序調(diào)用指令時(shí), 能
13、夠從R14中得到R15(程序計(jì)數(shù)器PC)的備份。其它情況下,R14用作通用寄存 器。在每一種運(yùn)行模式下,都可用R14保存子程序的返回地址,當(dāng)用BL或BLX指令 調(diào)用子程序時(shí),將PC的當(dāng)前值拷貝給R14,執(zhí)行完子程序后,又將R14的值拷貝 回PC,即可完成子程序的調(diào)用返回。程序計(jì)數(shù)器PC(R15)R15雖然也可用作通用寄存器,但一般不這么使用,因?yàn)閷?duì)R15的使用有一 些特殊的限制,當(dāng)違反了這些限制時(shí),程序的執(zhí)行結(jié)果是未知的。由于ARM體系 結(jié)構(gòu)采用了多級(jí)流水線技術(shù),對(duì)于ARM指令集而言,PC總是指向當(dāng)前指令的下兩 條指令的地址,即PC的值為當(dāng)前指令的地址值加8個(gè)字節(jié)。程序狀態(tài)寄存器(CPSR/S
14、PSR)寄存器R16用作CPSR(當(dāng)前程序狀態(tài)寄存器),CPSR可在任何運(yùn)行模式下被 訪問,它包括條件標(biāo)志位、中斷禁止位、當(dāng)前處理器模式標(biāo)志位,以及其它一 些相關(guān)的控制和狀態(tài)位。每一種運(yùn)行模式下又都有一個(gè)專用的物理狀態(tài)寄存器, 稱為SPSR (備份的程序狀態(tài)寄存器),異常發(fā)生時(shí),SPSR用于保存CPSR的值, 從異常退出時(shí)則可由SPSR來恢復(fù)CPSR。由于用戶模式和系統(tǒng)模式不屬于異常模 式,她們沒有SPSR,當(dāng)在這兩種模式下訪問SPSR,結(jié)果是未知的。程序狀態(tài)寄存器的每一位的安排:N、Z、C、V均為條件碼標(biāo)志位。它們的內(nèi)容可被算術(shù)或邏輯運(yùn)算的結(jié)果所改變,而且能夠決定某條指令是否被執(zhí)行。在ARM狀態(tài)下,絕大多數(shù)的指令都是有條件執(zhí)行的。在Thumb狀態(tài)下,僅有分支指令是有條件執(zhí)行的。標(biāo)志位的含義如下:標(biāo)志 位含義N當(dāng)用兩個(gè)補(bǔ)碼表示的帶符號(hào)數(shù)進(jìn)行運(yùn)算時(shí),N=1表示運(yùn) 算的結(jié)果為負(fù)麴N二。表示運(yùn)算的結(jié)果為正數(shù)或零;Z2=1表示運(yùn)算的結(jié)果為零;表示運(yùn)算的結(jié)果為非C笳法運(yùn)算結(jié)果進(jìn)位時(shí),C=b減桂運(yùn)算借位時(shí)C二0; 移位操作的非加/減運(yùn)算指令,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 古箏教室消防管理制度
- 公司婚嫁產(chǎn)假管理制度
- 培訓(xùn)機(jī)構(gòu)臺(tái)賬管理制度
- 醫(yī)院器械質(zhì)量管理制度
- 單位食堂雜工管理制度
- 印刷車間臺(tái)賬管理制度
- 高效備考軟件測試試題及答案大全
- 家庭保潔安全管理制度
- 公司應(yīng)收匯票管理制度
- 理論聯(lián)系實(shí)際談一談如何傳承發(fā)展中華優(yōu)-秀傳統(tǒng)文化?參考答案
- 順路接送免責(zé)協(xié)議書
- 《手術(shù)室圍術(shù)期的護(hù)理》課件
- 2025年企業(yè)合規(guī)管理工作計(jì)劃范文
- 施工安全常識(shí)試題及答案
- 2025屆湖北省T8聯(lián)盟壓軸卷1英語試題
- 泳池負(fù)責(zé)人試題及答案
- 2025年跨文化溝通能力考試試卷及答案
- 聾校義務(wù)教育數(shù)學(xué)課程標(biāo)準(zhǔn)解讀與實(shí)施
- 《企業(yè)數(shù)據(jù)中心網(wǎng)絡(luò)架構(gòu)》課件
- 2025新版工程咨詢合同
評(píng)論
0/150
提交評(píng)論