chapter-2體系結(jié)構(gòu)-異常_第1頁
chapter-2體系結(jié)構(gòu)-異常_第2頁
chapter-2體系結(jié)構(gòu)-異常_第3頁
chapter-2體系結(jié)構(gòu)-異常_第4頁
chapter-2體系結(jié)構(gòu)-異常_第5頁
已閱讀5頁,還剩99頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

第3章目錄

口9.異常

□2.ARM7TDMI口10.中斷延遲

□3.ARM7TDMI的模塊和口11.復(fù)位

內(nèi)部框圖口12,存儲器及存儲器映射

口4.體系結(jié)構(gòu)直接支持的I/O

藪搪類型去j口13.尋址方式簡介,

□5.處通蠢狀態(tài)一一

□14.AKM7指令簡介

口6.處理器模式氐1_

口15.協(xié)處理器接口

口7.內(nèi)部寄存器二」口16.調(diào)試接口簡介

□8.程序狀態(tài)寄存器口17.ETM接口簡介

3.9異常

■簡介

只要正常的程序流被暫時中止,處理器就進入

異常模式。例如響應(yīng)一個來自外設(shè)的中新。在處理

異常之前,ARM7TDMI內(nèi)核保存當前的處理器狀

態(tài),這樣當處理程序結(jié)束時可以恢復(fù)執(zhí)行原來的程

序O

如果同時發(fā)生兩個或更多異常,那么將按照固

定的順序來處理異常,詳見“異常優(yōu)先級”部分。

之前的狀態(tài)

異?;蛉肟诜祷刂噶頣humb備注

ARMR14_x

R14_x

BLMOVPC,R14PC+4PC+2

此處PC為

SWIMOVSPC,R14_svcPC+4PC+2BL,SWI,為

未定義的指令MOVSPC,R14_undPC+4PC+2定義的指令取

指或預(yù)取指中

SUBS

預(yù)取指中止PC+4PC+4止指令的地址

PC,R14_abt,#4

SUBS

快中斷PC+4PC+4此處PC為由于

PC,R14_fiq,#4FIQ或IRQ占先

SUBS而沒有被執(zhí)行

,中斷PC+4PC+4

PC,R14Jrq,#4的指令的地址

此處PC為產(chǎn)生

SUBS數(shù)據(jù)中止的裝

數(shù)據(jù)中止PC+8PC+8

PC,R14_abt,#8載或保存指令

的地址。

復(fù)位時保存在

復(fù)位無——R14_svc中的值

不可5頁知。

注意:“MOVSPC,K14svc”是指在管理模式執(zhí)行MOVSPC,RkI?指令。"MOVS

3.9異常

■異常的入口和出口處理

如果異常處理程序已經(jīng)把返回地址拷貝到堆找,

那么可以使用一條多寄存器傳送指令來恢復(fù)用戶寄

存器并實現(xiàn)返回。

中斷處理代丹的開始部分和退出部分

SUBLR,LR,#4;計算返回地址

STMFDSP!,{R0-R3,LR};保存使用到的寄存器

LDMFDSP!,{R0-R3,PC)A;中新返回

**

,I-----

7,一?一「一▼!

3.9異常

異常的入口和出口處理

注意:中新返回指令的寄存器列表(其中必須包括

PCJ后的'符號表示這是一條特殊形式的指令。

這條指令在從存儲器中裝載PC的同時(PC是最后

恢復(fù)的),CPSR也得到恢復(fù)。這里使用的堆找指針

SPCR13J是屬于異常模式的寄存器,每個異常模

式有自己的堆找指針。這個堆找指針應(yīng)必須在豕統(tǒng)

啟動時初始化。

LDMFDSP!,{R0-R3,PCg;中新返回

3.9異常

?進入異常

在異常發(fā)生后,ARM7TDMI內(nèi)核會作以下工作:

L在適當?shù)腖R中保存下一條指令的地址,當異常人

口來自:

■ARM狀態(tài),那么ARM7TDMI將當前指令地址

加4或加8復(fù)制(職決于異常的類型)到LR中;

■為Thumb狀態(tài),那么ARM7TDM1將當前指令

地址加2或加4(職決于異常的類型)復(fù)制到LR

中;異常處理器程序不必確定我去。

3.9異常

■進入異常

在異常發(fā)生后,ARM7TDMI內(nèi)核會作以下工作:

2.將CPSR復(fù)制到適當?shù)腟PSR中;

