ARM处理器工作模式
一、ARM體系的CPU有以下7種工作模式:
1、用戶模式(usr):正常的程序執行狀態
2、快速中斷模式(fiq):用于支持高速數據傳輸或通道處理
3、中斷模式(irq):用于普通中斷處理
4、管理模式(svc):操作系統使用的保護模式
5、系統模式(sys):運行具有特權的操作系統任務
6、數據訪問終止模式(abt):數據或指令預取終止時進入該模式
7、未定義指令終止模式(und):未定義的指令執行時進入該模式
| 處理器工作模式 | 特權模式 | 異常模式 | 說明 |
| 用戶(user)模式 | ? | ? | 用戶程序運行模式 |
| 系統(system)模式 | 該組模式下可以任意訪問系統資源 | ? | 運行特權級的操作系統任務 |
| 一般中斷(IRQ)模式 | 通常由系統異常狀態切換進該組模式 | 普通中斷模式 | |
| 快速中斷(FIQ)模式 | 快速中斷模式 | ||
| 管理(supervisor)模式 | 提供操作系統使用的一種保護模式,swi命令狀態 | ||
| 中止(abort)模式 | 虛擬內存管理和內存數據訪問保護 | ||
| 未定義指令終止(undefined)模式 | 支持通過軟件仿真硬件的協處理 |
?
二、CPU模式
?????? CPU的模式可以簡單的理解為當前CPU的工作狀態,比如:當前操作系統正在執行用戶程序,那么當前CPU工作在用戶模式,這時網卡上有數據到達,產生中斷信號,CPU自動切換到一般中斷模式下處理網卡數據(普通應用程序沒有權限直接訪問硬件),處理完網卡數據,返回到用戶模式下繼續執行用戶程序。
1、用戶模式 VS? 特權模式
????? 7種模式中除用戶模式外其它的6種處理器模式稱為Privileged Modes(特權模式)。
用戶模式:大多數用戶程序運行在用戶模式,此模式下程序不能夠訪問一些受操作系統保護的系統資源,應用程序也不能直接進行處理器模式的切換。
特權模式:程序可以訪問所有的系統資源,也可以任意地進行處理器模式的切換。只有在特權模式下才允許對當前的程序狀態寄存器的反有控制位直接進行讀寫訪問。
?
2、異常模式 VS 系統模式
6種特權模式中除系統模式外,其他5種特權模式又稱之為異常模式。
異常模式:當應用程序發生異常中斷時,處理器進入相應的異常模式。每一種異常模式都有一組寄存器,供相應的異常處理程序使用,這樣可保證進入異常模式時,用戶模式下的寄存器(保存了程序運行狀態)不被破壞。
系統模式:系統模式不是通過異常過程進入的,它和用戶模式具有完全一樣的寄存器。但是系統模式屬于特權模式,可以訪問所有的系統資源,也可以直接進行處理器模式的切換。它主要供操作系統任務使用。
?
附:何時近入到異常模式
1)-- 復位進入管理模式,操作系統內核通常處于此種模式
2)-- 訪問失敗則進入中止模式
3)-- 遇到不支持的指令時,進入未定義
4)-- 中斷模式與快速中斷模式分別對ARM外理器2種不同等級別的中斷
?
三、模式切換
?????? 處理器的模式可以通過軟件控制進行切換,也可以通過外部中斷或是異常處理過程進行切換。
1、當異常發生,CPU進入相應的異常模式時,以下工作是由CPU自動完成的:
1)-- 在異常模式的R14中保存前一工作模式的下一條即將執行的指令地址;
2)-- 將CPSR的值復制到異常模式的SPSR中;
3)-- 將CPSR的工作模式設為該異常模式對應的工作模式;
4)-- 令PC值等于這個異常模式在異常向量表中的地址,即跳轉去執行異常向量表中的相應指令;
?
2、從異常工作模式退回到之前的工作模式時,需要由軟件來完成以下工作:
1)-- 將異常模式的R14減去一個適當的值(4或8)后賦給PC寄存器;
2)-- 將異常模式SPSR的值賦給CPSR;
?
四、ARM體系的CPU有兩種工作狀態
1、ARM
2、THumb
CPU上電處于ARM狀態
?
五、寄存器
ARM有31個通用的32位寄存器,6個程序狀態寄存器,共分為7組,有些寄存器是所有工作模式共用的,還有一些寄存器專屬于每一種工作模式;
R13——棧指針寄存器,用于保存堆棧指針;
R14——程序連接寄存器,當執行BL子程序調用指令時,R14中得到R15的備份,而當發生中斷或異常時,R14保存R15的返回值;
R15——程序計數器;快速中斷模式有7個備份寄存器R8—R14,這使得進入快速中斷模式執行很大部分程序時,甚至不需要保存任何寄存器;
快速中斷模式有7個備份寄存器R8—R14,這使得進入快速中斷模式執行很大部分程序時,甚至不需要保存任何寄存器;
其它特權模式都含有兩個獨立的寄存器副本R13、R14,這樣可以令每個模式都擁有自己的堆棧指針和連接寄存器;
六、當前程序狀態寄存器(CPSR)
CPSR中各位意義如下:
T位:1——CPU處于Thumb狀態, 0——CPU處于ARM狀態;
I、F(中斷禁止位):?1——禁止中斷, 0——中斷使能;
工作模式位:可以改變這些位,進行模式切換;
?
七、程序狀態保存寄存器(SPSR)
??????? 當切換進入某一個特權模式時,SPSR保存前一個工作模式的CPSR值,這樣,當返回前一個工作模式時,可以將SPSR的值恢復到CPSR中;
總結
以上是生活随笔為你收集整理的ARM处理器工作模式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JSP PO VO BO DTO POJ
- 下一篇: 2021 年 五一数学建模比赛 B 题(