<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > ARM微處理器的編程模型之:處理器工作模式

          ARM微處理器的編程模型之:處理器工作模式

          作者: 時間:2013-09-13 來源:網絡 收藏

          3.2 處理器

          處理器共有7種,如表3.1所示

          本文引用地址:http://www.ex-cimer.com/article/257087.htm

          表3.1 處理器的

          處理器工作模式

          簡 寫

          描 述

          (User)

          usr

          正常程序執(zhí)行模式,大部分任務執(zhí)行在這種模式下

          快速中斷模式(FIQ)

          fiq

          當一個高優(yōu)先級(fast)中斷產生時將會進入這種模式,一般用于高速數據傳輸和通道處理

          外部中斷模式(IRQ)

          irq

          當一個低優(yōu)先級(normal)中斷產生時將會進入這種模式,一般用于通常的中斷處理

          (Supervisor)

          svc

          當復位或軟中斷指令執(zhí)行時進入這種模式,是一種供操作系統(tǒng)使用的保護模式

          數據訪問中止模式(Abort)

          abt

          當存取異常時將會進入這種模式,用于虛擬存儲或存儲保護

          未定義指令中止模式(Undef)

          und

          當執(zhí)行未定義指令時進入這種模式,有時用于通過軟件仿真協(xié)處理器硬件的工作方式

          系統(tǒng)模式(System)

          sys

          使用和User模式相同寄存器集的模式,用于運行特權級操作系統(tǒng)任務

          外的其他6種處理器模式稱為(Privileged Modes)。在這些模式下,程序可以訪問所有的系統(tǒng)資源,也可以任意地進行處理器模式切換。其中的5種又稱為異常模式,分別為:

          · FIQ(Fast Interrupt reQuest);

          · IRQ(Interrupt request);

          · 管理(Supervisor);

          · 中止(Abort);

          · 未定義(Undefined)。

          處理器模式可以通過軟件控制進行切換,也可以通過外部中斷或異常處理過程進行切換。

          大多數的用戶程序運行在下。當處理器工作在用戶模式時,應用程序不能夠訪問受操作系統(tǒng)保護的一些系統(tǒng)資源,應用程序也不能直接進行處理器模式切換。當需要進行處理器模式切換時,應用程序可以產生異常處理,在異常處理過程中進行處理器模式切換。這種體系結構可以使操作系統(tǒng)控制整個系統(tǒng)資源的使用。

          當應用程序發(fā)生異常中斷時,處理器進入相應的異常模式。在每一種異常模式中都有一組專用寄存器以供相應的異常處理程序使用,這樣就可以保證在進入異常模式時用戶模式下的寄存器(保存程序運行狀態(tài))不被破壞。

          系統(tǒng)模式,不能有任何異常進入。僅體系結構v4及以上版本有該模式。它和用戶模式具有完全相同的寄存器。但是系統(tǒng)模式屬于,可以訪問所有的系統(tǒng)資源,也可以直接進行處理器模式切換,它主要供操作系統(tǒng)任務使用。通常操作系統(tǒng)的任務需要訪問所有的系統(tǒng)資源,同時該任務仍然使用用戶模式的寄存器組而不是異常模式下相應的寄存器組,這樣可以保證當異常中斷發(fā)生時任務狀態(tài)不被破壞。



          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();