新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > ARM處理器的工作模式(一)

ARM處理器的工作模式(一)

作者: 時(shí)間:2016-11-21 來(lái)源:網(wǎng)絡(luò) 收藏
實(shí)驗(yàn)?zāi)康模?br />1. 掌握ARM的各種工作模式
2. 熟悉ARM各種工作模式下的寄存器
3. 學(xué)會(huì)使用軟件實(shí)現(xiàn)ARM工作模式間的切換。
實(shí)驗(yàn)內(nèi)容:
使用MSR/MRS指令切換工作模式,并初始化各工作模式下的堆棧指針。
觀察ARM在各種工作模式下寄存器的區(qū)別。
觀察ARM在各種工作模式間切換時(shí)各寄存器的變化情況。


實(shí)驗(yàn)一 使用MSR/MRS指令切換工作模式實(shí)驗(yàn)(ARM7)(exp9_exa.s)
AREA INIT,CODE,READONLY
ENTRY
B RESET_HANDLER ;管理模式SVC
UNDEFINED_HANDLER
B UNDEFINED_HANDLER
B SWI_HANDLER
PREFETCH_HANDLER
B PREFETCH_HANDLER
ABORT_HANDLER
B ABORT_HANDLER
NOP
IRQ_HANDLER
B IRQ_HANDLER
FIQ_HANDLER
B FIQ_HANDLER
SWI_HANDLER
MOV PC,LR

RESET_HANDLER
MOV R0,#0X000001F0 ;初始化R0( IFT=1;用戶模式
LDR R1,=0xF0000000
STR R0,[R1] ;保存R0
MRS R0,CPSR ;CPSR——>R0
MOV R13,#1 ;寫入R13=1
MOV R14,#2 ;寫入R14=2

MRS R0,CPSR ;CPSR——>R0
LDR R1,=0xF0000000 ;
STR R0,[R1] ;保存R0


BIC R0,R0,#0x1F
ORR R0,R0,#0x10 ;改寫R0
MSR CPSR_c,R0 ;R0——> CPSR (切換至用戶模式USR)
MOV R13,#3 ;寫入R13=3

MOV R14,#4 ;寫入R14=4

STOP B STOP
END
本實(shí)驗(yàn)使用MSR/MRS指令完成系統(tǒng)初始化過(guò)程中從管理模式到用戶模式的切換,采用ARMmulator方式調(diào)試,選用ARM7作為目標(biāo)處理器
單步運(yùn)行程序,觀察ARM寄存器、存儲(chǔ)空間和工作模式的變化情況,并填入表中。
序號(hào)執(zhí)行指令指令執(zhí)行后的變化情況
寄存器存儲(chǔ)空間工作模式
R0R1R13_SVCR14_SVCR13_USRR13_USRR15CPSR0xF000000
0
1B RESET_HANDLER
2MOV R0,#0X000001F0
3LDR R1,=0xF0000000
4STR R0,[R1]
5MRS R0,CPSR
6MOV R13,#1
7MOV R14,#2
8MRS R0,CPSR
9BIC R0,R0,#0x1F
10ORR R0,R0,#0x10
11MSR CPSR_c,R0
12MOV R13,#3
13MOV R14,#4



關(guān)鍵詞: ARM處理器工作模

評(píng)論


技術(shù)專區(qū)

關(guān)閉