DSP 第三章程序控制ppt課件_第1頁
DSP 第三章程序控制ppt課件_第2頁
DSP 第三章程序控制ppt課件_第3頁
DSP 第三章程序控制ppt課件_第4頁
DSP 第三章程序控制ppt課件_第5頁
已閱讀5頁,還剩55頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、第3章 程序控制和中斷管理 程序控制是指CPU對程序運轉的控制通常程序是順序執(zhí)行的,即在延續(xù)的程序存儲器地址上取指并執(zhí)行。但有時程序需求轉移到不延續(xù)的地址,然后再延續(xù)執(zhí)行新地址處的指令。TMS320C2000中影響程序控制操作的指令有:分支轉移調用與前往反復指令中斷復位.4.1 程序地址的產生 在執(zhí)行當前指令的同時,程序流要求處置器生成下一條指令的程序地址。 它是順序或非順序的。程序地址產生邏輯運用以下硬件:1程序計數(shù)器(PC): C2000為16位PC。2程序地址存放器(PAR):驅動程序地址總線(PAB),提供程序的讀、寫地址。3堆棧:16位寬、8級硬件堆棧最多可保管8個前往地址。4微堆棧

2、(MSTACK):16位,1級深的堆棧,用于保管一個前往地址。5反復計數(shù)器(RPTC):16位,與反復指令(RPT)一同,用來確定RPT后面的一條指令反復執(zhí)行次數(shù)。.一、程序計數(shù)器(PC) 程序計數(shù)器(PC)存放將被執(zhí)行的下一條指令的地址。 影響PC加載方式的程序控制操作:1復位 2順序執(zhí)行 3分支轉移 4由累加器轉移 5子程序調用與前往 6從累加器調用與前往 7軟件或硬件中斷 加載到PC的地址:PC = 0000h (復位向量地址).一、程序計數(shù)器(PC) 程序計數(shù)器(PC)存放將被執(zhí)行的下一條指令的地址。PC的加載方式:1復位 2順序執(zhí)行 3分支轉移 4由累加器轉移 5子程序調用與前往 6

3、從累加器調用與前往 7軟件或硬件中斷 加載到PC的地址: PC = PC + 1例: PC 目的代碼 指令0108 be42 CLRC OVM0109 bd00 LDP #0010a .一、程序計數(shù)器(PC) 程序計數(shù)器(PC)存放將被執(zhí)行的下一條指令的地址。PC的加載方式:1復位 2順序執(zhí)行 3分支轉移 4由累加器轉移 5子程序調用與前往 6從累加器調用與前往 7軟件或硬件中斷 加載到PC的地址:PC = 轉移指令之后16位立刻數(shù)例: B pma .一、程序計數(shù)器(PC) 程序計數(shù)器(PC)存放將被執(zhí)行的下一條指令的地址。PC的加載方式:1復位 2順序執(zhí)行 3分支轉移 4由累加器轉移 5子程

4、序調用與前往 6從累加器調用與前往 7軟件或硬件中斷 加載到PC的地址:PC = 累加器的低16位值例: BACC.一、程序計數(shù)器(PC) 程序計數(shù)器(PC)存放將被執(zhí)行的下一條指令的地址。PC的加載方式:1復位 2順序執(zhí)行 3分支轉移 4由累加器轉移 5子程序調用與前往 6從累加器調用與前往 7軟件或硬件中斷 調用:將PC中下一條指令的地址壓入堆棧, 將調用指令后的16位立刻數(shù)裝入PC;前往: 將前往地址從堆棧中彈回PC。例: PC 指令0100 CALL 01e0h0102 .一、程序計數(shù)器(PC) 程序計數(shù)器(PC)存放將被執(zhí)行的下一條指令的地址。PC的加載方式:1復位 2順序執(zhí)行 3分

