隔壁新婚少妇真紧真爽,日韩在线麻豆,少妇挤奶av无码一区二区网站,久久精品无码一级毛片

文章詳情

  1. 您現(xiàn)在的位置:首頁(yè)
  2. 資訊中心
  3. 技術(shù)資料
  4. 詳情

如何看待ARM的各種模式?

ARM工作模式根據(jù)功能不同,可分為7類:

User Mode:用戶模式。操作系統(tǒng)的Task一般以這種模式執(zhí)行。User Mode是ARM的非特權(quán)模式,這表示如果CPU處于這種模式下,很多指令將不能夠執(zhí)行,因此操作系統(tǒng)的資源得以保護(hù)。

System Mode:這是V4及其以上版本所引入的特權(quán)模式。

IRQ Mode:中斷模式。中斷(不包括軟中斷)處理函數(shù)在這種模式下執(zhí)

ARM工作模式根據(jù)功能不同,可分為7類:

User Mode:用戶模式。操作系統(tǒng)的Task一般以這種模式執(zhí)行。User Mode是ARM的非特權(quán)模式,這表示如果CPU處于這種模式下,很多指令將不能夠執(zhí)行,因此操作系統(tǒng)的資源得以保護(hù)。

System Mode:這是V4及其以上版本所引入的特權(quán)模式。

IRQ Mode:中斷模式。中斷(不包括軟中斷)處理函數(shù)在這種模式下執(zhí)行。

FIQ Mode:快速中斷模式。除了多了幾個(gè)寄存器外,其他同IRQ一樣。

Supervisor Mode:監(jiān)視模式。軟中斷(SWI)處理函數(shù)在這種模式下執(zhí)行。

Abort Mode:所有同內(nèi)存保護(hù)相關(guān)的異常均在這種模式下執(zhí)行。

Undefined Mode:處理無(wú)效指令的異常處理函數(shù)在這種模式下執(zhí)行。

ARM工作模式也可分為3大類:

用戶模式:User Mode

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

異常模式:所有其它5種模式

為什么可以把7類功能不同的模式分為3大類呢?

這是由于異常模式同用戶模式和系統(tǒng)模式有一個(gè)不一樣的地方,那就是,當(dāng)CPU產(chǎn)生中斷或異常而自動(dòng)切換到相應(yīng)異常模式后,CPU會(huì)根據(jù)產(chǎn)生中斷或異常的原因執(zhí)行相應(yīng)得中斷或異常向量。這些向量的位置是CPU事先定義好的,目前有兩種選擇:

(1) 處于內(nèi)存低地址0x00000000~0x0000001c,這種情況被稱之為L(zhǎng)ow vector

(2) 處于內(nèi)存高低之0Xffff0000~0xffff001c,這種情況被稱之為High vector。

一般的操作系統(tǒng)會(huì)在這些異常向量地址處放置一條跳轉(zhuǎn)指令。至于到底是使用Low vector,還是使用High vector,由CPU自己決定,ARM規(guī)范不做任何限制。

程序可以通過(guò)讀取CPSR的MODE域來(lái)判斷CPU當(dāng)前的執(zhí)行模式。

如何看待ARM的各種模式?

要回答這個(gè)問(wèn)題,我們要看不同模式下,有哪些東西不同。歸納來(lái)說(shuō),有如下兩個(gè)方面的不同:

(1) 物理寄存器不同

(2) 權(quán)限不同

如果將User Mode作為參考模式,那么:

(1) System Mode:寄存器一樣,僅僅是權(quán)限不同

(2) 其他Exception Mode:寄存器不一樣,權(quán)限也不一樣

從權(quán)限的角度看,System Mode和其他Exception Mode(FIQ,IRQ,Supervisor,Abort,Undefined)是一樣的,他們之間的區(qū)別僅僅是寄存器方面有一些差別。

從寄存器角度看,我們可以將CPSR中的MODE域看作一個(gè)類似于片選的東西,當(dāng)其值不一樣,所選中的寄存器也不一樣。

雖然指令中的寄存器是一樣的,但是經(jīng)過(guò)MODE域的片選后,實(shí)際就指向不同的物理寄存器了。

必須要特別注意,SYSTEM模式和USER模式除了權(quán)限不一樣外,其他都一樣,這樣可以讓操作系統(tǒng)自由訪問(wèn)16個(gè)寄存器(包括狀態(tài)寄存器)。

那么,模式切換是如何進(jìn)行的呢?

(1) 執(zhí)行SWI或Reset指令。如果在User模式下執(zhí)行SWI指令,CPU就進(jìn)入Supervisor模式。當(dāng)然,在其它模式下執(zhí)行SWI指令,也會(huì)進(jìn)入Supervisor模式,補(bǔ)過(guò)一般操作系統(tǒng)不會(huì)這么做。因?yàn)槌薝ser模式是非特權(quán)模式下,其他模式都屬于特權(quán)模式(這說(shuō)明ARM只有兩種執(zhí)行態(tài),不想Dummy的X86,定義了4種執(zhí)行態(tài))。執(zhí)行SWI一般是為了訪問(wèn)系統(tǒng)資源,在特權(quán)模式下可以訪問(wèn)所有的系統(tǒng)資源。SWI指令一般用來(lái)用來(lái)為操作系統(tǒng)提供API接口。

(2) 有外部中斷發(fā)生。如果發(fā)生了外部中斷,CPU就會(huì)進(jìn)入IRQ或FIQ模式,具體是哪種模式,得看外部的中斷源是接到CPU的那個(gè)Pin。

(3) CPU執(zhí)行過(guò)程中產(chǎn)生異常。典型的異常是由于MMU保護(hù)所引起的內(nèi)存訪問(wèn)異常,此時(shí)CPU會(huì)切換到Abort模式。如果是無(wú)效指令,則會(huì)進(jìn)入U(xiǎn)ndefined模式。

