




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第四章 程序控制和中斷管理 程序控制是指CPU對程序運轉(zhuǎn)的控制通常程序是順序執(zhí)行的,即在延續(xù)的程序存儲器地址上取指并執(zhí)行。但有時程序需求轉(zhuǎn)移到不延續(xù)的地址,然后再延續(xù)執(zhí)行新地址處的指令。TMS320C2000中影響程序控制操作的指令有:分支轉(zhuǎn)移調(diào)用與前往反復(fù)指令中斷復(fù)位.4.1 程序地址的產(chǎn)生 在執(zhí)行當(dāng)前指令的同時,程序流要求處置器生成下一條指令的程序地址。它是順序或非順序的。程序地址產(chǎn)生邏輯運用以下硬件:1程序計數(shù)器(PC): C2000為16位PC。2程序地址存放器(PAR):驅(qū)動程序地址總線(PAB),提供程序的讀、寫地址。3堆棧:16位寬、8級硬件堆棧最多可保管8個前往地址。4微堆棧(
2、MSTACK):16位,1級深的堆棧,用于保管一個前往地址。5反復(fù)計數(shù)器(RPTC):16位,與反復(fù)指令(RPT)一同,用來確定RPT后面的一條指令反復(fù)執(zhí)行一定次數(shù)。.一、程序計數(shù)器(PC) 程序計數(shù)器(PC)存放將被執(zhí)行的下一條指令的地址。 影響PC加載方式的程序控制操作:1復(fù)位 2順序執(zhí)行 3分支轉(zhuǎn)移 4由累加器轉(zhuǎn)移 5子程序調(diào)用與前往 6從累加器調(diào)用與前往 7軟件或硬件中斷 加載到PC的地址:PC 0000h (復(fù)位向量地址).一、程序計數(shù)器(PC) 程序計數(shù)器(PC)存放將被執(zhí)行的下一條指令的地址。PC的加載方式:1復(fù)位 2順序執(zhí)行 3分支轉(zhuǎn)移 4由累加器轉(zhuǎn)移 5子程序調(diào)用與前往 6從
3、累加器調(diào)用與前往 7軟件或硬件中斷 加載到PC的地址: PC PC + 1例: PC 目的代碼 指令0108 be42 CLRC OVM0109 bd00 LDP #0010a .一、程序計數(shù)器(PC) 程序計數(shù)器(PC)存放將被執(zhí)行的下一條指令的地址。PC的加載方式:1復(fù)位 2順序執(zhí)行 3分支轉(zhuǎn)移 4由累加器轉(zhuǎn)移 5子程序調(diào)用與前往 6從累加器調(diào)用與前往 7軟件或硬件中斷 加載到PC的地址:PC = 轉(zhuǎn)移指令之后16位立刻數(shù)例: B pma .一、程序計數(shù)器(PC) 程序計數(shù)器(PC)存放將被執(zhí)行的下一條指令的地址。PC的加載方式:1復(fù)位 2順序執(zhí)行 3分支轉(zhuǎn)移 4由累加器轉(zhuǎn)移 5子程序調(diào)用
4、與前往 6從累加器調(diào)用與前往 7軟件或硬件中斷 加載到PC的地址:PC = 累加器的低16位值例: BACC.一、程序計數(shù)器(PC) 程序計數(shù)器(PC)存放將被執(zhí)行的下一條指令的地址。PC的加載方式:1復(fù)位 2順序執(zhí)行 3分支轉(zhuǎn)移 4由累加器轉(zhuǎn)移 5子程序調(diào)用與前往 6從累加器調(diào)用與前往 7軟件或硬件中斷 調(diào)用:將PC中下一條指令的地址壓入堆棧, 將調(diào)用指令后的16位立刻數(shù)裝入PC;前往: 將前往地址從堆棧中彈回PC。例: PC 指令0100 CALL 01e0h0102 .一、程序計數(shù)器(PC) 程序計數(shù)器(PC)存放將被執(zhí)行的下一條指令的地址。PC的加載方式:1復(fù)位 2順序執(zhí)行 3分支轉(zhuǎn)移
5、 4由累加器轉(zhuǎn)移 5子程序調(diào)用與前往 6從累加器調(diào)用與前往 7軟件或硬件中斷 調(diào)用: 將PC中下一條指令的地址壓入堆棧,將累加器中的低16位數(shù)裝入PC; 前往: 將前往地址從堆棧中彈回PC。例: PC 指令0100 CALA 0101 .一、程序計數(shù)器(PC) 程序計數(shù)器(PC)存放將被執(zhí)行的下一條指令的地址。PC的加載方式:1復(fù)位 2順序執(zhí)行 3分支轉(zhuǎn)移 4由累加器轉(zhuǎn)移 5子程序調(diào)用與前往 6從累加器調(diào)用與前往 7軟件或硬件中斷 將PC壓入堆棧,然后用適當(dāng)?shù)闹袛嘞蛄繂卧刂费b入PC。通常在該單元地址中存放一條轉(zhuǎn)移指令,又將相應(yīng)的中斷效力子程序地址裝入PC。例: INT2 產(chǎn)生中斷0004ff
6、80B 1000h10000108be42CLRCOVM0109bd00LDP#0010a8b8fMAR*,AR7010bb93fLACL#3Fh呼應(yīng)中斷PC=010ah壓入堆棧.一、程序計數(shù)器(PC) 程序計數(shù)器(PC)存放將被執(zhí)行的下一條指令的地址。PC的加載方式:1復(fù)位 2順序執(zhí)行 3分支轉(zhuǎn)移 4由累加器轉(zhuǎn)移 5子程序調(diào)用與前往 6從累加器調(diào)用與前往 7軟件或硬件中斷 將PC壓入堆棧,然后用適當(dāng)?shù)闹袛嘞蛄繂卧刂费b入PC。通常在該單元地址中存放一條轉(zhuǎn)移指令,又將相應(yīng)的中斷效力子程序地址裝入PC。例: INT2 產(chǎn)生中斷0004ff80B 1000h10000108be42CLRCOVM0
7、109bd00LDP#0010a8b8fMAR*,AR7010bb93fLACL#3Fh 中斷向量0004h裝入PC.一、程序計數(shù)器(PC) 程序計數(shù)器(PC)存放將被執(zhí)行的下一條指令的地址。PC的加載方式:1復(fù)位 2順序執(zhí)行 3分支轉(zhuǎn)移 4由累加器轉(zhuǎn)移 5子程序調(diào)用與前往 6從累加器調(diào)用與前往 7軟件或硬件中斷 將PC壓入堆棧,然后用適當(dāng)?shù)闹袛嘞蛄繂卧刂费b入PC。通常在該單元地址中存放一條轉(zhuǎn)移指令,又將相應(yīng)的中斷效力子程序地址裝入PC。例: INT2 產(chǎn)生中斷0004ff80B 1000h10000108be42CLRCOVM0109bd00LDP#0010a8b8fMAR*,AR7010
8、bb93fLACL#3Fh轉(zhuǎn)移指令1000h裝入PC.二、堆棧硬件堆棧區(qū):16位寬、8級深用途: 當(dāng)調(diào)用子程序或發(fā)生中斷時,程序地址產(chǎn)生邏輯利用該堆棧保管一個16位前往地址。當(dāng)CPU進(jìn)入子程序或中斷效力程序時,前往地址自動裝入該堆棧的棧頂。當(dāng)子程序或中斷效力程序完成時,前往指令將前往地址從棧頂傳送到程序計數(shù)器PC。堆棧也可以用來保管數(shù)據(jù)或用于其他目的。 .有兩組訪問堆棧的指令:1PUSH和POP: PUSH:把累加器(32位)的低半部分(低16位)拷貝到棧頂。POP: 把棧頂?shù)闹悼截惖嚼奂悠鞯牡桶氩糠?PSHD和POPD: 當(dāng)子程序或中斷嵌套超越8級時,可利用這兩條指令在數(shù)據(jù)存儲區(qū)中建立一個堆
9、棧。 即把堆棧區(qū)延伸到數(shù)據(jù)存儲區(qū)。PSHD dma ;將數(shù)據(jù)存儲器中的值壓入棧頂。POPD dma ; 將棧項的值彈出到數(shù)據(jù)存儲器。.每當(dāng)一個數(shù)值壓入棧頂 ,堆棧中每級的內(nèi)容都下移一級,棧底(第8級)的內(nèi)容那么喪失。 PSHD dma .彈出操作把堆棧中每一級的值都拷貝到較高的下一級。 操作與壓入操作相反, POPD dma .三、微堆棧(MSTACK)微堆棧共有1級深、16位寬,與堆棧不同,它的操作是不可見的。 執(zhí)行以下指令時,程序地址產(chǎn)生邏輯,利用微堆棧保管前往地址。塊傳送 BLDD BLPD乘且累加 MAC、MACD 表讀寫 TBLD、TBLW 例:RPT#9BLDD #lk, *+ 源
10、地址 目的地址操作過程: 執(zhí)行 PC+1,然后PCMSTACK lk源地址 PC 源地址 目的地址 PC+1 PC 利用反復(fù)指令,進(jìn)展數(shù)據(jù)塊傳送,直到反復(fù)計數(shù)器(RPTC)=0;MSTACK PC.四、流水線操作 TMS320C2000的流水線有4個獨立的階段: 取指令 指令譯碼 取操作數(shù) 執(zhí)行指令由于這4個操作階段是獨立的,因此,這些操作可以重疊進(jìn)展。在恣意的指定周期內(nèi),1 - 4個不同的指令均被激活,每一條被激活的指令均處于一個不同的完成階段。對于單字、單周期指令(無等待形狀),4級流水線的操作表示圖如下:.4.2 轉(zhuǎn)移、調(diào)用和前往 轉(zhuǎn)移、調(diào)用和前往將改動指令流的順序,轉(zhuǎn)到新的地址單元去執(zhí)
11、行指令。轉(zhuǎn)移:僅使程序控制轉(zhuǎn)換到新的地址單元。 采用跳轉(zhuǎn)指令調(diào)用: 子程序調(diào)用 中斷效力程序 要將前往地址保管到硬件堆棧的棧頂。 被調(diào)用的子程序或中斷效力程序都以前往指令終了。轉(zhuǎn)移、調(diào)用和前往指令的類型:無條件轉(zhuǎn)移、調(diào)用和前往 有條件轉(zhuǎn)移、調(diào)用和前往 .一、無條件指令無條件轉(zhuǎn)移指令 B pma ;用指令中給定的地址pma 裝載PC BACC ;用累加器中低16位數(shù)值A(chǔ)CC015裝載PC無條件調(diào)用指令 CALL pma ;將前往地址壓入堆棧,用pma 裝載PC CALA ;將前往地址壓入堆棧,用ACC015裝載PC無條件前往指令 RET ;將棧頂?shù)闹?前往地址)加載到PC.二、有條件指令 有條件
12、指令指僅當(dāng)某些指定的條件滿足時才執(zhí)行。 條件及符號 . 條件的組合:在條件指令的操作數(shù)中可以有多個條件。留意:某些條件只需組合才是有意義的。 對于每一種組合,必需按如下規(guī)那么從組1和組2中選擇條件。 同一類的條件不能組合。.有條件指令 條件轉(zhuǎn)移指令 BCND pma,cond1,cond2, ;條件cond1,cond2都滿足時轉(zhuǎn)移。例: BCND PGM1,LEQ, OV BANZ pma ;當(dāng)前AR0時,轉(zhuǎn)移。條件調(diào)用指令 CC pma,cond1,cond2,;條件cond1,cond2都滿足時調(diào)用。例: CC 00BFh,LEQ, OV條件前往指令 RETC cond1,cond2,
13、;條件cond1,cond2都滿足時前往。.4.3 反復(fù)指令 反復(fù)指令(RPT)允許緊跟在RPT后的那一條指令反復(fù)執(zhí)行N+1。 N為RRT指令中的一個操作數(shù)。在執(zhí)行RPT時,計數(shù)值N被裝入反復(fù)計數(shù)器(RPTC),然后,被反復(fù)的指令每執(zhí)行一次,RPTC就減1,直至RPTC為0。例:指令執(zhí)行前存放器形狀: ARP = 1;AR1 = 300h執(zhí)行指令: RPT#9 ;下一條指令執(zhí)行10次 BLDD#320h, *+上面的指令執(zhí)行結(jié)果: 將數(shù)據(jù)存儲器: 0320h032Ah單元的內(nèi)容-0300h030Ah中.4.4 中斷中斷是由軟件或硬件產(chǎn)生一個信號,該信號引起CPU掛起主程序,并轉(zhuǎn)而執(zhí)行一個子程序
14、,即中斷效力子程序。一、概述 1中斷信號的產(chǎn)生: C2000支持軟件和硬件兩種中斷。 軟件中斷: 由中斷指令 INTR,NMI 或 TRAP 懇求。 硬件中斷: 外部中斷由外部中斷引腳上的信號觸發(fā),如: RS , NMI 內(nèi)部中斷由片內(nèi)外設(shè)的信號觸發(fā)。.2) 中斷優(yōu)先級硬件中斷能夠同時產(chǎn)生,CPU根據(jù)中斷源的優(yōu)先級順序而執(zhí)行相應(yīng)的中斷效力子程序。C240X的硬件中斷分為兩級: CPU中斷8個中心級、一級 外設(shè)中斷 46個,分別掛在CPU中斷中 6個 可屏蔽中斷之下。二級CPU中斷優(yōu)先級為1RESET;復(fù)位中斷2保管3NMI;不可屏蔽中斷4INT1 ;可屏蔽中斷5INT2 ;可屏蔽中斷6INT3
15、 ;可屏蔽中斷7INT4 ;可屏蔽中斷8INT5 ;可屏蔽中斷9INT6 ;可屏蔽中斷.3可屏蔽中斷與不可屏蔽中斷 可屏蔽中斷:指可以用軟件設(shè)置使它們制止(屏蔽)或允許不屏蔽)的中斷,可屏蔽中斷均為硬件中斷。(C240X硬件中斷分兩級中斷 C240X的可屏蔽中斷為INT1INT6 CPU中斷, 即一級中斷 這些中斷源下面掛著外設(shè)和外部引腳,如: ADC、SPI、SCI、事件管理器等。 外設(shè)中斷, 即二級中斷 不可屏蔽中斷:包括: 一切的軟件中斷 兩種外部硬件中斷: RS , NMI )。對于不可屏蔽中斷,CPU總是要呼應(yīng),并從主程序轉(zhuǎn)移到相應(yīng)中斷效力程序。 .4中斷矢量 中斷矢量指CPU呼應(yīng)中
16、斷后,PC裝載的地址 。MS320C2000器件CPU中斷的中斷矢量表安排在程序存儲器地址為0000h003Fh的64個單元。每個CPU中斷分配了兩個地址單元,用以存放一條兩個字的轉(zhuǎn)移指令。外設(shè)中斷二級中斷的中斷矢量放在外設(shè)中斷矢量存放器(PIVR) 中中斷名稱中斷矢量RESET復(fù)位0000h保留位0026hNMI0024hINT10002hINT20004hINT30006hINT40008hINT5000AhINT6000Ch保留位000EhTRAP0022hINT8-INT160010h-0020hINT20-INT310028h-003Fh.5中斷操作步驟TMS320C2000管理中斷
17、分為3個主要階段: (1)接受中斷懇求: 來自程序代碼的軟件中斷懇求、來自引腳或片內(nèi)設(shè)備硬件中斷懇求到達(dá)CPU 時,該中斷掛起,或說在等待呼應(yīng)。 (2)呼應(yīng)中斷: 假設(shè)是可屏蔽中斷,那么必需滿足一定的條件時CPU才會呼應(yīng);對非屏蔽中斷那么立刻呼應(yīng)。 (3)執(zhí)行中斷效力程序: 一旦中斷被呼應(yīng),CPU就根據(jù)放在中斷矢量地址中的轉(zhuǎn)移指令,按照要求轉(zhuǎn)移到相應(yīng)的中斷效力程序中去執(zhí)行。執(zhí)行終了后前往。 對于中斷的管理,TMS320C2000系列中不同型號的芯片有許多不同之處。以下以LC/LF240X為例。.二、可屏蔽中斷 1構(gòu)造 LF/LC240X器件的CPU提供了6個可屏蔽中斷,INT1INT6。 利用
18、這6個中斷級,經(jīng)過擴展設(shè)計,使得C240X器件可以管理46個可屏蔽中斷懇求。.2中斷管理存放器 兩級中斷管理: CPU中斷存放器 外設(shè)中斷存放器1CPU中斷存放器: 用于管理CPU中斷INT1INT6: 中斷標(biāo)志存放器(IFR) 中斷屏蔽存放器(IMR) CPU中斷標(biāo)志存放器(IFR)地址0006h 用于識別和去除掛起的中斷,當(dāng)INT1INT6中某一個中斷向CPU發(fā)出中斷懇求時,該存放器中相應(yīng)的位被置1。 讀取IFR可以識別掛起的中斷,而向相應(yīng)的位寫1去除己掛起的中斷。 CPU呼應(yīng)中斷或器件復(fù)位都能將IFR標(biāo)志去除。.CPU中斷屏蔽存放器(IMR)地址0004h向IMR中某位寫0,那么屏蔽相應(yīng)
19、的中斷級,寫1那么使能該中斷級。 .2外設(shè)中斷存放器: 用于管理掛在內(nèi)核級中斷 INT1INT6 下的46個外設(shè)中斷。 包括: 一個外設(shè)中斷矢量存放器 (PIVR)、 三個外設(shè)中斷懇求存放器 (PIRQR0/1/2) 三個外設(shè)中斷應(yīng)對存放器 (PIACKR0/1/2) 外設(shè)中斷矢量存放器(PIVR)地址701Eh 用于存放最近一次被呼應(yīng)的外設(shè)中斷的矢量地址。 二級中斷矢量地址.2外設(shè)中斷存放器: 用于管理掛在內(nèi)核級中斷 INT1INT6 下的46個外設(shè)中斷。 包括: 一個外設(shè)中斷矢量存放器 (PIVR)、 三個外設(shè)中斷懇求存放器 (PIRQR0/1/2) 三個外設(shè)中斷應(yīng)對存放器 (PIACKR
20、0/1/2) 外設(shè)中斷懇求存放器0/1/2(PIRQR0/1/2)地址7010h7012h 用于存放外設(shè)中斷懇求標(biāo)志: 1闡明相應(yīng)的中斷懇求被掛起 0闡明相應(yīng)的中斷懇求未被掛起。 向某位寫入1將發(fā)出個中斷懇求到器件CPU,寫入0沒影響。.2外設(shè)中斷存放器: 用于管理掛在內(nèi)核級中斷 INT1INT6 下的46個外設(shè)中斷。 包括: 一個外設(shè)中斷矢量存放器 (PIVR)、 三個外設(shè)中斷懇求存放器 (PIRQR0/1/2) 三個外設(shè)中斷應(yīng)對存放器 (PIACKR0/1/2) 外設(shè)中斷應(yīng)對存放器0/1/2(PIACKR0/1/2)地址:7014h7016h 用于存放外設(shè)中斷應(yīng)對信號:向某位寫1,將引起相
21、應(yīng)的外設(shè)中斷應(yīng)對被插入,從而將相應(yīng)的外設(shè)中斷懇求位清0,但不改動外設(shè)矢量存放器(PIVR)的內(nèi)容。.2外設(shè)中斷存放器: 用于管理掛在內(nèi)核級中斷 INT1INT6 下的46個外設(shè)中斷。 包括: 一個外設(shè)中斷矢量存放器 (PIVR)、 三個外設(shè)中斷懇求存放器 (PIRQR0/1/2) 三個外設(shè)中斷應(yīng)對存放器 (PIACKR0/1/2) 外設(shè)中斷懇求存放器和外設(shè)中斷應(yīng)對存放器都屬于外設(shè)中斷擴展模塊用來向CPU產(chǎn)生INT1-INT6中斷懇求的內(nèi)部存放器,用于測試,編程時可忽略。.3外設(shè)中斷控制存放器2個用來控制和監(jiān)視兩個外部引腳XINTl和XINT2的形狀。 外設(shè)中斷l(xiāng)控制存放器(XINTlCR)一地
22、址7070h 控制和監(jiān)視外部引腳XINT1的形狀。 外設(shè)中斷2控制存放器(XINT2CR)一地址7071h 控制和監(jiān)視外部引腳XINT2的形狀。 D15 XINT1 flag XINTl標(biāo)志位: 該位指示在XINTl引腳上能否檢測到個眺變 0 未檢測到引腳跳變 1 檢測到引腳跳變.3外設(shè)中斷控制存放器2個用來控制和監(jiān)視兩個外部引腳XINTl和XINT2的形狀。 外設(shè)中斷l(xiāng)控制存放器(XINTlCR)一地址7070h 控制和監(jiān)視外部引腳XINT1的形狀。 外設(shè)中斷2控制存放器(XINT2CR)一地址7071h 控制和監(jiān)視外部引腳XINT2的形狀。 D2 XINT1 polarity XINT1極
23、性, 選擇在XINT1引腳產(chǎn)生中斷的信號極性。 0 在下降沿(由高到低跳變)產(chǎn)生中斷 1 在上升沿(由低到高跳變)產(chǎn)生中斷.3外設(shè)中斷控制存放器2個用來控制和監(jiān)視兩個外部引腳XINTl和XINT2的形狀。 外設(shè)中斷l(xiāng)控制存放器(XINTlCR)一地址7070h 控制和監(jiān)視外部引腳XINT1的形狀。 外設(shè)中斷2控制存放器(XINT2CR)一地址7071h 控制和監(jiān)視外部引腳XINT2的形狀。 D1 XINTl priority XINT1優(yōu)先級。 該位決議XINT1引腳中斷的優(yōu)化級。 0 高優(yōu)先級, l 低優(yōu)先級留意:優(yōu)先級不同,所掛的CPU 中斷不同 高優(yōu)先級: INT1 中斷向量 0002h
24、 低優(yōu)先級: INT6 中斷向量 000Ch 但外設(shè)中斷向量一樣 : XINTl: 0001h XINT2: 0011h .3外設(shè)中斷控制存放器2個用來控制和監(jiān)視兩個外部引腳XINTl和XINT2的形狀。 外設(shè)中斷l(xiāng)控制存放器(XINTlCR)一地址7070h 控制和監(jiān)視外部引腳XINT1的形狀。 外設(shè)中斷2控制存放器(XINT2CR)一地址7071h 控制和監(jiān)視外部引腳XINT2的形狀。 D0 XINTl enable XINTl使能位。 該位使能或屏蔽外部中斷XINT1 0 屏蔽中斷 1 使能中斷.3外設(shè)中斷控制存放器2個用來控制和監(jiān)視兩個外部引腳XINTl和XINT2的形狀。 外設(shè)中斷l(xiāng)
25、控制存放器(XINTlCR)一地址7070h 控制和監(jiān)視外部引腳XINT1的形狀。 外設(shè)中斷2控制存放器(XINT2CR)一地址7071h 控制和監(jiān)視外部引腳XINT2的形狀。 外設(shè)中斷2控制存放器(XINT2CR)用于控制和監(jiān)視外部引腳XINT2的形狀。 各位的定義同(XINT1CR) .3 可屏蔽中斷的呼應(yīng)流程1呼應(yīng)可屏蔽中斷條件: 1INTM = 0 ,使能一切末屏蔽的中斷; 2中斷屏蔽存放器(IMR)中相應(yīng)位為1;使能相應(yīng)的中斷; 3假設(shè)有多個中斷懇求,優(yōu)先級高的中斷源先相應(yīng)。2將PC壓入堆棧,用相應(yīng)的CPU中斷矢量單元地址裝載到PC;3CPU從相應(yīng)中斷矢量單元中取出一條用戶設(shè)定的轉(zhuǎn)移
26、指令,然后轉(zhuǎn)入執(zhí)行這一CPU中斷的通用中斷效力程序(GISRx)。例:INT2上有一外設(shè)中斷懇求被呼應(yīng),其中斷矢量單元地址為0004h,那么在0004h單元放置一條轉(zhuǎn)移指令: 0004h B GISR2.3 可屏蔽中斷的呼應(yīng)流程4在GISRx中完成必要的現(xiàn)場維護后,從外設(shè)中斷矢量寄行器(PIVR)中讀取相應(yīng)外設(shè)中斷矢量。 通常并將其左移一個預(yù)定的值,再加上偏移量,所得到的值就是這個外設(shè)中斷事件的中斷效力程序(SISR) 的入口地址。 在SISR中執(zhí)行對該外設(shè)中斷事件的效力。5執(zhí)行SISR,直到一條前往指令,終了該中斷效力程序。6從棧頂彈出前往地址到PC。.例: 典型中斷效力程序代碼 假設(shè):掛在
27、INT2 之下的EVA 通用定時器1的周期中斷 INT2的中斷矢量為 0004h EVA 通用定時器1 周期中斷的中斷矢量(PIV)為 0027h (存放在PIVR) 地址 匯編言語代碼 ;CPU中斷矢量表0000h RSVECT : B START ;復(fù)位矢量0002h INT1: B GISR1 ;轉(zhuǎn)移到INT1的通用中斷效力子程序GISR10004h INT2: B GISR2 ; 轉(zhuǎn)移到INT2的通用中斷效力子程序GISR2; CPU其他中斷矢量.地址 匯編言語代碼GISR1:; 其他中斷的通用中斷效力子程序 GISR2: ; 保管現(xiàn)場LACC PIVR, 1 ; 將中斷矢量存放器(P
28、IVR)的值移位(2)后裝; 入累加器ADD Offset ;累加器的值加一個偏移量后,即為特定的中斷; 效力子程序 SISRx的地址BACC ;轉(zhuǎn)移到累加器指示的地址中(2PIV+offset)Offset:B SISR0; 外設(shè)中斷矢量表20001+offsetB SISR1 ;轉(zhuǎn)移到中斷事件的特定中斷效力子程序SISR中20002+offsetB SISR22PIVR+offset B SISRxSISRx:;外部事件中斷效力程序RET;前往 .三、 非屏蔽中斷1硬件非屏蔽中斷 兩個引腳產(chǎn)生硬件非屏蔽中斷:RS (復(fù)位): CPU停頓程序流程,使處置器回到一個初始形狀,然后從地址0000
29、h 開場執(zhí)行。NMI : 當(dāng)該信號被激活時(NMI 引腳變低或NMI指令), CPU使程序控制轉(zhuǎn)向0024h矢量地址,同時可屏蔽中斷被制止(NTM = 1)。 NMI也可用做軟件復(fù)位,與硬件復(fù)位不同,其不影響器件任何方式。 LF240 x芯片沒有NMI引腳,當(dāng)器件訪問一個無效地址時,將產(chǎn)生非屏蔽中斷懇求 .2軟件非屏蔽中斷3條指令可引起軟件非屏蔽中斷:INTR KNMITRAP 該指令允許啟動中斷,指令操作數(shù)K表示CPU將轉(zhuǎn)移到哪個中斷矢量單元。 例 INTR 10 當(dāng)呼應(yīng)INTR中斷時,INTM=1制止可屏蔽中斷。 留意:INTR指令不影響IFR標(biāo)志。.2軟件非屏蔽中斷3條指令可引起軟件非屏
30、蔽中斷:INTR KNMITRAP 該指令使程序轉(zhuǎn)移到中斷矢量地址24h。 與不可屏蔽硬件中斷NMI運用同一單元。 .2軟件非屏蔽中斷3條指令可引起軟件非屏蔽中斷:INTR KNMITRAP 該指令使CPU轉(zhuǎn)移到中斷矢量單元22h,該指令不制止任何可屏蔽中斷,即INTM不被置1.非屏蔽中斷流程圖.四、中斷效力程序ISR的現(xiàn)場維護與中斷嵌套CPU得到中斷懇求并呼應(yīng)之后,就根據(jù)中斷矢量轉(zhuǎn)移到相應(yīng)的中斷效力程序ISR中,ISR在為中斷所要求的義務(wù)效力前需求保管和恢復(fù)存放器的值,并且還要管理中斷嵌套。.1保管和恢復(fù)存放器值CPU進(jìn)入中斷效力程序(ISR)之前,硬件只將增量后的程序計數(shù)器的值自動保管起來
31、,所以在中斷效力程序中要用軟件對一些重要存放器的值進(jìn)展保管和恢復(fù)。例如:假設(shè)ISR需求執(zhí)行一次乘法運算,那么它就需求運用乘法存放器(PREG)。假設(shè)先前的PREG值要求在執(zhí)行完ISR之后仍保管在PREG中,那么ISR必需先保管該值,再執(zhí)行新的乘法運算,當(dāng)乘法運算執(zhí)行完后,中斷效力程序前往之前,再重新裝載原來那個PREG值。在大多數(shù)中斷效力程序中,都需求對某些存放器進(jìn)展維護,所以,經(jīng)常備份一個通用的保管和恢復(fù)程序,供中斷效力程序調(diào)用。.GIRS2::; SST #ST0, ST0_save ; save status register ST0, dp=0SST #ST1, ST1_save ;
32、save status register ST1LDP #0 ; point to memory page 0SACL ACCL ;SACH ACCH . LDP #0 ; point to memory page 0LACC ACCH ,16;LACL ACCL ; restore ACCLST #ST1, ST1_save ; restore status register ST1LST #ST0, ST0_save ; restore status register ST0CLRC INTM ;RET ST0 .set 0 ; status register ST0ST1 .set 1
33、; status register ST1ST0_save .set 060h ; saved status register ST0ST1_save .set 061h ; saved status register ST1ACCH .set 062h ; saved accumulator highACCL .set 063h ; saved accumulator low保管和恢復(fù)存放器值舉例:.2中斷效力程序(ISR)嵌套的管理C2000硬件堆棧允許中斷嵌套,但須留意:1假設(shè)希望一個可屏蔽中斷可以中斷ISR,那么,該ISR必需不屏蔽這個中斷,可在中斷效力程序中,經(jīng)過對IMR中的相應(yīng)位設(shè)
34、置和執(zhí)行允許中斷指令(CLRC INTM)來解除該中斷屏蔽。28級硬件堆棧。每進(jìn)展一次中斷效力或進(jìn)入子程序都要將前往地址壓入堆棧,以提供前往的途徑,所以最多允許中斷或子程序嵌套8級。 .3) C2000具有防止不測嵌套的功能。 由于在執(zhí)行完中斷的效力程序前往之前,總要先允許中斷,即執(zhí)行 CLRC INTM RET 假設(shè)在執(zhí)行CLRC INTM時發(fā)生了不測中斷,CPU總是先完成CLRC INTM指令及其后面的那條指令后才去處置已掛起的中斷。 假設(shè)希望在中斷效力程序中實現(xiàn)中斷嵌套,應(yīng)在前往(RET)指令前至少兩條指令的位置上插入CLRC INTM指令,即 CLRC INTM . . RET.五、中斷等待時間中斷等待時間是指提出中斷懇求到呼應(yīng)懇求之間的時間,其長短取決于許多要素。在執(zhí)行一個軟件中斷之前CPU總是要完成流水線操作中的一切指令
溫馨提示
- 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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 麻疹、風(fēng)疹、腮腺炎聯(lián)合疫苗項目風(fēng)險識別與評估綜合報告
- Unit 3 Section A 教學(xué)設(shè)計 2024-2025學(xué)年人教版(2024)七年級英語上冊
- Unit 4 Birthday Lesson 3 Have Fun(教學(xué)設(shè)計)-2024-2025學(xué)年北師大版(三起)英語六年級上冊
- 《Unit 4 Colour a Keyboard》(教學(xué)設(shè)計)-2024-2025學(xué)年教科版(2024)英語三年級上冊
- 5玲玲的畫教學(xué)設(shè)計-2024-2025學(xué)年二年級上冊語文統(tǒng)編版
- 《數(shù)學(xué)好玩 - 數(shù)圖形的學(xué)問》(教學(xué)設(shè)計)-2024-2025學(xué)年北師大版數(shù)學(xué)四年級上冊
- Module 5 Unit 1 We went to the Great Wall. (教學(xué)設(shè)計)2024-2025學(xué)年外研版(一起)英語四年級上冊
- 2025年國際住宅中介合同樣本
- 2025年中央空調(diào)系統(tǒng)安裝協(xié)議合同
- 11《大家排好隊》(教學(xué)設(shè)計)-2024-2025學(xué)年統(tǒng)編版道德法治二年級上冊
- 2024年南信語文數(shù)學(xué)試卷(含答案)
- JGJ46-2024 建筑與市政工程施工現(xiàn)場臨時用電安全技術(shù)標(biāo)準(zhǔn)
- 2016-2023年江蘇電子信息職業(yè)學(xué)院高職單招(英語/數(shù)學(xué)/語文)筆試歷年考點試題甄選合集含答案解析
- DSP原理及應(yīng)用教程-第二章 DSP芯片結(jié)構(gòu)和CPU外圍電路
- 中共一大代表的不同人生路程及其啟
- 注塑報價表模版
- 長江流域氣候變化影響脆弱性和適應(yīng)性
- 地理知識介紹課件
- 民航國內(nèi)航空匯編航路_3.1.8w系列航線
- 高數(shù)常微分方程-高階微分方程
- 竹里館ppt課件
評論
0/150
提交評論