5、支轉移 4由累加器轉移 5子程序調用與前往 6從累加器調用與前往 7軟件或硬件中斷 調用: 將PC中下一條指令的地址壓入堆棧,將累加器中的低16位數(shù)裝入PC; 前往: 將前往地址從堆棧中彈回PC。例: PC 指令0100 CALA 0101 .一、程序計數(shù)器(PC) 程序計數(shù)器(PC)存放將被執(zhí)行的下一條指令的地址。PC的加載方式:1復位 2順序執(zhí)行 3分支轉移 4由累加器轉移 5子程序調用與前往 6從累加器調用與前往 7軟件或硬件中斷 將PC壓入堆棧,然后用適當?shù)闹袛嘞蛄繂卧刂费b入PC。通常在該單元地址中存放一條轉移指令,又將相應的中斷效力子程序地址裝入PC。例: INT2 產生中斷000

6、4ff80B 1000h10000108be42CLRCOVM0109bd00LDP#0010a8b8fMAR*,AR7010bb93fLACL#3Fh呼應中斷PC=010ah壓入堆棧.一、程序計數(shù)器(PC) 程序計數(shù)器(PC)存放將被執(zhí)行的下一條指令的地址。PC的加載方式:1復位 2順序執(zhí)行 3分支轉移 4由累加器轉移 5子程序調用與前往 6從累加器調用與前往 7軟件或硬件中斷 將PC壓入堆棧,然后用適當?shù)闹袛嘞蛄繂卧刂费b入PC。通常在該單元地址中存放一條轉移指令,又將相應的中斷效力子程序地址裝入PC。例: INT2 產生中斷0004ff80B 1000h10000108be42CLRCO

7、VM0109bd00LDP#0010a8b8fMAR*,AR7010bb93fLACL#3Fh 中斷向量0004h裝入PC.一、程序計數(shù)器(PC) 程序計數(shù)器(PC)存放將被執(zhí)行的下一條指令的地址。PC的加載方式:1復位 2順序執(zhí)行 3分支轉移 4由累加器轉移 5子程序調用與前往 6從累加器調用與前往 7軟件或硬件中斷 將PC壓入堆棧,然后用適當?shù)闹袛嘞蛄繂卧刂费b入PC。通常在該單元地址中存放一條轉移指令,又將相應的中斷效力子程序地址裝入PC。例: INT2 產生中斷0004ff80B 1000h10000108be42CLRCOVM0109bd00LDP#0010a8b8fMAR*,AR7

8、010bb93fLACL#3Fh轉移指令1000h裝入PC.二、堆棧硬件堆棧區(qū):16位寬、8級深。用途: 當調用子程序或發(fā)生中斷時,程序地址產生邏輯利用該堆棧保管一個16位前往地址。當CPU進入子程序或中斷效力程序時,前往地址自動裝入該堆棧的棧頂。當子程序或中斷效力程序完成時,前往指令將前往地址從棧頂傳送到程序計數(shù)器PC。堆棧也可以用來保管數(shù)據(jù)或用于其他目的。 .有兩組訪問堆棧的指令:1PUSH和POP: PUSH:把累加器(32位)的低半部分(低16位)拷貝到棧頂。POP: 把棧頂?shù)闹悼截惖嚼奂悠鞯牡桶氩糠?PSHD和POPD: 當子程序或中斷嵌套超越8級時,可利用這兩條指令在數(shù)據(jù)存儲區(qū)中建

9、立一個堆棧。 即把堆棧區(qū)延伸到數(shù)據(jù)存儲區(qū)。PSHD dma ;將數(shù)據(jù)存儲器中的值壓入棧頂。POPD dma ; 將棧項的值彈出到數(shù)據(jù)存儲器。.每當一個數(shù)值壓入棧頂 ,堆棧中每級的內容都下移一級,棧底(第8級)的內容那么喪失。 PSHD dma .彈出操作把堆棧中每一級的值都拷貝到較高的下一級。 操作與壓入操作相反, POPD dma .三、微堆棧(MSTACK)微堆棧共有1級深、16位寬,與堆棧不同,它的操作是不可見的。 執(zhí)行以下指令時,程序地址產生邏輯,利用微堆棧保管前往地址。塊傳送 BLDD BLPD乘且累加 MAC、MACD 表讀寫 TBLD、TBLW 例:RPT#9BLDD #lk,