3.將CPSR模式位強制設(shè)置為與異常類型相對應(yīng)的值;

4.強制PC從相關(guān)的異常向量處聯(lián)指o

3.9異常

■進入異常

ARM7TDMI內(nèi)核在中新異常時置住中斷禁止標

志,這樣可以防止不受控制的異常嵌套。

注:異常忍是在ARM狀態(tài)中進行處理。當處理器處

于Thumb狀態(tài)時發(fā)生了異常,在異常向量地址裝入

PC時,會自動切換到ARM狀態(tài)。

3.9異常

■退出異常

當異常結(jié)束時,異常處理程序必須:

1.將LR中的值戒去偏移量后存入PC,偏移量根據(jù)異

常的類型而有所不同;

2.將SPSR的值復(fù)制回CPSR;

3.請零在人口置住的中斷禁止標志。

注:恢復(fù)CPSR的動作會將T、F和1住自動恢復(fù)為異

常發(fā)生前的值。

2.用戶程序運行時發(fā)生條統(tǒng)模式IRQ模式

1R金的雌怨好螭而送百

利診:程序,假定當前處理

■穩(wěn)趨感腐曲L闔蜘(熔播必

I融般蠲鄙PSR寄存器序

■置住I住(禁止IRQ中新)

■清零T?。ㄟM入ARM狀態(tài))

■設(shè)置MOD住,切換處理器

模式至IRQ模式寄

■將下一條指令的地址存入存

IRQ模式的LR寄存器組

■將跳轉(zhuǎn)地址存入PC,實

現(xiàn)跳轉(zhuǎn)“?”表示對該位不關(guān)心

在異常處理結(jié)束后,異常條統(tǒng)模式IRQ模式

處理程序完成以下動作:

■將SPSR寄存器的值復(fù)制回

CPSR寄存器;

■將LR寄存的值臧去一個常

量后復(fù)制到PC寄存器,跳

轉(zhuǎn)到校中新的用戶程序。

LRsysBackAddr

寄LR

存PCBackAddr-4

器NZCV...IFTMOD

CPSR

組????...0?1SYS

SPSR????.0

“?”表示對該位不關(guān)心

3.9異常

快速中斷請求

快速中斷請求(F1Q)適用于對一個突發(fā)事件的快速

響應(yīng),這得益于在ARM狀態(tài)中,快中新模式有8個專用

的寄存器可用來滿足寄存器保護的需要(這可以加速

上下文切換的速度)o

不管異常人口是來自ARM狀忐還是Thumb狀去,

F1Q處理程序都會通過執(zhí)行下面的指令從中斷返回:

SUBSPC,R14_fiq,#4

在一個特權(quán)模式中,可以通過置住CPSR中的F住

來禁止F1Q異常。

3.9異常

?中斷請求

中斷請求CIRQJ異常是一個由nlRQ輸入端的低

包平所產(chǎn)生的正常中斷(在具體的恙片中,nlRQ由片

內(nèi)外設(shè)拉低,nlRQ是內(nèi)核的一個信號,對用戶不可

見)oIRQ的優(yōu)先級低于F1Q。對于FIQ序列它是被屏

霰的。任何時候在一個特權(quán)模式下,都可通過置住

CPSR中的I位來禁止IRQ。

不管異常人口是來自ARM狀態(tài)還是Thumb狀去,

F1Q處理程序都會通過執(zhí)行下面的指令從中斷返回:

SUBSPC,R14_fiqz#4

3.9異常

■中止

中止發(fā)生在對存儲器的訪問不能完成時,中止

包含兩種類型:

■預(yù)職中止發(fā)生在指令預(yù)取過程中

■數(shù)據(jù)中止發(fā)生在對數(shù)據(jù)訪問時

3.9異常

■中止—預(yù)取指中止

當發(fā)生預(yù)取中止時,ARM7TDM1內(nèi)核將預(yù)取的

指令標記為無效,但在指令到達流水線的執(zhí)行階段

時才進入異常。如果指令在流水線中因為發(fā)生分支

而沒有被執(zhí)行,中止將不會發(fā)生。

在處理中止的原因之后,不管處于哪種處理器

操作狀去,處理程序都會軌行下面的指令恢復(fù)PC和

CPSR并重試被中止的指令:

SUBSPCZR14abt,#4

3.9異常

■中止—數(shù)據(jù)中止

