uboot初始化中,為何要設置CPU為SVC模式而不是設置為其他模式

      網友投稿 782 2022-05-30

      在看Uboot的start.S文件時候,發現其最開始初始化系統,做的第一件事情,就是將CPU設置為SVC模式,但是S3C2440的CPU的core是ARM920T,其有7種模式,為何非要設置為SVC模式,而不是設置為其他模式呢?對此,經過一些求證,得出如下原因:

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

      http://www.docin.com/p-73665362.html

      圖表 22 ARM中CPU的模式

      另外,7種模式中,除用戶usr模式外,其它模式均為特權模式。

      對于為何此處是svc模式,而不是其他某種格式,其原因,可以從兩方面來看:

      【第一方面】

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

      中止abt和未定義und模式:

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

      快中斷fiq和中斷irq模式:

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

      用戶usr模式:

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

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

      uboot初始化中,為何要設置CPU為SVC模式而不是設置為其他模式

      首先,sys模式和usr模式相比,所用的寄存器組,都是一樣的,但是增加了一些訪問一些在usr模式下不能訪問的資源。

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

      所以,從理論上來說,雖然可以設置為sys和svc模式的任一種,但是從uboot方面考慮,其要做的事情是初始化系統相關硬件資源,需要獲取盡量多的權限,以方便操作硬件,初始化硬件。

      從uboot的目的是初始化硬件的角度來說,設置為svc模式,更有利于其工作。

      因此,此處將CPU設置為SVC模式。

      【第二方面】

      uboot作為一個bootloader來說,最終目的是為了啟動Linux的kernel,在做好準備工作(即初始化硬件,準備好kernel和rootfs等)跳轉到kernel之前,本身就要滿足一些條件,其中一個條件,就是要求CPU處于SVC模式的。

      (關于滿足哪些條件,詳情請參考:

      ARM Linux Kernel Boot Requirements

      http://www.arm.linux.org.uk/developer/booting.php

      或者Linux內核文檔:

      kernel_source_root\documentation\arm\booting

      中也是同樣的解釋:

      “The CPU must be in SVC mode”)

      所以,uboot在最初的初始化階段,就將CPU設置為SVC模式,也是最合適的。

      綜上所述,uboot在初始化階段,就應該將CPU設置為SVC模式。

      ARM kernel 單片機

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:爬蟲系列:連接網站與解析 HTML
      下一篇:【讀書筆記】重寫可讀代碼的藝術
      相關文章
      亚洲韩国—中文字幕| 亚洲最大黄色网址| 久久亚洲国产伦理| 国产精品V亚洲精品V日韩精品| 亚洲熟伦熟女专区hd高清| 亚洲av无码电影网| 亚洲AV无码专区电影在线观看| 亚洲情XO亚洲色XO无码| 国外亚洲成AV人片在线观看 | 亚洲AV无码AV男人的天堂不卡| 国产精品久久亚洲不卡动漫| 亚洲制服丝袜第一页| 国产日本亚洲一区二区三区| 亚洲人精品亚洲人成在线| 亚洲一区二区三区乱码在线欧洲| 亚洲娇小性色xxxx| 国产成人亚洲综合网站不卡| 亚洲熟女乱色一区二区三区| 亚洲av日韩综合一区久热| 色欲色欲天天天www亚洲伊| 国产精品亚洲小说专区| 亚洲免费无码在线| 久久久亚洲精品蜜桃臀| 亚洲精品午夜无码电影网| 久久亚洲国产精品五月天| 亚洲精品韩国美女在线| 亚洲人成人77777网站不卡| 四虎亚洲精品高清在线观看| 亚洲精品宾馆在线精品酒店| 国产AV无码专区亚洲AV蜜芽| 亚洲国产综合精品中文字幕| 日本亚洲国产一区二区三区 | 亚洲精品乱码久久久久久中文字幕| 亚洲精品蜜桃久久久久久| 亚洲一卡2卡三卡4卡有限公司| 亚洲妓女综合网99| 亚洲色大情网站www| 全亚洲最新黄色特级网站| 亚洲永久无码3D动漫一区| 亚洲国产高清人在线| 亚洲人成影院午夜网站|