10、*+ 源地址 目的地址操作過程: 執(zhí)行 PC+1,然后PCMSTACK lk源地址 PC 源地址 目的地址 PC+1 PC 利用反復指令,進展數(shù)據(jù)塊傳送,直到反復計數(shù)器(RPTC)=0;MSTACK PC.四、流水線操作 TMS320C2000的流水線有4個獨立的階段: 取指令 指令譯碼 取操作數(shù) 執(zhí)行指令由于這4個操作階段是獨立的,因此,這些操作可以重疊進展。在恣意的指定周期內,1 - 4個不同的指令均被激活,每一條被激活的指令均處于一個不同的完成階段。對于單字、單周期指令(無等待形狀),4級流水線的操作表示圖如下:.4.2 轉移、調用和前往 轉移、調用和前往將改動指令流的順序,轉到新的地址

11、單元去執(zhí)行指令。轉移:僅使程序控制轉換到新的地址單元。 采用跳轉指令調用: 子程序調用 中斷效力程序 要將前往地址保管到硬件堆棧的棧頂。 被調用的子程序或中斷效力程序都以前往指令終了。轉移、調用和前往指令的類型:無條件轉移、調用和前往 有條件轉移、調用和前往 .一、無條件指令無條件轉移指令 B pma ;用指令中給定的地址pma 裝載PC BACC ;用累加器中低16位數(shù)值ACC015裝載PC無條件調用指令 CALL pma ;將前往地址壓入堆棧,用pma 裝載PC CALA ;將前往地址壓入堆棧,用ACC015裝載PC無條件前往指令 RET ;將棧頂?shù)闹?前往地址)加載到PC.二、有條件指令

12、 有條件指令指僅當某些指定的條件滿足時才執(zhí)行。 條件及符號 . 條件的組合:在條件指令的操作數(shù)中可以有多個條件。留意:某些條件只需組合才是有意義的。 對于每一種組合,必需按如下規(guī)那么從組1和組2中選擇條件。 同一類的條件不能組合。.有條件指令 條件轉移指令 BCND pma,cond1,cond2, ;條件cond1,cond2都滿足時轉移。例: BCND PGM1,LEQ, OV BANZ pma ;當前AR0時,轉移。條件調用指令 CC pma,cond1,cond2, ;條件cond1,cond2都滿足時調用。例: CC 00BFh,LEQ, OV條件前往指令 RETCcond1,con

13、d2, ;條件cond1,cond2都滿足時前往。.4.3 反復指令 反復指令(RPT)允許緊跟在RPT后的那一條指令反復執(zhí)行N+1。 N為RRT指令中的一個操作數(shù)。在執(zhí)行RPT時,計數(shù)值N被裝入反復計數(shù)器(RPTC),然后,被反復的指令每執(zhí)行一次,RPTC就減1,直至RPTC為0。例:指令執(zhí)行前存放器形狀: ARP = 1;AR1 = 300h執(zhí)行指令: RPT #9 ;下一條指令執(zhí)行10次 BLDD#320h, *+上面的指令執(zhí)行結果: 將數(shù)據(jù)存儲器: 0320h032Ah單元的內容-0300h030Ah中.4.4 中斷中斷是由軟件或硬件產生一個信號,該信號引起CPU掛起主程序,并轉而執(zhí)行

14、一個子程序,即中斷效力子程序。一、概述 1中斷信號的產生: C2000支持軟件和硬件兩種中斷。 軟件中斷: 由中斷指令INTR,NMI或TRAP懇求。 硬件中斷: 外部中斷由外部中斷引腳上的信號觸發(fā),如: RS , NMI 內部中斷由片內外設的信號觸發(fā)。.2) 中斷優(yōu)先級硬件中斷能夠同時產生,CPU根據(jù)中斷源的優(yōu)先級順序而執(zhí)行相應的中斷效力子程序。C240X的硬件中斷分為兩級: CPU中斷8個中心級 外設中斷 46個,分別掛在CPU中斷中 6個 可屏蔽中斷之下。CPU中斷優(yōu)先級為1-RESET;復位中斷2-保管3-NMI;不可屏蔽中斷4-INT1 ;可屏蔽中斷5-INT2 ;可屏蔽中斷6-IN

