ARM的工作模式和狀態
ARM狀態: 32位的字對齊,運行ARM指令
Thumb狀態:16位的半字對齊的Thumb指令
注:CPU在兩種狀態中切換時并不影響CPU的工作模式和相應的寄存器中的內容。
ARM的7種工作模式
3種正常運行態:
用戶模式(User):大部分任務(比如用戶應用程序)執行在這種模式。
系統模式(System):運行操作系統的特權任務。
管理模式(Supervisor):當復位或者軟中斷指令執行時將會進入這種模式。
2種中斷模式
快速中斷模式(FIQ--First Interrupt Request):當一個高優先級中斷(FIQ)產生時會進入這種模式。
外部中斷模式(IRQ--Interrupt Request):當一個低優先級(Normal)中斷產生時進入這種模式。
注:FIQ和IRQ的區別---FIQ模式必須盡快處理,處理結束后離開這個模式;IRQ模式可以被FIQ模式中斷,但IRQ不能中斷FIQ模式;為使FIQ模式響應更快,FIQ模式具有更多的影子(Shadow)寄存器(硬件自動完成相應寄存器的數據備份)。ARM的FIQ模式提供了更多的banked寄存器,r8到r14還有SPSR,而IRQ模式就沒有那么多,R8,R9,R10,R11,R12對應的banked的寄存器就沒有,這就意味著在ARM的IRQ模式下,中斷處理程序自己要保存R8到R12這幾個寄存器,然后退出中斷處理時程序要恢復這幾個寄存器,而FIQ模式由于這幾個寄存器都有banked寄存器,模式切換時CPU自動保存這些值到banked寄存器,退出FIQ模式時自動恢復,所以這個過程FIQ比IRQ快。
2種異常模式
數據訪問終止模式(Abort):當數據或指令預取終止時進入這種模式。
未定義指令終止模式(Undef):當執行未定義指令時進入這種模式。
對于Cortex A系列的ARM處理器來說,還有一種特有的Minitor模式:
1種特有模式:
Monitor模式:是為了安全而擴展出的用于執行安全監控代碼的模式,也是一種他特權模式。
評論