自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

2011軟件水平考試嵌入式系統(tǒng)設(shè)計師輔導(dǎo)筆記(15)

企業(yè)動態(tài)
2011軟件水平考試嵌入式系統(tǒng)設(shè)計師輔導(dǎo)筆記,幫助考生備考。

7、ARM體系結(jié)構(gòu)的基本概念

(1)ARM:Advanced RISC Machine。

(2)ARM體系結(jié)構(gòu)中支持兩種指令集:ARM 指令集和Thumb 指令集。

(3)ARM內(nèi)核有T、D、M、I四個功能模塊:

A、T 模塊:表示16位Thumb,可以在兼顧性能的同時減少代碼尺寸。

B、D 模塊:表示Debug,內(nèi)核中放置了用于調(diào)試的結(jié)構(gòu),通常為一個邊界掃描鏈JTAG。

C、M 模塊:表示8位乘法器。

D、I 模塊:表示EmbeddedICE Logic,用于實時斷點觀測及變量觀測的邏輯電路部分。

(4)ARM處理器有7種運行模式:

A、用戶模式(User):正常程序執(zhí)行模式,用于應(yīng)用程序。

D、快速中斷模式(FIQ):快速中斷處理,用于高速數(shù)據(jù)傳輸和通道處理。

C、外部中斷模式(IRQ):用于通用的中斷處理。

D、管理模式(SVE):供操作系統(tǒng)使用的一種保護(hù)模式。

E、數(shù)據(jù)訪問中止模式(Abort):用于虛擬存儲及存儲保護(hù)。

F、未定義指令中止模式(Undefined):當(dāng)未定義指令執(zhí)行時進(jìn)入該模式。

G、系統(tǒng)模式(System):用于運行特權(quán)級的操作系統(tǒng)任務(wù)。

除了用戶模式之外的其他6種處理器模式稱為特權(quán)模式,在這些模式下,程序可以訪問所有的系統(tǒng)資源,

也可以任意地進(jìn)行處理器模式切換,其中,除了系統(tǒng)模式外,其他的5種特權(quán)模式又稱為異常模式。

處理器模式可以通過軟件控制進(jìn)行切換,也可以通過外部中斷或異常處理過程進(jìn)行切換。大多數(shù)的用

戶程序運行在用戶模式下,這時,應(yīng)用程序不能訪問一些受操作系統(tǒng)保護(hù)的系統(tǒng)資源,應(yīng)用程序也不能直

接進(jìn)行處理器模式切換。當(dāng)需要進(jìn)行處理器模式切換時,應(yīng)用程序可以產(chǎn)生異常處理,在異常處理中進(jìn)行

處理器模式的切換。這種體系結(jié)構(gòu)可以使操作系統(tǒng)控制整個系統(tǒng)的資源。

當(dāng)應(yīng)用程序發(fā)生異常中斷時,處理器進(jìn)入相應(yīng)的異常模式。在每一種異常模式種都有一組寄存器,供

相應(yīng)的異常處理程序使用,這樣就可以保證進(jìn)入異常模式時,用戶模式下的寄存器不被破壞。

系統(tǒng)模式并不是通過異常過程進(jìn)入的,它和用戶模式具有完全一樣的寄存器,但是系統(tǒng)模式屬于特權(quán)

模式,可以訪問所有的系統(tǒng)資源,也可以直接進(jìn)行處理器模式切換,它主要供操作系統(tǒng)任務(wù)使用。