15、T3 ;可屏蔽中斷7-INT4 ;可屏蔽中斷8-INT5 ;可屏蔽中斷9-INT6 ;可屏蔽中斷.3可屏蔽中斷與不可屏蔽中斷 可屏蔽中斷:指可以用軟件設置使它們制止(屏蔽)或允許不屏蔽)的中斷,可屏蔽中斷均為硬件中斷。 C240X的可屏蔽中斷為INT1INT6, 這些中斷源下面掛著外設和外部引腳,如: ADC、SPI、SCI、事件管理器等。 不可屏蔽中斷:包括: 一切的軟件中斷 兩種外部硬件中斷: RS , NMI )。對于不可屏蔽中斷,CPU總是要呼應,并從主程序轉移到相應中斷效力程序。 .4中斷矢量 中斷矢量指CPU呼應中斷后,PC裝載的地址 。MS320C2000器件CPU中斷的中斷矢量

16、表安排在程序存儲器地址為0000h003Fh的64個單元。每個CPU中斷分配了兩個地址單元,用以存放一條兩個字的轉移指令。外設中斷的中斷矢量放在外設中斷矢量存放器(PIVR) 中中斷名稱中斷矢量RESET復位0000h保留位0026hNMI0024hINT10002hINT20004hINT30006hINT40008hINT5000AhINT6000Ch保留位000EhTRAP0022hINT8-INT160010h-0020hINT20-INT310028h-003Fh.5中斷操作步驟TMS320C2000管理中斷分為3個主要階段: (1)接受中斷懇求: 來自程序代碼的軟件中斷懇求、來自引

17、腳或片內設備硬件中斷懇求到達CPU 時,該中斷掛起,或說在等待呼應。 (2)呼應中斷: 假設是可屏蔽中斷,那么必需滿足一定的條件時CPU才會呼應;對非屏蔽中斷那么立刻呼應。 (3)執(zhí)行中斷效力程序: 一旦中斷被呼應,CPU就根據(jù)放在中斷矢量地址中的轉移指令,按照要求轉移到相應的中斷效力程序中去執(zhí)行。執(zhí)行終了后前往。 對于中斷的管理,TMS320C2000系列中不同型號的芯片有許多不同之處。以下以LC/LF240X為例。.二、可屏蔽中斷 1構造 LF/LC240X器件的CPU提供了6個可屏蔽中斷,INT1-INT6。 利用這6個中斷級,經過擴展設計,使得C240X器件可以管理46個可屏蔽中斷懇求

18、。.2中斷管理存放器 CPU中斷存放器 外設中斷存放器1CPU中斷存放器: 用于管理CPU中斷INT1-INT6: 中斷標志存放器(IFR) 中斷屏蔽存放器(IMR) CPU中斷標志存放器(IFR)地址0006h 用于識別和去除掛起的中斷,當INT1-INT6中某一個中斷向CPU發(fā)出中斷懇求時,該存放器中相應的位被置1。 讀取IFR可以識別掛起的中斷,而向相應的位寫1去除己掛起的中斷。 CPU呼應中斷或器件復位都能將IFR標志去除。.CPU中斷屏蔽存放器(IMR)地址0004h向IMR中某位寫1,那么屏蔽相應的中斷級,寫1那么使能該中斷級。 .2外設中斷存放器: 用于管理掛在內核級中斷 INT

