<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > ARM處理器模式介紹和模式切換

ARM處理器模式介紹和模式切換

作者: 時(shí)間:2016-11-28 來(lái)源:網(wǎng)絡(luò ) 收藏
ARM體系結構支持7種處理器模式:
用戶(hù)模式:正常程序工作模式,不能直接切換到其它模式。
快中斷模式:支持高速數據傳輸及通道處理。FIR異常響應時(shí),進(jìn)入此模式
中斷模式:通用中斷處理。IRQ異常響應時(shí),進(jìn)入此模式。
管理模式:操作系統保護代碼,系統復位和軟件中斷時(shí),進(jìn)入此模式。
中止模式:支持虛擬內存,存儲器保護。
未定義模式:支持硬件協(xié)處理器和軟件仿真。未定義指令異常響應時(shí),進(jìn)入此模式。
系統模式:用于支持OS的特權任務(wù)。與用戶(hù)模式類(lèi)似,但可以直接切換到其它模式。
除用戶(hù)模式外,其它都為特權模式。某些ARM內部寄存器和一些片內外設在硬件設計上只允許特權模式下訪(fǎng)問(wèn)。特權模式可以自由切換處理器模式。但用戶(hù)模式不能直接切換到別的模式。


ARM7TDMI內核包含1個(gè)CPSR和5個(gè)供異常處理程序使用的SPSR.
ARM7TDMI內核所有處理器狀態(tài)都保存在CPSR中。
CPSR包含:
4個(gè)條件代碼標志。
2個(gè)中斷禁止位。
5個(gè)隊當前處理器模式進(jìn)行編碼的位。
1個(gè)用于只是當前執行指令(ARM還是Thumb)的位。

每個(gè)異常模式(快中斷模式,中斷模式,管理模式,中止模式,未定義模式)還帶有一個(gè)程序狀態(tài)保存寄存器 SPSR。用于保存任務(wù)在異常發(fā)生之前的CPSR.

4個(gè)條件代碼標志:
N:運算結果的B31值。
Z:指令結果為0時(shí),Z=1(通常表示比較結果相等) . 否則Z=0.
C: 使用加法運算時(shí),B31位產(chǎn)生進(jìn)位,C=1.否則C=0. 使用減法運算時(shí),b31借位時(shí),C=0,否則C=1。
V: 加減運算時(shí),有符號溢出,V=1,否則V=0。

2個(gè)中斷禁止位:
I: 置位,IRQ 中斷被禁止。
F:置位,FIQ中斷被禁止。

1個(gè)用于只是當前執行指令(ARM還是Thumb)的位:
置位:表示處理器在Thumb.
清零:處理器在A(yíng)RM。

5個(gè)隊當前處理器模式進(jìn)行編碼的位:
10000:用戶(hù)。
10001:快中斷。
10010:中斷
10011:管理
10111:中止
11011:未定義
11111:系統。
注意,在不同模式下,可見(jiàn)的寄存器不同。


使用MRS指令可以讀取狀態(tài)寄存器指令。
MRS R1, CPSR
MRS R2,SPSR

使用MSR指令,可以寫(xiě)狀態(tài)寄存器。

例1:使能IRQ中斷:
MRS R0, CPSR //把cpsr內容放到Ro中
BIC R0, R0, #0x80 //將I 位清除。IRQ Enable
MSR CPSR_c ,R0
MOV PC, LR

注意:AXD中的Processor Registers項中,CPSR,SPSR顯示模式如下:

nzCvqIFt_SVC
nzcv:分別表示4個(gè)標志位。小寫(xiě)字母表示0 , 大寫(xiě)字母表示1
IFt分別表示IRQ,FIQ,和執行指令標志位。
SVC表示工作模式為:管理模式。


評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>