ARM處理器編程模型
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)先級由高到低的排列次序如表所示。
評論