當發(fā)生數(shù)據(jù)中止后,根據(jù)產(chǎn)生數(shù)據(jù)中止的指令

類型作出不同的處理:

■數(shù)據(jù)轉(zhuǎn)移指令(LDR、STRJ回寫到被修改的基址

寄存器。中止處理程序必須注意這一點;

■交換指令CSWPJ中止好像沒有被執(zhí)行過一樣

(中止必須發(fā)生在SWP指令進行讀訪問時);

3.9異常

■中止—數(shù)據(jù)中止

當發(fā)生數(shù)據(jù)中止后,根據(jù)產(chǎn)生數(shù)據(jù)中止的指令

類型作出不同的處理:

■塊數(shù)據(jù)轉(zhuǎn)移指令CLDM,STMJ完成。當回寫被設(shè)

置時,基址寄存器被更新。在指示出現(xiàn)中止后,

ARM7TDM1內(nèi)核防止所有寄存器被覆蓋。這意味

著ARM7TDMI內(nèi)核總是會保護被中止的LDM指令

中的R15(總是最后一個被轉(zhuǎn)移的寄存器)o

3.9異常

■中止----數(shù)據(jù)中止

在修復(fù)產(chǎn)生中止的原因后,不管處于哪種處理

器操作狀態(tài),處理程序都必須執(zhí)行下面的返回指令:

SUBSPC,R14abt,#8

3.9異常

軟件中斷指令

使用軟件中斷(SWI)指令可以進入管理模式,

通常用于請求一個特定的管理函數(shù)。SW1處理程序

通過軌行下面的指令返回:

MOVSPC,Rl4_svc

這個動作恢復(fù)了PC和CPSR并返回到SW1之后的

指令。SW1處理程序讀取操作碼以提取SWI的數(shù)編

號。

3.9異常

未定義的指令

當ARM7TDM1處理器遇到一條自己和余統(tǒng)內(nèi)

任何協(xié)處理器都無法處理的指令時,ARM7TDM1

內(nèi)核軌行未定義指令陷阱。軟件可使用這一機制通

過模擬未定義的協(xié)處理器指令來廣展ARM指令集。

注:ARM7TDMI處理器完全遵循ARM結(jié)構(gòu)v4T,可

以輔獲所有分類未被定義的指令住格式。

3.9異常

未定義的指令

在模擬處理了失敗的指令后,陷阱程序軌行下面

的指令:

MOVSPC,RI4_svc

這個動作恢復(fù)了PC和CPSR并返回到未定義指

令之后的指令。

異常向量

進入時F的狀

地址異常類型進入時的模式進入時I的狀態(tài)

態(tài)

0x00000000復(fù)位管理禁止禁止

0x00000004未定義指令未定義IF

0x00000008軟件中斷管理禁止F

0x0000000C中止(預(yù)?。┲兄笽F

0x00000010中止(數(shù)據(jù))中止IF

0x00000014保留保留——

0x00000018IRQ中斷禁止F

0x0000001CFIQ快中斷禁止禁止

注:表中的I和F表示不對該住有影響,保留原來的指。

3.9異常

異常優(yōu)先級

注意:

■未定義的指令和SWI異?;コ?。因為同一條指令不

能既是未定義的,又能產(chǎn)生有效的軟件中斷;

■當F1Q使能,并且FIQ和數(shù)據(jù)中止異常同時發(fā)生時,

ARM7TDMI內(nèi)核首先進入數(shù)據(jù)中止處理程序,然

后立即跳轉(zhuǎn)到FIQ向量。在F1Q處理結(jié)束后返回到數(shù)

據(jù)中止處理程序。數(shù)據(jù)中止的優(yōu)先級必須高于F1Q

以確保數(shù)據(jù)轉(zhuǎn)移錯誤不會被漏過。

3.11復(fù)位

■復(fù)位

當nRESET信號被拉低時(一般外部復(fù)住引腳也

平的變化和燭片的其它復(fù)住源會改變這個內(nèi)核信

號),ARM7TDMI處理器放棄正在執(zhí)行的指令。

在復(fù)核后,除PC和CPSR之外的所有寄存器的

值都不確定。

3.11復(fù)位

■復(fù)位

當nRESET信號再次變?yōu)楦甙綍r,ARM處理

器執(zhí)行下列操作:

1.強制M[4:0]變?yōu)閎lOOII(管理模式);

2.置住CPSR中的1和F位;

3.清零CPSR中的T住;

