ARM處理器編程模型
RISC并非只是簡單地去減少指令,而是把著眼點放在了如何使計算機的結(jié)構(gòu)更加簡單合理地提高運算速度上,優(yōu)先選取使用頻最高的簡單指令。
本文引用地址:http://butianyuan.cn/article/201611/317965.htm二、ARM處理器共有37個寄存器,被分為若干個組(BANK),這些寄存器包括:
31個通用寄存器,包括程序計數(shù)器(PC指針),均為32位的寄存器。
6個狀態(tài)寄存器,用以標(biāo)識CPU的工作狀態(tài)及程序的運行狀態(tài),均為32位,目前只使用了其中的一部分。
三、ARM微處理器在較新RISC體系結(jié)構(gòu)中支持兩種指令集:ARM指令集和Thumb指令集。
ARM指令為32位的長度,Thumb指令為16位長度
Thumb指令集為ARM指令集的功能子集,但與等價的ARM代碼相比較,可節(jié)省30%~40%以上的存儲空間,同時具備32位代碼的所有優(yōu)點。
四、arm處理器的工作狀態(tài)
ARM微處理器的工作狀態(tài)一般有兩種,并可在兩種狀態(tài)之間切換:
1、ARM狀態(tài),此時處理器執(zhí)行32位的字對齊的ARM指令;
2、Thumb狀態(tài),此時處理器執(zhí)行16位的、半字對齊的Thumb指令。
ARM指令集和Thumb指令集均有切換處理器狀態(tài)的指令,并可在兩種工作狀態(tài)之間切換,但ARM微處理器在開始執(zhí)行代碼時,應(yīng)該處于ARM狀態(tài)。
五、ARM體系結(jié)構(gòu)的存儲器格式
1、(1)大端格式:在這種格式中,字?jǐn)?shù)據(jù)的高字節(jié)存儲在低地址中
(2)小端格式:在這種格式中,字?jǐn)?shù)據(jù)的低字節(jié)存儲在低地址中
2、存儲管理單元-MMU
其主要功能有:
(1)將主存地址從虛擬存儲空間映射到物理存儲空間。
(2)存儲器訪問權(quán)限控制。
(3)設(shè)置虛擬存儲空間的緩沖特性等。
六、處理器模式
ARM微處理器支持7種運行模式,分別為:
除用戶模式外,其它模式均為特權(quán)模式。ARM內(nèi)部寄存器和一些片內(nèi)外設(shè)在硬件設(shè)計上只允許(或者可選為只允許)特權(quán)模式下訪問。此外,特權(quán)模式可以自由的切換處理器模式,而用戶模式不能直接切換到別的模式。
除用戶模式和系統(tǒng)模式外,其它模式均為異常模式。它們除了可以通過程序切換進入外,也可以由特定的異常進入。當(dāng)特定的異常出現(xiàn)時,處理器進入相應(yīng)的模式。每種異常模式都有一些獨立的寄存器,以避免異常退出時用戶模式的狀態(tài)不可靠。
用戶模式和系統(tǒng)模式這兩種模式都不能由異常進入,而且它們使用完全相同的寄存器組。
系統(tǒng)模式是特權(quán)模式,不受用戶模式的限制。操作系統(tǒng)在該模式下訪問用戶模式的寄存器就比較方便,而且操作系統(tǒng)的一些特權(quán)任務(wù)可以使用這個模式訪問一些受控的資源。
六、寄存器
ARM微處理器中的寄存器不能被同時訪問,具體哪些寄存器是可編程訪問的,取決微處理器的工作狀態(tài)及具體的運行模式。
但在任何時候,通用寄存器R14~R0、程序計數(shù)器PC、一個或兩個狀態(tài)寄存器都是可訪問的。
1、arm狀態(tài)下寄存器
通用寄存器包括R0~R15,可以分為三類:
未分組寄存器R0~R7:在所有的運行模式下,未分組寄存器都指向同一個物理寄存器,他們未被系統(tǒng)用作特殊的用途
分組寄存器R8~R14;對于分組寄存器,他們每一次所訪問的物理寄存器與處理器當(dāng)前的運行模式有關(guān)。
程序計數(shù)器PC(R15):寄存器R15用作程序計數(shù)器(PC)
2、Thumb狀態(tài)下的寄存器
程序員可以直接訪問的寄存器為:
8個通用寄存器R0~R7;
程序計數(shù)器(PC);
堆棧指針(SP);
鏈接寄存器(LR);
有條件訪問程序狀態(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、當(dāng)正常的程序執(zhí)行流程發(fā)生暫時的停止時,稱之為異常。類型如下:
2、當(dāng)多個異常同時發(fā)生時,ARM9處理器將按照異常的優(yōu)先級高低順序處理,異常優(yōu)先級由高到低的排列次序如表所示。
評論