ARM微處理器的編程模型之:處理器工作模式
3.2 處理器工作模式
本文引用地址:http://dyxdggzs.com/article/257087.htm處理器工作模式 | 簡(jiǎn) 寫(xiě) | 描 述 |
用戶(hù)模式(User) | usr | 正常程序執行模式,大部分任務(wù)執行在這種模式下 |
快速中斷模式(FIQ) | fiq | 當一個(gè)高優(yōu)先級(fast)中斷產(chǎn)生時(shí)將會(huì )進(jìn)入這種模式,一般用于高速數據傳輸和通道處理 |
外部中斷模式(IRQ) | irq | 當一個(gè)低優(yōu)先級(normal)中斷產(chǎn)生時(shí)將會(huì )進(jìn)入這種模式,一般用于通常的中斷處理 |
特權模式(Supervisor) | svc | 當復位或軟中斷指令執行時(shí)進(jìn)入這種模式,是一種供操作系統使用的保護模式 |
數據訪(fǎng)問(wèn)中止模式(Abort) | abt | 當存取異常時(shí)將會(huì )進(jìn)入這種模式,用于虛擬存儲或存儲保護 |
未定義指令中止模式(Undef) | und | 當執行未定義指令時(shí)進(jìn)入這種模式,有時(shí)用于通過(guò)軟件仿真協(xié)處理器硬件的工作方式 |
系統模式(System) | sys | 使用和User模式相同寄存器集的模式,用于運行特權級操作系統任務(wù) |
除用戶(hù)模式外的其他6種處理器模式稱(chēng)為特權模式(Privileged Modes)。在這些模式下,程序可以訪(fǎng)問(wèn)所有的系統資源,也可以任意地進(jìn)行處理器模式切換。其中的5種又稱(chēng)為異常模式,分別為:
· FIQ(Fast Interrupt reQuest);
· IRQ(Interrupt request);
· 管理(Supervisor);
· 中止(Abort);
· 未定義(Undefined)。
處理器模式可以通過(guò)軟件控制進(jìn)行切換,也可以通過(guò)外部中斷或異常處理過(guò)程進(jìn)行切換。
大多數的用戶(hù)程序運行在用戶(hù)模式下。當處理器工作在用戶(hù)模式時(shí),應用程序不能夠訪(fǎng)問(wèn)受操作系統保護的一些系統資源,應用程序也不能直接進(jìn)行處理器模式切換。當需要進(jìn)行處理器模式切換時(shí),應用程序可以產(chǎn)生異常處理,在異常處理過(guò)程中進(jìn)行處理器模式切換。這種體系結構可以使操作系統控制整個(gè)系統資源的使用。
當應用程序發(fā)生異常中斷時(shí),處理器進(jìn)入相應的異常模式。在每一種異常模式中都有一組專(zhuān)用寄存器以供相應的異常處理程序使用,這樣就可以保證在進(jìn)入異常模式時(shí)用戶(hù)模式下的寄存器(保存程序運行狀態(tài))不被破壞。
系統模式,不能有任何異常進(jìn)入。僅ARM體系結構v4及以上版本有該模式。它和用戶(hù)模式具有完全相同的寄存器。但是系統模式屬于特權模式,可以訪(fǎng)問(wèn)所有的系統資源,也可以直接進(jìn)行處理器模式切換,它主要供操作系統任務(wù)使用。通常操作系統的任務(wù)需要訪(fǎng)問(wèn)所有的系統資源,同時(shí)該任務(wù)仍然使用用戶(hù)模式的寄存器組而不是異常模式下相應的寄存器組,這樣可以保證當異常中斷發(fā)生時(shí)任務(wù)狀態(tài)不被破壞。
評論