<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-09 來(lái)源:網(wǎng)絡(luò ) 收藏
一、arm采用RISC體系結構

RISC并非只是簡(jiǎn)單地去減少指令,而是把著(zhù)眼點(diǎn)放在了如何使計算機的結構更加簡(jiǎn)單合理地提高運算速度上,優(yōu)先選取使用頻最高的簡(jiǎn)單指令。

本文引用地址:http://dyxdggzs.com/article/201611/317965.htm

二、ARM處理器共有37個(gè)寄存器,被分為若干個(gè)組(BANK),這些寄存器包括:
31個(gè)通用寄存器,包括程序計數器(PC指針),均為32位的寄存器。
6個(gè)狀態(tài)寄存器,用以標識CPU的工作狀態(tài)及程序的運行狀態(tài),均為32位,目前只使用了其中的一部分。

三、ARM微處理器在較新RISC體系結構中支持兩種指令集:ARM指令集和Thumb指令集。
ARM指令為32位的長(cháng)度,Thumb指令為16位長(cháng)度
Thumb指令集為ARM指令集的功能子集,但與等價(jià)的ARM代碼相比較,可節省30%~40%以上的存儲空間,同時(shí)具備32位代碼的所有優(yōu)點(diǎn)。

四、arm處理器的工作狀態(tài)

ARM微處理器的工作狀態(tài)一般有兩種,并可在兩種狀態(tài)之間切換:
1、ARM狀態(tài),此時(shí)處理器執行32位的字對齊的ARM指令;
2、Thumb狀態(tài),此時(shí)處理器執行16位的、半字對齊的Thumb指令。
ARM指令集和Thumb指令集均有切換處理器狀態(tài)的指令,并可在兩種工作狀態(tài)之間切換,但ARM微處理器在開(kāi)始執行代碼時(shí),應該處于A(yíng)RM狀態(tài)。

五、ARM體系結構的存儲器格式

1、(1)大端格式:在這種格式中,字數據的高字節存儲在低地址中

(2)小端格式:在這種格式中,字數據的低字節存儲在低地址中

2、存儲管理單元-MMU

其主要功能有:
(1)將主存地址從虛擬存儲空間映射到物理存儲空間。
(2)存儲器訪(fǎng)問(wèn)權限控制。
(3)設置虛擬存儲空間的緩沖特性等。


六、處理器模式

ARM微處理器支持7種運行模式,分別為:


除用戶(hù)模式外,其它模式均為特權模式。ARM內部寄存器和一些片內外設在硬件設計上只允許(或者可選為只允許)特權模式下訪(fǎng)問(wèn)。此外,特權模式可以自由的切換處理器模式,而用戶(hù)模式不能直接切換到別的模式。

除用戶(hù)模式和系統模式外,其它模式均為異常模式。它們除了可以通過(guò)程序切換進(jìn)入外,也可以由特定的異常進(jìn)入。當特定的異常出現時(shí),處理器進(jìn)入相應的模式。每種異常模式都有一些獨立的寄存器,以避免異常退出時(shí)用戶(hù)模式的狀態(tài)不可靠。

用戶(hù)模式和系統模式這兩種模式都不能由異常進(jìn)入,而且它們使用完全相同的寄存器組。

系統模式是特權模式,不受用戶(hù)模式的限制。操作系統在該模式下訪(fǎng)問(wèn)用戶(hù)模式的寄存器就比較方便,而且操作系統的一些特權任務(wù)可以使用這個(gè)模式訪(fǎng)問(wèn)一些受控的資源。

六、寄存器

ARM微處理器中的寄存器不能被同時(shí)訪(fǎng)問(wèn),具體哪些寄存器是可編程訪(fǎng)問(wèn)的,取決微處理器的工作狀態(tài)及具體的運行模式。
但在任何時(shí)候,通用寄存器R14~R0、程序計數器PC、一個(gè)或兩個(gè)狀態(tài)寄存器都是可訪(fǎng)問(wèn)的。

1、arm狀態(tài)下寄存器
通用寄存器包括R0~R15,可以分為三類(lèi):
未分組寄存器R0~R7:在所有的運行模式下,未分組寄存器都指向同一個(gè)物理寄存器,他們未被系統用作特殊的用途
分組寄存器R8~R14;對于分組寄存器,他們每一次所訪(fǎng)問(wèn)的物理寄存器與處理器當前的運行模式有關(guān)。
程序計數器PC(R15):寄存器R15用作程序計數器(PC)

2、Thumb狀態(tài)下的寄存器

程序員可以直接訪(fǎng)問(wèn)的寄存器為:
8個(gè)通用寄存器R0~R7;
程序計數器(PC);
堆棧指針(SP);
鏈接寄存器(LR);
有條件訪(fǎng)問(wèn)程序狀態(tài)寄存器( CPSR)。

3、ARM狀態(tài)和Thumb狀態(tài)之間寄存器的關(guān)系
Thumb狀態(tài)R0~R7與ARM狀態(tài)R0~R7相同;
Thumb狀態(tài)CPSR和SPSR與ARM狀態(tài)CPSR和SPSR相同;
Thumb狀態(tài)SP映射到ARM狀態(tài)R13;
Thumb狀態(tài)LR映射到ARM狀態(tài)R14;
Thumb狀態(tài)PC映射到ARM狀態(tài)PC(R15)。

七、異常

1、當正常的程序執行流程發(fā)生暫時(shí)的停止時(shí),稱(chēng)之為異常。類(lèi)型如下:


2、當多個(gè)異常同時(shí)發(fā)生時(shí),ARM9處理器將按照異常的優(yōu)先級高低順序處理,異常優(yōu)先級由高到低的排列次序如表所示。



關(guān)鍵詞: ARM處理器編程模

評論


技術(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>