19、1-INT6 下的46個外設中斷。 包括: 一個外設中斷矢量存放器 (PIVR)、 三個外設中斷懇求存放器 (PIRQR0/1/2) 三個外設中斷應對存放器 (PIACKR0/1/2) 外設中斷矢量存放器(PIVR)地址701Eh 用于存放最近一次被呼應的外設中斷的矢量地址。 二級中斷矢量地址.2外設中斷存放器: 用于管理掛在內核級中斷 INT1-INT6 下的46個外設中斷。 包括: 一個外設中斷矢量存放器 (PIVR)、 三個外設中斷懇求存放器 (PIRQR0/1/2) 三個外設中斷應對存放器 (PIACKR0/1/2) 外設中斷懇求存放器0/1/2(PIRQR0/1/2)地址7010h7

20、012h 用于存放外設中斷懇求標志: 1-闡明相應的中斷懇求被掛起 0-闡明相應的中斷懇求未被掛起。 只能對其測試可讀,不能對其編程不可寫 向某位寫入1將發(fā)出個中斷懇求到器件CPU,寫入0沒影響。.2外設中斷存放器: 用于管理掛在內核級中斷 INT1-INT6 下的46個外設中斷。 包括: 一個外設中斷矢量存放器 (PIVR)、 三個外設中斷懇求存放器 (PIRQR0/1/2) 三個外設中斷應對存放器 (PIACKR0/1/2) 外設中斷應對存放器0/1/2(PIACKR0/1/2)地址:7014h7016h 用于存放外設中斷應對信號只能對其測試可讀,不能對其編程不可寫向某位寫1,將引起相應的

21、外設中斷應對被插入從而將相應的外設中斷懇求位清0,但不改動外設矢量存放器(PIVR)的內容。.3外設中斷控制存放器2個用來控制和監(jiān)視兩個外部引腳XINTl和XINT2的形狀。 外設中斷l(xiāng)控制存放器(XINTlCR)一地址7070h 控制和監(jiān)視外部引腳XINT1的形狀。 外設中斷2控制存放器(XINT2CR)一地址7071h 控制和監(jiān)視外部引腳XINT2的形狀。 D15 XINT1 flag XINTl標志位: 該位指示在XINTl引腳上能否檢測到個眺變 0 未檢測到引腳跳變 1 檢測到引腳跳變.3外設中斷控制存放器2個用來控制和監(jiān)視兩個外部引腳XINTl和XINT2的形狀。 外設中斷l(xiāng)控制存放

22、器(XINTlCR)一地址7070h 控制和監(jiān)視外部引腳XINT1的形狀。 外設中斷2控制存放器(XINT2CR)一地址7071h 控制和監(jiān)視外部引腳XINT2的形狀。 D2 XINT1 polarity XINT1極性, 選擇在XINT1引腳產生中斷的信號極性。 0 在下降沿(由高到低跳變)產生中斷 1 在上升沿(由低到高跳變)產生中斷.3外設中斷控制存放器2個用來控制和監(jiān)視兩個外部引腳XINTl和XINT2的形狀。 外設中斷l(xiāng)控制存放器(XINTlCR)一地址7070h 控制和監(jiān)視外部引腳XINT1的形狀。 外設中斷2控制存放器(XINT2CR)一地址7071h 控制和監(jiān)視外部引腳XINT

23、2的形狀。 D1 XINTl priority XINT1優(yōu)先級。 該位決議XINT1引腳中斷的優(yōu)化級。 0 - 高優(yōu)先級, 1 - 低優(yōu)先級留意:優(yōu)先級不同,所掛的CPU 中斷不同 高優(yōu)先級: INT1 中斷向量 0002h 低優(yōu)先級: INT6 中斷向量 000Ch 但外設中斷向量一樣 : XINTl: 0001h XINT2: 0011h .3外設中斷控制存放器2個用來控制和監(jiān)視兩個外部引腳XINTl和XINT2的形狀。 外設中斷l(xiāng)控制存放器(XINTlCR)一地址7070h 控制和監(jiān)視外部引腳XINT1的形狀。 外設中斷2控制存放器(XINT2CR)一地址7071h 控制和監(jiān)視外部引腳

