ARM處理器工作模式實驗_第1頁
ARM處理器工作模式實驗_第2頁
ARM處理器工作模式實驗_第3頁
ARM處理器工作模式實驗_第4頁
ARM處理器工作模式實驗_第5頁
已閱讀5頁,還剩4頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 ARM處理器工作模式實驗 一、實驗目的 通過實驗掌握學會使用MSR/MRS指令實現(xiàn)ARM處理器工作模式的切換,觀察不同模式下的寄存器,加深對CPU結構的理解。 通過實驗掌握ld中如何使用命令行指定代碼段起始地址。 二、實驗設備 硬件:PC機。 軟件:Embest IDE Pr0 2004集成開發(fā)環(huán)境,Windows 98/2000/NT/XP。 三、實驗內(nèi)容 通過ARM匯編指令,在各種處理器模式下切換并觀察各種模式下寄存器的區(qū)別。 掌握ARM不同模式的進入與退出。 四、實驗原理 1ARM處理器模式 ARM體系結構支持表3-2所列的7種處理器模式。 在軟件控制下可以改變模式,外部中斷或異常處理

2、也可以引起模式發(fā)生改變。 大多數(shù)應用程序在用戶模式下執(zhí)行。當處理器工作在用戶模式時,正在執(zhí)行的程序不能訪問某些被保護的系統(tǒng)資源,也不能改變模式,除非異常發(fā)生。這允許適當編寫操作系統(tǒng)來控制系統(tǒng)資源的使用。 除用戶模式外的其他模式稱為“特權模式”,它們可以自由地訪問系統(tǒng)資源和改變模式。 其中的5種稱為“異常模式”,即FIQ(Fast Interrupt Request)、IRQ(lnterrupt Request)、管理(Supervisor)、中止(Abort)和未定義(Undefined)。 當特定的異常出現(xiàn)時,進入相應的模式。每種模式都有某些附加的寄存器,以避免異常出現(xiàn)時用戶模式的狀態(tài)不可靠

3、。 剩下的模式是“系統(tǒng)模式”。僅ARM體系結構V4以及以上的版本有該模式。不能由于任何異常而進入該模式。它與用戶模式有完全相同的寄存器,但它是特權模式,不受用戶模式的限制。它供需要訪問系統(tǒng)資源的操作系統(tǒng)任務使用,但希望避免使用與異常模式有關的附加寄存器。避免使用附加寄存器保證了當任何異常出現(xiàn)時,都不會使任務的狀態(tài)不可靠。 2程序狀態(tài)寄存器 3.2節(jié)提到的程序狀態(tài)寄存器CPSR和SPSR包含了條件碼標志、中斷禁止位、當 前處理器模式以及其他狀態(tài)和控制信息。每種異常模式都有一個程序狀態(tài)保存寄存器SPSR。當異常出現(xiàn)時,SPSR用于保留CPSR的狀態(tài)。 3本實驗涉及到的Id命令行參數(shù) -Ttext

4、org 使用org作為輸出文件的text段的起始地址。org必須是十六進制數(shù)。 實驗操作步驟 (1)參考3.1節(jié)實驗A的步驟(1)建立一個新的工程,命名為ARMMode。 (2)參考3.1節(jié)實驗A的步驟(2)和實驗參考程序編輯輸入源代碼。編輯完畢后,保存文件為ARMMode.s。 (3)選擇菜單項Project- Add To Project- Files,或在工程管理窗口右擊選擇快搪菜單命令,打開文件選擇對話框,在工程目錄下選擇剛才建立的源文件ARMMode.s。 (4)參考3.1節(jié)實驗A的步驟(4)進行相應設置。 注意:在鏈接器設置選項卡的Link Options框內(nèi),手動加上“-Ttex

5、t Ox0”,即指定代碼段起始地址為Ox0,如圖3-8所示。 (5)參考3.1節(jié)實驗A的步驟(5)生成目標代碼。 (6)在調(diào)試設置選項卡中的Download address文本框內(nèi),輸入的下載地址應該與鏈接器設置中指定的代碼段起始地址相同,以保證程序能夠正常執(zhí)行,如圖3-9所示。 (7)選擇菜單項DebugRemote Connect連接軟件仿真器,執(zhí)行Download命令下載程序,并打開寄存器窗口。 (8)單步執(zhí)行,觀察并記錄寄存器RO和CPSR值的變化,以及每次變化后執(zhí)行寄存器賦值后36個寄存器值的變化情況,尤其注意各個模式下R13和R14的值。 結合實驗內(nèi)容和相關資料,觀察程序運行,通過

6、實驗加深理解ARM各種狀態(tài)下寄存器的使用。 理解和掌握試驗后,完成實驗練習題。 五、實驗結果 實驗參考程序 .global _start .text _start: b Reset_Handler Undefined_Handler: b Undefined_Handler b SWI_Handler Prefetch_Handler: b Prefetch_Handler Abort_Handler: b Abort_Handler nop /* Reserved vector */ IRQ_Handler: b IRQ_Handler FIQ_Handler: b FIQ_Handler

7、SWI_Handler: mov pc, lr Reset_Handler: mrs r0,cpsr /* read CPSR value */ bic r0,r0,#0 x1f /* clear low 5 bit */ orr r0,r0,#0 x1f /* set the mode as System mode */ msr cpsr,r0 /* write the data into CPSR */ mov r0, #1 /* initialization the register in System mode */ mov r1, #2 mov r2, #3 mov r3, #4 m

8、ov r4, #5 mov r5, #6 mov r6, #7 mov r7, #8 mov r8, #9 mov r9, #10 mov r10, #11 mov r11, #12 mov r12, #13 mov r13, #14 mov r14, #15 /* into FIQ mode */ mrs r0,cpsr bic r0,r0,#0 x1f orr r0,r0,#0 x11 /* set the mode as FIQ mode */ msr cpsr,r0 mov r8, #16 /* initialization the register in FIQ mode */ mo

9、v r9, #17 mov r10, #18 mov r11, #19 mov r12, #20 mov r13, #21 mov r14, #22 /* into SVC mode */ mrs r0,cpsr bic r0,r0,#0 x1f orr r0,r0,#0 x13 /* set the mode as SVC mode */ msr cpsr,r0 mov r13, #23 /* initialization the register in SVC mode */ mov r14, #24 /* into Abort mode */ mrs r0,cpsr bic r0,r0,

10、#0 x1f orr r0,r0,#0 x17 /* set the mode as Abort mode */ msr cpsr,r0 mov r13, #25 /* initialization the register in Abort mode */ mov r14, #26 /* into IRQ mode */ mrs r0,cpsr bic r0,r0,#0 x1f orr r0,r0,#0 x12 /* set the mode as IRQ mode */ msr cpsr,r0 mov r13, #27 /* initialization the register in IRQ mode */ mov r14, #28 /* into UNDEF mode */ mrs r0,cpsr bic r0,r0,#0 x1f orr r0,r0,#0 x1b /* set the mode as UNDEF mode */ msr cpsr,r0 mov r13, #29 /* ini

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論