從上面我們發(fā)現(xiàn),有一種模式是CPU無(wú)法自動(dòng)進(jìn)入的,這種模式就是System模式。要進(jìn)入System模式必須由程序員自己編寫(xiě)指令來(lái)實(shí)現(xiàn)。其實(shí)很簡(jiǎn)單,在任何特權(quán)模式下改變CPSR的MODE域?yàn)镾ystem模式所對(duì)應(yīng)得數(shù)字即可。進(jìn)入System模式一般是為了利用“System 模式”和“User 模式”下的寄存器是一樣的。因此一般操作系統(tǒng)在通過(guò)SWI進(jìn)入Supervisor模式后,做一些簡(jiǎn)單處理后,就進(jìn)入System模式。

另外,在任何特權(quán)模式下,都可以通過(guò)修改CPSR的MODE域而進(jìn)入其他模式。不過(guò)需要注意的是,由于修改的CPSR是該模式下的影子CPSR,因此并不是實(shí)際的CPSR,所以一般的做法是修改影子CPSR,然后執(zhí)行一個(gè)MOVS指令來(lái)恢復(fù)執(zhí)行到某個(gè)斷點(diǎn)并切換到新模式。

存儲(chǔ)器格式(字對(duì)齊)

Arm體系結(jié)構(gòu)將存儲(chǔ)器看做是從零地址開(kāi)始的字節(jié)的線性組合。從零字節(jié)到三字節(jié)放置個(gè)存儲(chǔ)的字(32位)數(shù)據(jù),從第四個(gè)字節(jié)到第七個(gè)字節(jié)放置第二個(gè)存儲(chǔ)的字?jǐn)?shù)據(jù),排列。作為32位的微處理器,arm體系結(jié)構(gòu)所支持的尋址空間為4GB。

存儲(chǔ)器格式:

1、大端格式:高字節(jié)在低地址,低字節(jié)在高地址;

2、小端格式:高字節(jié)在高地址,低字節(jié)在低地址;

指令長(zhǎng)度: Arm微處理器的指令長(zhǎng)度是32位的,也可以為16位(thumb狀態(tài)下)。Arm微處理器中支持字節(jié)(8位),半字(16位),字(32位)三種數(shù)據(jù)類型,其中,字需要4字節(jié)對(duì)齊,半字需要2字節(jié)對(duì)齊。

注:所謂的指令長(zhǎng)度是一條完整的指令的長(zhǎng)度,而不是單純的mov這3個(gè)字母長(zhǎng)度。

ARM體系的CPU有兩種工作狀態(tài)

1、ARM狀態(tài):處理器執(zhí)行32位的字對(duì)齊的ARM指令;

2、Thumb狀態(tài):處理器執(zhí)行16位的、半字對(duì)齊的Thumb指令;

在程序運(yùn)行的過(guò)程中,可以在兩種狀態(tài)之間進(jìn)行相應(yīng)的轉(zhuǎn)換。處理器工作狀態(tài)的轉(zhuǎn)變并不影響處理器的工作模式和相應(yīng)寄存器中的內(nèi)容。CPU上電處于ARM狀態(tài)。

寄存器

ARM有31個(gè)通用的32位寄存器,6個(gè)程序狀態(tài)寄存器,共分為7組,有些寄存器是所有工作模式共用的,還有一些寄存器專屬于每一種工作模式:

R13——棧指針寄存器,用于保存堆棧指針;

R14——程序連接寄存器,當(dāng)執(zhí)行BL子程序調(diào)用指令時(shí),R14中得到R15的備份,而當(dāng)發(fā)生中斷或異常時(shí),R14保存R15的返回值;

R15——程序計(jì)數(shù)器;

快速中斷模式有7個(gè)備份寄存器R8—R14,這使得進(jìn)入快速中斷模式執(zhí)行很大部分程序時(shí),甚至不需要保存任何寄存器;其它特權(quán)模式都含有兩個(gè)獨(dú)立的寄存器副本R13、R14,這樣可以令每個(gè)模式都擁有自己的堆棧指針和連接寄存器。

當(dāng)前程序狀態(tài)寄存器(CPSR)

CPSR中各位意義如下:

T位:1——CPU處于Thumb狀態(tài), 0——CPU處于ARM狀態(tài);

I、F(中斷禁止位): 1——禁止中斷, 0——中斷使能;

工作模式位:可以改變這些位,進(jìn)行模式切換。

 


亚洲中文经典无码| 欧美一级黄色片免费看| 四虎精品免费影视| 久久道无码| 精品无码做暖暖视频| 日韩大黄| 亚洲妇女水蜜桃av网网站| 欧美操天天干夜夜操| 色欲av一区二区三区免费不卡| 国产成人毛片精品不卡在线| 亚洲成人无码免费观看| 国产成人精品在线不卡| 精品国产美女| 人妻中文字幕人妻无码| 久久精品久久99国内久久不卡| 咸丰县| 无码中文人妻在线二区| 67194熟妇在线观看| 精品欧美| 国产一区伦理无套| 久久老熟女| 天下第一涩涩综合| 国产精品白丝视频| 精品伊人久久久久7777人 | 中文字幕精品亚洲无线一区| 精品国产爽香蕉在线观看| 77777sex| 亚洲国产精品自在线| 久久A级毛片免费| 亚洲一区中文字幕在线| 99精品全国免费观看视频| 亚洲无码伦理| 污污污视频网站在线观看| 国产欧美日本在线视频| www一区二区www免费| 全彩h工口| 在线日韩2| 久久久精品高潮美女毛片| 无码爆一二三区免费视频| 免费视频网站啊啊啊啊| 国产精品无码A∨精品影院app|