4.強制PC從地址0x00開始對下一條指令進行聯(lián)指;

5.返回到ARM狀態(tài)并恢復(fù)執(zhí)行。

第3章m錄

□i.簡介□9.異常:

□2.ARM71DMI口10.中斷延遲

□3.ARM7TDMI的模塊和口11.復(fù)位

內(nèi)部框圖口12.存儲器及存儲器映射

□4,體系結(jié)構(gòu)直接支持的I/O

數(shù)據(jù)類型口13.尋址方式簡介

算.處理器狀態(tài)口14.ARM7指令簡介

里器模式口15.協(xié)處理器接口

存器口16.調(diào)試接口簡介

1口《融寄整口17.ETM接口簡介

3.12存儲器及存儲器映射I/O

■簡介-81

ARM7TDMI處理器及用馮?諾依曼(Von

Neumann;結(jié)構(gòu),指令和數(shù)據(jù)共用一條32傳數(shù)據(jù)

總線。只有裝我、保存和交換指令可訪問存儲器中

的數(shù)據(jù)。

?r~

3..1J?

3.12存儲器及存儲器映射I/O

簡介

ARM7的規(guī)范僅定義了處理器核與存儲系統(tǒng)之

間的信號及時序(局部總線),而現(xiàn)實的恙片一般

在外部總線與處理器核的局部總線之間有一個存儲

器管理部件將局部忍線的信號和時序轉(zhuǎn)換為現(xiàn)實的

外部總線信號和時序。因此,外部總線的信號和時

序與具體的恙片相關(guān),不是ARM7的標準。具體到

某個恙片的外部存儲系統(tǒng)的設(shè)計需要參考其湛片的

數(shù)據(jù)手冊或使用手冊等密料。

3.12存儲器及存儲器映射I/O

■簡介

ARM7TDMI處理器將存儲器看作是一個從。開

始的線性遹增的字節(jié)集合:

■字節(jié)。到3保存第1個存儲的字

■字節(jié)4到7保存第2個存儲的字

■字節(jié)8到11保存第3個存儲的字

■依此類推

3.12存儲器及存儲器映射I/O

簡介

ARM7TDMI處理器可以將存儲器中的字以下列

格式存儲(詳細說明見“存儲器格式小節(jié)):

■大瑞格式(Big-endian)

3.12存儲器及存儲器映射I/O

地址空間

ARM結(jié)構(gòu)使用單個平面的2?2個8住字節(jié)地址空

間。字節(jié)地址按照無符號數(shù)排列,從0到232-屋地

址空間可以看作是包含萬。個32優(yōu)字,或231個16住

半字。如果地址向上或向下溢出地址會間,通常會

發(fā)生翻轉(zhuǎn)。

注意:如果在取指操作時地址發(fā)生溢出,只要沒有

施行預(yù)職的無效指令,就不會導(dǎo)致異常。

二J匚jl-

<4?,.<??id

3.12存儲器及存儲器映射I/O

■存儲器格式

地址會間的規(guī)則:

字+1,A+2和

A+3;人

半字

■優(yōu)于地土:__、_A_'A+1;

■住于地:字節(jié)字節(jié)字節(jié)字節(jié)址A+2和

A+3;地址AA+lA+2A+3

i+2;

3.12存儲器及存儲器映射I/O

■存儲器格式

3.12存儲器及存儲器映射I/O

未對齊的存儲器訪問

ARM結(jié)構(gòu)通常希望所有的存儲器訪問都合理的對

齊。具體來說就是字訪問的地址通常是字對齊的,而

半字訪問使用的地址是率字對齊的。不按這種方式對

齊的存儲器訪問稱為非對齊的存儲器訪問O

■將一個非字(率字)對齊的地址寫入ARM

(Thumb)狀忐的R15寄存器,將引起非對齊的指

令指O

■在一個非字r率字)對齊的地址讀寫~個字(率

字),將引起非對齊的數(shù)據(jù)訪問:

M*HiBnMi'1Mbtabf■■B

第3章目錄

口1.簡介口19.異常)

□2.ARM71DMI□110.中斷延遲

□3.ARM7TDMI的模塊和口111.復(fù)位

內(nèi)部框圖口112.存儲器及存儲器映射

口4,體系結(jié)構(gòu)直接支持的I/O

.數(shù)據(jù)類型口113.尋址方式簡介

.處理器狀態(tài)口I14.ARM7指令簡介

里型式□115.協(xié)處理器接口