24、XINT2的形狀。 D0 XINTl enable XINTl使能位。 該位使能或屏蔽外部中斷XINT1 0 屏蔽中斷 1 使能中斷.3外設中斷控制存放器2個用來控制和監(jiān)視兩個外部引腳XINTl和XINT2的形狀。 外設中斷l(xiāng)控制存放器(XINTlCR)一地址7070h 控制和監(jiān)視外部引腳XINT1的形狀。 外設中斷2控制存放器(XINT2CR)一地址7071h 控制和監(jiān)視外部引腳XINT2的形狀。 外設中斷2控制存放器(XINT2CR)用于控制和監(jiān)視外部引腳XINT2的形狀。 各位的定義同(XINT1CR) .3 可屏蔽中斷的呼應流程1呼應可屏蔽中斷,條件: 1INTM = 0 ,使能一切末

25、屏蔽的中斷; 2中斷屏蔽存放器(IMR)中相應位為1;使能相應的中斷; 3假設有多個中斷懇求,優(yōu)先級高的中斷源先相應。2將PC壓入堆棧,用相應的CPU中斷矢量單元地址裝載到PC;3CPU從相應中斷矢量單元中取出一條用戶設定的轉移指令,然后轉入執(zhí)行這一CPU中斷的通用中斷效力程序(GISRx)。例:INT2上有一外設中斷懇求被呼應,其中斷矢量單元地址為0004h,那么在0004h單元放置一條轉移指令: 0004h B GISR2.3 可屏蔽中斷的呼應流程4在GISRx中完成必要的現(xiàn)場維護后,從外設中斷矢量存放器(PIVR)中讀取相應外設中斷矢量。 通常并將其左移一個預定的值,再加上偏移量,所得到

26、的值就是這個外設中斷事件的中斷效力程序(SISR) 的入口地址。 在SISR中執(zhí)行對該外設中斷事件的效力。5執(zhí)行SISR,直到一條前往指令,終了該中斷效力程序。6從棧頂彈出前往地址到PC。.例: 典型中斷效力程序代碼 假設:掛在INT2 之下的EVA 通用定時器1的周期中斷 INT2的中斷矢量為 0004h EVA 通用定時器1 周期中斷的中斷矢量(PIV)為 0027h (存放在PIVR) 地址 匯編言語代碼 ;CPU中斷矢量表0000h RSVECT : B START ;復位矢量0002h INT1: B GISR1 ;轉移到INT1的通用中斷效力子程序GISR10004h INT2:

27、B GISR2 ; 轉移到INT2的通用中斷效力子程序GISR2; CPU其他中斷矢量.地址 匯編言語代碼GISR1:; 其他中斷的通用中斷效力子程序 GISR2: ; 保管必要的上、下文LACC PIVR, 1 ; 將中斷矢量存放器(PIVR)的值移位(2)后裝; 入累加器ADD offset ;累加器的值加一個偏移量后,即為特定的中斷; 效力子程序 SISRx的地址BACC ;轉移到累加器指示的地址中(2PIV+offset); 外設中斷矢量表2PIV+offsetB SISR1 ;轉移到中斷事件的特定中斷效力子程序SISR中2PIV+offset+2B SISR2B SISRxSISRx

28、:;外部事件中斷效力程序RET;前往 .三、 非屏蔽中斷1硬件非屏蔽中斷 兩個引腳產生硬件非屏蔽中斷:RS (復位): CPU停頓程序流程,使處置器回到一個初始形狀,然后從地址0000h 開場執(zhí)行。NMI : 當該信號被激活時(NMI 引腳變低或NMI指令), CPU使程序控制轉向0024h矢量地址,同時可屏蔽中斷被制止(NTM = 1)。 NMI也可用做軟件復位,與硬件復位不同,其不影響器件任何方式,也不終止當前有效指令或存儲器的操作。 LF240 x芯片沒有NMI引腳,當器件訪問一個無效地址時,將產生非屏蔽中斷懇求 .2軟件非屏蔽中斷3條指令可引起軟件非屏版中斷:INTR KNMITRAP