(***RM處理器共有37個寄存器:31個通用寄存器和6個狀態(tài)寄存器

A、通用寄存器包括R0~R15,可以分為3類:

a、未備份寄存器R0~R7:在所有的處理器模式下,未備份寄存器都是指向同一個物理寄存器。

b、備份寄存器R8~R14:

對于R8~R12來說,每個寄存器對于2個不同的物理寄存器,它們每次所訪問的物理寄存器都

與當(dāng)前的處理器運行模式有關(guān)。

對于R13、R14來說,每個寄存器對于6個不同的物理寄存器,其中一個是用戶模式和系統(tǒng)模

式共用。

R13在ARM 指令種常用作堆棧指針。由于處理器的每種運行模式都有自己獨立的物理寄存器

R13,所有在用戶應(yīng)用程序的初始化部分,一般要初始化每種模式下的R13,使其指向該運行

模式的??臻g。

R14又稱為連接寄存器(LR),在ARM 體系種具有下面兩種特殊作用:在通過BL 或BLX 指

令調(diào)用子程序時,存放當(dāng)前子程序的返回地址;在異常中斷發(fā)生時,存放異常模式將要返回的

地址。

c、程序計數(shù)器R15(PC)。

由于ARM 采用了流水線機制,在三級流水線中,當(dāng)正確讀取了PC 的值時,該值為當(dāng)前指令地址值加

8個字節(jié)。也就是說,PC 指向當(dāng)前指令的下兩條指令的地址。在ARM 指令狀態(tài)下,PC 的0和1位是0,

在Thumb 指令狀態(tài)下,PC 的0位是0。

B、程序狀態(tài)寄存器

a、ARM 體系結(jié)構(gòu)包含1個當(dāng)前程序狀態(tài)寄存器(CPSR)和5個備份的程序狀態(tài)寄存器(SPSR),使用

MSR 和MRS 指令來設(shè)置和讀取這些寄存器。

b、當(dāng)前程序狀態(tài)寄存器CPSR:保存當(dāng)前處理器狀態(tài)的信息,可以在任何處理器模式下被訪問。

c、備份程序狀態(tài)寄存器SPSR:每一種異常處理器模式下都有一個專用的物理狀態(tài)寄存器。當(dāng)特定的

異常中斷發(fā)生時,這個寄存器用于存放當(dāng)前程序狀態(tài)寄存器的內(nèi)容,在異常中斷程序退出時,可以

用SPSR 中保存的值來恢復(fù)CPSR。

d、由于用戶模式和系統(tǒng)模式不屬于異常模式,它們沒有SPSR,當(dāng)在這兩種模式下訪問SPSR 時,結(jié)

果是未知的。

(6)ARM指令的尋址方式

所謂尋址方式就是處理器根據(jù)指令中給出的地址信息來尋找物理地址的方式。

A、立即尋址:操作數(shù)本身就在指令中給出,只要取出指令也就取到了操作數(shù)。

ADD R0, R0, #1 ;R0??R0+1

B、寄存器尋址:利用寄存器中的數(shù)值作為操作數(shù)。

ADD R0, R1, R2 ;R0??R1+R2

C、寄存器間接尋址:以寄存器中的值作為操作數(shù)地址,而操作數(shù)本身存放在存儲器中。

ADD R0, R1, [R2] ;R0??R1+[R2]

LDR R0, [R1] ;R0??[R1]

STR R0, [R1] ;[R1]??R0

D、基址變址尋址:將寄存器(該寄存器一般稱作基址寄存器)的內(nèi)容與指令中給出的地址偏移量相

加,從而得到一個操作數(shù)的有效地址。

LDR R0, [R1, #4] ;R0??[R1+4]

LDR R0, [R1, #4]! ;R0??[R1+4] R1??R1+4

LDR R0, [R1], #4 ;R0??[R1] R1??R1+4

LDR R0, [R1, R2]! ;R0??[R1+R2]

E、多寄存器尋址:一條指令可以完成多個寄存器值的傳送。

LDMIA R0, {R1, R2, R3} ;R1??[R0] R2??[R0+4] R3??[R0+8]

F、相對尋址:以程序計數(shù)器PC 的當(dāng)前值作為基地址,指令中的地址標(biāo)號作為偏移量,兩者相加之

后得到操作數(shù)的有效地址。

BL NEXT ;跳轉(zhuǎn)到子程序NEXT 處執(zhí)行

……

NEXT

……

MOV PC, LR ;從子程序返回

G、堆棧尋址:支持4種類型的堆棧工作方式:

a、滿遞增堆棧:堆棧指針指向***壓入的數(shù)據(jù),且由低地址向高地址生長。

b、滿遞減堆棧:堆棧指針指向***壓入的數(shù)據(jù),且由高地址向低地址生長。

c、空遞增堆棧:堆棧指針指向下一個將要放入數(shù)據(jù)的空位置,且由低地址向高地址生長。

d、空遞減堆棧:堆棧指針指向下一個將要放入數(shù)據(jù)的空位置,且由高地址向低地址生長。

(7)ARM的存儲方法

A、大端模式:數(shù)據(jù)的高字節(jié)存儲在低地址中,低字節(jié)存儲在高地址中。

B、小端模式:數(shù)據(jù)的低字節(jié)存儲在低地址中,高字節(jié)存儲在高地址中。

(8)ARM中斷與異常

A、ARM 內(nèi)核支持7種中斷,不同的中斷處于不同的處理模式,具有不同的優(yōu)先級,而且每個中斷都有

固定的中斷地址入口。當(dāng)一個中斷發(fā)生是,相應(yīng)的R14(LR)存儲中斷返回地址,SPSR 存儲當(dāng)前

程序狀態(tài)寄存器CPSR 的值。

B、由于ARM 內(nèi)核支持流水線工作,LR 寄存器存儲的地址可能是發(fā)生中斷后面指令的地址,所以不同

的中斷處理完成后,必須將LR 寄存器值經(jīng)過處理后再寫入P15(PC)寄存器。

C、ARM 異常的具體含義:

a、復(fù)位:當(dāng)處理器的復(fù)位電平有效時,產(chǎn)生復(fù)位異常,程序跳轉(zhuǎn)到異常復(fù)位異常處理程序處執(zhí)行。

b、未定義的指令:當(dāng)ARM 處理器或協(xié)處理器遇到不能處理的指令時,產(chǎn)生未定義指令異常???/p>

以使用該異常機制進(jìn)行軟件仿真。

c、軟件中斷:該異常由執(zhí)行SWI 指令產(chǎn)生,可用于用戶模式下的程序調(diào)用特權(quán)操作指令??墒褂?/p>

該異常機制實現(xiàn)操作系統(tǒng)調(diào)用功能。

d、指令預(yù)取中止:如果處理器預(yù)取指令的地址不存在或該地址不允許當(dāng)前指令訪問,存儲器向處

理器發(fā)出中止信號,但當(dāng)預(yù)取的指令被執(zhí)行時,才會產(chǎn)生指令預(yù)取中止異常。

e、數(shù)據(jù)訪問中止:如果處理器數(shù)據(jù)訪問指令的目標(biāo)地址不存在,或者該地址不允許當(dāng)前指令訪問,

處理器產(chǎn)生數(shù)據(jù)訪問中止異常。

f、外部中斷請求:當(dāng)ARM 外部中斷請求管腳有效,而且CPSR 中的I 位為0時,產(chǎn)生IRQ 異常。

系統(tǒng)的外設(shè)可以通過該異常請求中斷服務(wù)。

g、快速中斷請求:當(dāng)ARM 快速中斷請求管腳有效,而且CPSR 的F 位為0時,產(chǎn)生FIQ 異常。

D、ARM 處理器對異常中斷的響應(yīng)過程

a、將下一條指令的地址存入相應(yīng)的連接寄存器LR 中。

b、將CPSR 復(fù)制到相應(yīng)的SPSR 中。

c、根據(jù)異常的類型,強制設(shè)置CPSR 的運行模式位。

d、強制PC 從相關(guān)的異常向量地址取下一條指令執(zhí)行,從而跳轉(zhuǎn)到相應(yīng)的異常處理程序處。

E、ARM 處理器從異常中斷處理程序中返回

a、恢復(fù)中斷的程序的處理器狀態(tài),將SPSR 復(fù)制到CPSR 中。

b、若在進(jìn)入異常處理時設(shè)置了中斷禁止位,要在此清除。

c、將連接寄存器LR 的值減去相應(yīng)的偏移量后送到PC。

F、復(fù)位異常中斷處理程序不需要返回。在復(fù)位異常中斷程序開始整個用戶程序的執(zhí)行。

 

【編輯推薦】

  1. 2011軟件水平考試嵌入式系統(tǒng)設(shè)計師輔導(dǎo)筆記(14)
  2. 2011軟件水平考試嵌入式系統(tǒng)設(shè)計師輔導(dǎo)筆記(13)
  3. 2011軟件水平考試嵌入式系統(tǒng)設(shè)計師輔導(dǎo)筆記(12)
  4. 更多軟考資料請點擊51CTO軟考專題
責(zé)任編輯:張攀 來源: 考試吧
相關(guān)推薦

2010-12-23 11:11:58

嵌入式系統(tǒng)設(shè)計師

2010-12-16 10:54:03

嵌入式系統(tǒng)設(shè)計師

2010-12-14 11:10:25

嵌入式系統(tǒng)設(shè)計師

2010-12-14 11:12:36

嵌入式系統(tǒng)設(shè)計師

2010-12-27 10:42:42

嵌入式系統(tǒng)設(shè)計師

2011-01-07 11:19:44

嵌入式系統(tǒng)設(shè)計師

2010-12-17 11:04:28

嵌入式系統(tǒng)設(shè)計師

2010-12-22 11:12:21

嵌入式系統(tǒng)設(shè)計師

2011-01-14 11:39:21

嵌入式系統(tǒng)設(shè)計師

2011-01-05 14:24:26

嵌入式系統(tǒng)設(shè)計師

2011-01-14 11:30:10

嵌入式系統(tǒng)設(shè)計師

2011-03-03 11:14:21

嵌入式系統(tǒng)設(shè)計師

2011-01-12 10:38:03

嵌入式系統(tǒng)設(shè)計師

2011-01-12 10:42:25

嵌入式系統(tǒng)設(shè)計師

2010-12-23 11:14:39

信息系統(tǒng)管理師

2010-12-10 10:32:15

軟件設(shè)計師

2010-12-08 10:50:16

軟件設(shè)計師

2010-12-08 10:54:27

軟件設(shè)計師

2010-12-17 10:34:03

軟件設(shè)計師

2010-12-09 10:51:56

考試軟件設(shè)計
點贊
收藏

51CTO技術(shù)棧公眾號