寄存器口u1|140.調(diào)〃可1A#恢第口1簡1日J介川

尸踴1?酷費繆□

I17.ETM接口簡介A

第3章目錄

□18.Load/Store體系結(jié)

構(gòu)

□19.監(jiān)控模式

□20.ARM開發(fā)工具

3.13尋址方式簡介

尋址方式分類

尋址方式是處理器執(zhí)行指令時尋找真實操作教

地址的方式。ARM處理器支持9種基本尋址方式:

■寄存器尋址;■多寄存器尋址;

■立即尋址;■堆找尋址;

■寄存器移住尋址;■塊拷貝尋址;

■寄存器間接尋址;■相對尋址;

■基址尋址;

3.13尋址方式簡介

尋址方式分類——寄存器尋址

操作教的值在寄存器中,指令中的地址碼字段

指出的冷船良饕編生—施至胡J王此近尾鼠蟲寄存器

值來操

MOVR1

3.13尋址方式簡介

尋址方式分類—立即尋址

立即尋址指令中的操作碼字段后面的地址碼部

分阻具爆繪故入丸—Lit星擊一數(shù)_捱虬包且dU缸繪

當程序存儲

(這

SUE隊代碼中獲得數(shù)據(jù)

M0\

MOVR0,#0xFF00

3.13尋址方式簡介

尋址方式分類——寄存器移位尋址

寄存器移住尋址是ARM指令集特有的尋址方式。

第2小爆偉晶2害忘受杉色方丈肘.第24等點器

近若左移3住

R20x010x08

R00x08一

MOVR0,R2,LSL#3

II,[w

3.13尋址方式簡介

■尋址方式分類——寄存器間接尋址

寄存器間接尋址指令中的地址碼給出的是一個

通用盍定器j缸綠圭—麻羹魚盤餐瓶器技

定q

針,

LDF

SWE

LDRR0JR2]

3.13尋址方式簡介

■尋址方式分類一一基址尋址

基址尋址就是將基址寄存器的內(nèi)叁與指令中給

出的_搐身算受”0二也.一般就舞2

組,

例:

LDF

STF

LDRR2,[R3,#0x0C]

3.13尋址方式簡介

■尋址方式分類一一基址尋址

基址尋址就是將基址寄存器的內(nèi)叁與指令中給

出的_搐身算受”0二也.一般就舞2

組,

例:

LDF

STF

LDRR2,[R3,#0x0C]

3.13尋址方式簡介

?尋址方式分類——多寄存器尋址

多寄存器尋址一次可傳送幾個寄存器值,允許

R60x04w-0x040x4000000C

LDR—

R40x03h「0x030x40000008

R30x02v-0x020x40000004

STNR20x01<-0x010x40000000

R10x40000010____器^

LDMIAR1!,{R2-R4,R6}

3.13尋址方式簡介

■尋址方式分類----堆棧尋址

堆找是一個段特定順序進行存取的存儲區(qū),操

作順序為“后進先出”。堆找尋址是噫含的,它使

用一個專門的寄存器(堆找指針)指向一塊存儲區(qū)域

(堆找),指針所指向的存儲單元即是堆找的找頂。

存儲器堆找可分為兩種:

■向上生長:向高地址方向生長,稱為遹增堆找

■向下生長:向低地址方向生長,稱為遹戒堆找

I

4

3.13尋址方式簡介

■尋址方式分類----堆棧尋址

3.13尋址方式簡介

■尋址方式分類----堆棧尋址

堆找指針指向最后壓人的堆找的有效數(shù)據(jù)項,

稱為滿堆找;堆找指針指向下一個待壓人數(shù)據(jù)的空

住置,稱為空堆找。

3.13尋址方式簡介

■尋址方式分類----堆棧尋址

所以可以組合出四種類型的堆模方式:

■滿遹增:堆找句上增長,堆找指針指向內(nèi)含有效

數(shù)據(jù)項的最高地址。指令如LDMFA、STMFA等;

■空遹增:堆找向上增長,堆找指針指向堆找上的

第一個全住置。指令如LDMEA、STMEA等;

■滿遹臧:堆找向下增長,堆找指針指向內(nèi)含有效

數(shù)據(jù)項的最低地址。指令如LDMFD、STMFD等;

■空遹減:堆找向下增長,堆找指針句堆找下的第

黑金荔/工一個空住灌。指令如LDMED、STMED等。

3.13尋址方式簡介

尋址方式分類——塊拷貝尋址

多寄存器傳送指令用于將~塊數(shù)據(jù)從存儲器的

第一住置拷貝到另一住置。如:

STMIARO!,{R1-R7);將區(qū)1?R7的數(shù)據(jù)保存到存儲器中。

;存儲指針在保存第一個值之后增加,

一二;增長方向為向上增長。

STMIBRO!,{R1-R7);將區(qū)1?R7的數(shù)據(jù)保存到存儲器中。

;;存儲指針在保存第~個值之前增加,

;增長方向為向上增長。

3.13尋址方式簡介

尋址方式分類----相對尋址

相對尋址是基址尋址的一種變通。由程序計教

器PC提供基準地址,指令中的地址碼字段作為偏移

量,兩者相加后得到的地址即為操作數(shù)的有效地址。

相對尋址指令舉例如下:

BLSUBR1;調(diào)用到SUBR1子程序

BEQLOOP;條件跳轉(zhuǎn)到LOOP標號處

LOOPMOVR6,#1

第3章目錄

口1.簡介口9.異?!?/p>

□2.ARM7TDMI口10.中斷延遲

□3.ARM7TDMI的模塊和口11.復(fù)位

內(nèi)部框圖口12,存儲器及存儲器映射

口4.體系結(jié)構(gòu)直接支持的I/O

3t.數(shù)據(jù)類型口13.尋址方式簡介

總處理器狀態(tài)口14.ARM7指令簡介

理器模式口15.協(xié)處理器接口

:B寄存器口16.調(diào)試接口簡介

態(tài)寄存器口17.ETM接口簡介

第3章目錄

□18.Load/Store體系結(jié)

構(gòu)

□19.監(jiān)控模式

□20.ARM開發(fā)工具

3.14AMR7指令集簡介

■簡介

ARM7TDMI處理器有兩個指令集,每種指令集

都有自己的優(yōu)缺點:

■32佳ARM指令集:對ARM核的特性提供最大的

支持,具有高效、快速的特點;

■16住Thumb指令集:它是ARM指令的子集,具

有更高的代碼密度,非常適合存儲器帶寬和空間

都受F艮制的送八式應(yīng)用場合。

3.14AMR7指令集簡介

ARM指令集

ARM指令集可分為5大類指令,所有指令都可以

條件執(zhí)行,其中一些指令還可以根據(jù)執(zhí)行結(jié)果更新

CPSR寄存器的相關(guān)標志住(N、Z、C和V):

■分文指令;

■數(shù)據(jù)處理指令;

■加載和存儲指令;

■協(xié)處理器指令;

■雜項指令O

3.14AMR7指令集簡介

-ARM指令集

分支指令

指令助記符功能描述

B分支指令

BX帶狀態(tài)切換的分支指令

BL帶連接的分支指令

I___________

分支指令

轉(zhuǎn)移和連接CBLJ選項在跳轉(zhuǎn)后將指令地址保存在

R14(LR)當中、這樣通過將LR復(fù)制到PC可實現(xiàn)子程序的返

回、

另外有的分支指令可在指令集之間進行切換,此時,

分支指令執(zhí)行完成后處理器繼續(xù)執(zhí)行Thumb指令集的指

令、這樣就允許ARM代碼調(diào)用Thumb子程序,而ARM子程

序也可返回到Thumb調(diào)用程序、Thumb指令集中相似的指令

可實現(xiàn)對應(yīng)的Thumb—ARM切換、

3.14AMR7指令集簡介

ARM指令集

(2)數(shù)據(jù)處理指令

數(shù)據(jù)處理指令在通用寄存器上執(zhí)行計算、ARM7TDM1的

數(shù)據(jù)處理指令分為3種類型:算術(shù)/近屬指令、比較指令和

乘法指令,

(3)加載/存儲指令

加我/保存指令包括:加我/保存寄存器,加載/保存

多個寄存器和交換寄存器和存儲器內(nèi)叁、

3.14AMR7指令集簡介

(3)加載/存儲指令

類別指令”已功能描述

單寄存器加載LDR存儲器向寄存器加載字數(shù)據(jù)

多寄存器加載LDM存儲器向多個寄存器加載字數(shù)據(jù)

單寄存器存儲STR寄存器向存儲器存儲字數(shù)據(jù)

多寄存器存儲STM多個寄存器向存儲器存儲字數(shù)據(jù)

寄存器交換SWP寄存器與存儲器交換字數(shù)據(jù)

3.14AMR7指令集簡介

ARM指令集

(4)協(xié)處理器指令

協(xié)處理器指令有3種類型:

數(shù)據(jù)處理指令:啟動一個協(xié)處理器專用的內(nèi)部操作、

數(shù)據(jù)轉(zhuǎn)移指令:將數(shù)據(jù)在協(xié)處理器和存儲器之間進行轉(zhuǎn)移

寄存器轉(zhuǎn)移指令:允許協(xié)處理器值轉(zhuǎn)移到ARM寄存器或?qū)?/p>

ARM寄存器值轉(zhuǎn)移到協(xié)處理器、

3.14AMR7指令集簡介

■ARM指令集

(4)協(xié)處理器指令

指令助記符功能描述

CDP協(xié)處理器數(shù)據(jù)操作指令

LDC協(xié)處理器數(shù)據(jù)加載指令

MCRARM處理器寄存器到協(xié)處理器寄存器

的數(shù)據(jù)傳送器令

MRC協(xié)處理器寄存器到ARM處理器寄存器

的數(shù)據(jù)傳送指令

STC協(xié)處理器數(shù)據(jù)存儲指令

3.14AMR7指令集簡介

(4)協(xié)處理器指令

CDP指令用于ARM處理器通知ARM協(xié)處理器執(zhí)行特定的

操作,若協(xié)處理器不能成功完成特定的操作,則產(chǎn)生未定義指

令異常O

LDC指令用于把源寄存器所指向的存儲器中的字數(shù)據(jù)傳送

到目的寄存器中。若協(xié)處理器不能成功完成傳送操作,則產(chǎn)

生未定義指令異常。

STC指令與LDC指令對應(yīng),用于把源寄存器Rs中的字數(shù)據(jù)

傳送到目的寄存器Rd所指向的存儲器。若協(xié)處理器不能成功

完成傳送操作,則產(chǎn)生未定義指令異常o

3.14AMR7指令集簡介

■ARM指令集

(5)雜項指令

雜項指令包括狀志寄存器轉(zhuǎn)移指令和異常產(chǎn)生指令

指令助記符功能描述

SWI軟件中新指令

3.14AMR7指令集簡介

Thumb指令集

Thumb指令集可分為4大類指令:

■分支指令;

M*HiBnMi'1Mbtabf■■B

第3章目錄

口1.簡介口19.異常)

□2.ARM71DMI□110.中斷延遲

□3.ARM7TDMI的模塊和口111.復(fù)位

內(nèi)部框圖口112.存儲器及存儲器映射

口4,體系結(jié)構(gòu)直接支持的I/O

*數(shù)據(jù)類型□113.尋址方式簡介

.處理器狀態(tài)口I14.ARM7指令簡介

器模式口115.協(xié)處理器接口

書寄存器□u1|140.調(diào)〃可1A#恢第口1簡1日J介川

尸踴1?酷費繆□

I17.ETM接口簡介A

第3章目錄

□18.Load/Store體系結(jié)

構(gòu)

□19.監(jiān)控模式

□20.ARM開發(fā)工具

3.15協(xié)處理器接口

■簡介

ARM7TDMI處理器指令集使您可以通過協(xié)處理

器來實現(xiàn)特殊的附加指令。這些協(xié)處理器是與

ARM7TDMI內(nèi)核相結(jié)合的單獨的處理單元。一個典

型的協(xié)處理器包括:

■指令流水線;

■指令譯碼近春;

■寄存器分組;

■帶獨立數(shù)據(jù)通路的特殊處理謖梅。

3.15協(xié)處理器接口

簡介

ARM內(nèi)核與協(xié)處理器的關(guān)系

3.15協(xié)處理器接口

■指令的執(zhí)行由ARM7TDM1內(nèi)核與協(xié)處理器共同實現(xiàn).

ARM7TDMI內(nèi)核用于:

⑺求出條件代碼的值以確定指令是否必須由協(xié)處理器執(zhí)行,

然后使用CPnl(內(nèi)核與協(xié)處理器握手的信號)通知余統(tǒng)中的

所有協(xié)處理器、

⑵產(chǎn)生指令所要求的地址來埴充流水線、

⑶如果出現(xiàn)協(xié)處理器不接受的指令,則執(zhí)行未定義指令陷阱

協(xié)處理器用于:

⑺對指令進行譯碼以確定是否接受、

⑵通過CPA和CPB(內(nèi)核與協(xié)處理器握手的信號)指示它是

否接受這一指令,

⑶從自身的寄存器組當中取出任何需要的值、

⑷執(zhí)行指令所需要的操作.

3.15協(xié)處理器接口

可用的協(xié)處理器

一個系統(tǒng)最多可連接16個協(xié)處理器,每個協(xié)處

理器都通過唯一的1D號識別。ARM7TDM1處理器包

合兩個協(xié)處理器,它們不能再用在外部協(xié)處理器:

■CP14通信通道協(xié)處理器;

■CP15為cache和MMU功能提供的系統(tǒng)控制協(xié)處

理器。

3.15協(xié)處理器接口

■可用的協(xié)處理器協(xié)處理器編號分配

15祭統(tǒng)控制

不能將外部協(xié)處理器的編號分

配為14和15.14調(diào)試控制器

ARM還保留了其他的協(xié)處理13:8

器編號,見右表.

7:4可供溫片設(shè)計

者使用

3:0保留

3.15協(xié)處理器接口

1關(guān)于未定義的指令

ARM7TDMI處理器執(zhí)行完全的ARM結(jié)構(gòu)v4T未定義指

令的處理.這意味著ARM體系結(jié)構(gòu)參考手冊中定義為

UNDEFINED的任何指令都會使ARM7TDMI處理器執(zhí)行未定

義指令陷阱.任何一個不被協(xié)處理器接受的指令也會使

ARM7TDMI處理器執(zhí)行未定義指令陷阱.

第3章目錄

口1.簡介口9.異常」

□2.ARM7TDMI口10.中斷延遲

□3.ARM7TDMI的模塊和口11.復(fù)位

內(nèi)部框圖口12,存儲器及存儲器映射

口4.體系結(jié)構(gòu)直接支持的I/O

3t.數(shù)據(jù)類型口13.尋址方式簡介

總處理器狀態(tài)口14.ARM7指令簡介

理器模式口15.協(xié)處理器接口

:B寄存器口16.調(diào)試接口簡介

態(tài)寄存器口17.ETM接口簡介

第3章目錄

□18.Load/Store體系結(jié)

構(gòu)

□19.監(jiān)控模式

□20.ARM開發(fā)工具

3.16調(diào)試接口簡介

■一個調(diào)試系統(tǒng)通常具有3個部分

⑴調(diào)試主機

是一臺運行調(diào)試軟件(例如ARM的Windows板調(diào)試器AXD

和EMBEST的集成開發(fā)環(huán)境IDE)的計算機.調(diào)試主機使您可以

使用設(shè)置斷點或檢查存儲器內(nèi)叁這些高級命令.

(2)協(xié)議轉(zhuǎn)換器

是調(diào)試主機發(fā)出的高級命令與ARM7TDMI處理器JTAG接

口的低級命令之間的接口.典型地,它通過~個接口(例如增強

型并口)與主機相連.

3.16調(diào)試接口簡介

(3)調(diào)試目標

ARM7TDMI處理器具有便于選行底層調(diào)試的硬件廣展.這

些廣展可以:

?暫停程序的執(zhí)行;

?檢查和修改內(nèi)核的內(nèi)部狀忠;

?檢查存儲器條統(tǒng)的狀態(tài);

?執(zhí)行中止異常,允許實時監(jiān)控內(nèi)核;

?恢復(fù)程序執(zhí)行;

調(diào)試主機和協(xié)議轉(zhuǎn)換器與系統(tǒng)有關(guān).

■..一■■MMMHB'MBt'?■?.?■■?:M?-fl

3.16調(diào)試接口簡介

EmbeddedlCE-RT

?ARM7TDM處理器EmbeddedICE-RT模塊為ARM7TDM1內(nèi)

核提供集成的片內(nèi)調(diào)試支持.

?EmbeddedlCE-RT通過ARM7TDM1處理器TAP控制器串行編

程.下圖為內(nèi)核.

3.16調(diào)試接口簡介

★EmbeddedlCE-RT與TAP控制器之間的關(guān)條,其中只顯示了與

EmbeddedlCE-RT關(guān)的信號.EmbeddedlCE-RT謖轉(zhuǎn)包含下

面這些部分.

①兩個實時觀察點單元.可以編程這兩個觀察點或其中一個使內(nèi)

核暫停指定指令的執(zhí)行.當編程到Embe

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論