29、 該指令允許啟動中斷,指令操作數(shù)K表示CPU將轉移到哪個中斷矢量單元。 例 INTR 10 當呼應INTR中斷時,INTM=1制止可屏蔽中斷。 留意:INTR指令不影響IFR標志。.2軟件非屏蔽中斷3條指令可引起軟件非屏版中斷:INTR KNMITRAP 該指令使程序轉移到中斷矢量地址24h。 與不可屏蔽硬件中斷NMI運用同一單元。 .2軟件非屏蔽中斷3條指令可引起軟件非屏版中斷:INTR KNMITRAP 該指令使CPU轉移到中斷矢量單元22h,該指令不制止任何可屏蔽中斷,即INTM不被置1.非屏蔽中斷流程圖.四、中斷效力程序ISR的現(xiàn)場維護與中斷嵌套CPU得到中斷懇求并呼應之后,就根據(jù)中斷

30、矢量轉移到相應的中斷效力程序ISR中,ISR在為中斷所要求的義務效力前需求保管和恢復存放器的值,并且還要管理中斷嵌套。.1保管和恢復存放器值CPU進入中斷效力程序(ISR)之前,硬件只將增量后的程序計數(shù)器的值自動保管起來,所以在中斷效力程序中要用軟件對一些重要存放器的值進展保管和恢復。例如:假設ISR需求執(zhí)行一次乘法運算,那么它就需求運用乘法存放器(PREG)。假設先前的PREG值要求在執(zhí)行完ISR之后仍保管在PREG中,那么ISR必需先保管該值,再執(zhí)行新的乘法運算,當乘法運算執(zhí)行完后,中斷效力程序前往之前,再重新裝載原來那個PREG值。在大多數(shù)中斷效力程序中,都需求對某些存放器進展維護,所以

31、,經常備份個通用的保管和恢復程序,供中斷效力程序調用。.2中斷效力程序(ISR)嵌套的管理C2000硬件堆棧允許中斷嵌套,但須留意:1假設希望一個可屏蔽中斷可以中斷ISR,那么,該ISR必需不屏蔽這個中斷,可在中斷效力程序中,經過對IMR中的相應位設置和執(zhí)行允許中斷指令(CLRC INTM)來解除該中斷屏蔽。28級硬件堆棧。每進展一次中斷效力或進入子程序都要將前往地址壓入堆棧,以提供前往的途徑,所以最多允許中斷或子程序嵌套8級。 假設軟件需求的堆棧超越8級,可以利用POPD和PSHD指令將堆棧有效地擴展到數(shù)據(jù)存儲空間。.3) C2000具有防止不測嵌套的功能。 由于在執(zhí)行完中斷的效力程序前往之

32、前,總要先允許中斷,即執(zhí)行 CLRC INTM RET 假設在執(zhí)行CLRC INTM時發(fā)生了不測中斷,CPU總是先完成CLRC INTM指令及其后面的那條指令后才去處置已掛起的中斷。 假設希望在中斷效力程序中實現(xiàn)中斷嵌套,應在前往(RET)指令前至少兩條指令的位置上插入CLRC INTM指令,即 CLRC INTM . . RET.五、中斷等待時間中斷等待時間是指提出中斷懇求到呼應懇求之間的時間,其長短取決于許多要素。在執(zhí)行個軟件中斷之前CPU總是要完成流水線操作中的一切指令,不可屏蔽中斷最小等待時間為4個周期。一個外部可屏蔽硬件中斷,其最小等待時間為8個周期。LF/LC240 x中斷等待時間包括外設同步接口時間、CPU呼應時間、ISR轉移時間。外設同步接口時間是指外設中斷事件發(fā)生中斷懇求,經PIE識別、判優(yōu)、轉換后將懇求發(fā)送至CPU的時間。CPU呼應時間是指CPU識別出曾經被使能的中斷、呼應中斷、去除流水線,到從CPU的中斷矢量表中取出轉移指令的時間。ISR轉移時間是指CPU執(zhí)行通用中斷效力程序,

溫馨提示

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

評論

0/150

提交評論