日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ARM七种模式理解

發布時間:2024/10/14 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ARM七种模式理解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

首先,先要了解ARM的CPU的7種模式是哪些:

? ?? ?? ? 用戶模式(usr):ARM處理器正常的程序執行狀態

? ?? ?? ? 快速中斷模式(fiq):用于高速數據傳輸或通道處理

? ?? ?? ? 中斷模式(irq):用于通用的中斷處理

? ?? ?? ? 管理模式(svc):操作系統使用的保護模式,系統復位和軟件中斷進入此模式

? ?? ?? ? 數據訪問終止模式(abt):當數據或指令預取終止時進入該模式,可用于虛擬存儲及存儲保護

? ?? ?? ? 系統模式(sys):運行具有特權的操作系統任務

? ? ? ? ? 未定義指令中止模式(und):當未定義的指令執行時進入該模式,可用于支持硬件協處理器的軟件仿真

除用戶模式外,其他6種工作模式都屬于特權模式,大多數程序運行于用戶模式,進入特權模式是為了處理中斷、異常,或者訪問被保護的系統資源。

我們簡單的來分析一下那7種模式:

  • 中止abt和未定義und模式

    首先可以排除的是,中止abt和未定義und模式,那都是不太正常的模式,此處程序是正常運行的,所以不應該設置CPU為其中任何一種模式,所以可以排除。

  • 快中斷fiq和中斷irq模式

    其次,對于快中斷fiq和中斷irq來說,此處uboot初始化的時候,也還沒啥中斷要處理和能夠處理,而且即使是注冊了終端服務程序后,能夠處理中斷,那么這兩種模式,也是自動切換過去的,所以,此處也不應該設置為其中任何一種模式。

  • 用戶usr模式

    雖然從理論上來說,可以設置CPU為用戶usr模式,但是由于此模式無法直接訪問很多的硬件資源,而uboot初始化,就必須要去訪問這類資源,所以此處可以排除,不能設置為用戶usr模式。

  • 系統sys模式 vs 管理svc模式

    首先,sys模式和usr模式相比,所用的寄存器組,都是一樣的,但是增加了一些訪問一些在usr模式下不能訪問的資源。而svc模式本身就屬于特權模式,本身就可以訪問那些受控資源,而且,比sys模式還多了些自己模式下的影子寄存器,所以,相對sys模式來說,可以訪問資源的能力相同,但是擁有更多的硬件資源。

    例如,uboot初始化階段CPU處于SVC模式,從理論上來說,雖然可以設置為sys和svc模式的任一種,但是從uboot方面考慮,其要做的事情是初始化系統相關硬件資源,需要獲取盡量多的權限,以方便操作硬件,初始化硬件等。將CPU設置為SVC模式,便于展開工作。uboot最終目的是為了啟動Linux的kernel,在做好準備工作(即初始化硬件,準備好kernel和rootfs等)跳轉到kernel之前,本身就要滿足一些條件,其中一個條件,就是要求CPU處于SVC模式的。所以,uboot在最初的初始化階段,就將CPU設置為SVC模式,也是最合適的。

總結

以上是生活随笔為你收集整理的ARM七种模式理解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。