![DSP學習 5)中斷管理及復位_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/11/edce4f11-e5c8-4a4c-969d-a7751cb85848/edce4f11-e5c8-4a4c-969d-a7751cb858481.gif)
![DSP學習 5)中斷管理及復位_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/11/edce4f11-e5c8-4a4c-969d-a7751cb85848/edce4f11-e5c8-4a4c-969d-a7751cb858482.gif)
![DSP學習 5)中斷管理及復位_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/11/edce4f11-e5c8-4a4c-969d-a7751cb85848/edce4f11-e5c8-4a4c-969d-a7751cb858483.gif)
![DSP學習 5)中斷管理及復位_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/11/edce4f11-e5c8-4a4c-969d-a7751cb85848/edce4f11-e5c8-4a4c-969d-a7751cb858484.gif)
![DSP學習 5)中斷管理及復位_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/11/edce4f11-e5c8-4a4c-969d-a7751cb85848/edce4f11-e5c8-4a4c-969d-a7751cb858485.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、1一、中斷矢量一、中斷矢量 二、可屏蔽中斷二、可屏蔽中斷三、非屏蔽中斷三、非屏蔽中斷四、非法指令陷阱四、非法指令陷阱五、復位操作五、復位操作六、低功耗模式六、低功耗模式七、片內外設的中斷擴展七、片內外設的中斷擴展中斷分類:中斷分類: 可屏蔽中斷:可用軟件加以屏蔽或解除屏蔽??善帘沃袛啵嚎捎密浖右云帘位蚪獬帘?。 非屏蔽中斷:這些中斷不能夠被屏蔽。非屏蔽中斷:這些中斷不能夠被屏蔽。C28x將立即響應將立即響應該種中斷并轉入相應的子程序去執(zhí)行。所有用軟件調用的中該種中斷并轉入相應的子程序去執(zhí)行。所有用軟件調用的中斷都屬于該類中斷。斷都屬于該類中斷。中斷申請中斷申請: 由軟件或硬件驅動的信號,可暫
2、停目前執(zhí)行由軟件或硬件驅動的信號,可暫停目前執(zhí)行的主程序,轉而去執(zhí)行一個中斷服務子程序的主程序,轉而去執(zhí)行一個中斷服務子程序處理中斷過程:處理中斷過程:1接收中斷請求:接收中斷請求:由軟件中斷由軟件中斷(從程序代碼中從程序代碼中)或者硬件中斷或者硬件中斷(從一個引從一個引腳或一個基于芯片的設備腳或一個基于芯片的設備)提出請求去暫停當前主程序的執(zhí)行。提出請求去暫停當前主程序的執(zhí)行。2響應中斷:響應中斷:C28x必須能夠響應中斷請求。如果中斷是可屏蔽的,則必必須能夠響應中斷請求。如果中斷是可屏蔽的,則必須滿足一定的條件,按照一定的順序去進行測試。而對于非屏蔽硬件中斷和軟件須滿足一定的條件,按照一定
3、的順序去進行測試。而對于非屏蔽硬件中斷和軟件中斷,中斷,C28x會立即作出響應。會立即作出響應。3準備執(zhí)行中斷服務程序并保存寄存器值。準備執(zhí)行中斷服務程序并保存寄存器值。(1)完整地執(zhí)行完當前指令,清除流水線中還沒有到達第二階段的所有指令。完整地執(zhí)行完當前指令,清除流水線中還沒有到達第二階段的所有指令。(2)將寄存器將寄存器ST0、T、AH、AL、PH、PL、AR0、ARl、DP、STl、DBGSTAT、PC和和IER的內容保存到堆棧中,以便自動保存主程序的大部分內容。的內容保存到堆棧中,以便自動保存主程序的大部分內容。(3)取回中斷向量并把它放入程序寄存器取回中斷向量并把它放入程序寄存器PC
4、中。中。4執(zhí)行中斷服務子程序:執(zhí)行中斷服務子程序:C28x進入預先規(guī)定的向量地址,并且執(zhí)行進入預先規(guī)定的向量地址,并且執(zhí)行已寫好的中斷服務程序已寫好的中斷服務程序ISR。 C28x支持支持32個中斷向量,包括復位向量。每一向量是個中斷向量,包括復位向量。每一向量是一個一個22位的地址,該地址是相應中斷服務程序位的地址,該地址是相應中斷服務程序ISR的入口的入口地址。每一個地址。每一個32位的向量被保存在一個連續(xù)地址中。見書位的向量被保存在一個連續(xù)地址中。見書中表中表4-1-1 中斷向量地址的低中斷向量地址的低16位保存該向量的低位保存該向量的低16位,高地址則位,高地址則保存它的高保存它的高6
5、位。當位。當個中斷被確定后,其個中斷被確定后,其22位的向量被位的向量被取回,而地址的高取回,而地址的高10位被忽略。位被忽略。 一、一、中斷矢量中斷矢量 向量表可以映像到程序空間的底部或頂部,這取決于狀態(tài)向量表可以映像到程序空間的底部或頂部,這取決于狀態(tài)寄存器寄存器STl的向量映像位的向量映像位VMAP,如果,如果VMAP位是位是0,向量就,向量就映像在以映像在以000000h開始的地址上;如果其值是開始的地址上;如果其值是1,向量就映像,向量就映像到以到以3FFFC0h開始的地址上。開始的地址上。 VMAP位可以由位可以由SETC VMAP指令進行置位,由指令進行置位,由CLR CVMAP
6、指令進行復位。指令進行復位。VMAP的復位值是的復位值是1。一、一、中斷矢量中斷矢量 14個通用中斷個通用中斷INTlINTl4 為仿真而設計的中斷為仿真而設計的中斷DLOGINT(數(shù)據(jù)標志中斷數(shù)據(jù)標志中斷)和和TOSINT(實實 時操作系統(tǒng)中斷時操作系統(tǒng)中斷)是是。 中斷寄存器:中斷寄存器: 中斷標志寄存器中斷標志寄存器IFRl6位寄存器位寄存器IFR包含的標志位表明相應中斷在包含的標志位表明相應中斷在等待等待CPU的確認。的確認。外部輸入線外部輸入線INTlINTl4在在CPU的每的每個時鐘周期都被采樣。如個時鐘周期都被采樣。如果識別出果識別出個中斷信號,個中斷信號,IFR相應的位就被置位
7、和鎖存。相應的位就被置位和鎖存。DLOGINT或或RTOSINT,CPU片內分析邏輯送來的信號使得相應標志位被設置和鎖存。片內分析邏輯送來的信號使得相應標志位被設置和鎖存。 中斷使能寄存器中斷使能寄存器IER包含的每一位為可屏蔽中斷進行使能和關閉。包含的每一位為可屏蔽中斷進行使能和關閉。 調試中斷使能寄存器調試中斷使能寄存器DBGIER包含的每一位為可屏蔽中斷進行包含的每一位為可屏蔽中斷進行使能和關閉。表明了當使能和關閉。表明了當CPU處于實時仿真模式時哪一個中斷可以利用。處于實時仿真模式時哪一個中斷可以利用。 二、二、可屏蔽中斷可屏蔽中斷 可屏蔽中斷也利用狀態(tài)寄存器可屏蔽中斷也利用狀態(tài)寄存器
8、STl的的0位,即中斷全局屏蔽位位,即中斷全局屏蔽位INTM,可用來進行全局使能中斷和關閉中斷。,可用來進行全局使能中斷和關閉中斷。 當當INTM0時,這些中斷全局使能;時,這些中斷全局使能; 當當INTM1時,這些中斷全局關閉。時,這些中斷全局關閉。 在在IFR中一個標志關閉后,直到中一個標志關閉后,直到IER、DBGIER和和INTM位被使位被使能,否則相應的中斷將不再響應。能,否則相應的中斷將不再響應。二、二、可屏蔽中斷可屏蔽中斷 為了識別未確認中斷,可以利用指令為了識別未確認中斷,可以利用指令PUSH IFR,然后測,然后測試堆棧的值。試堆棧的值。 運用運用OR IFR指令來設置指令來
9、設置IFR位,位, 利用指令利用指令AND IFR,#0或硬件復位可以對所有的未決中斷或硬件復位可以對所有的未決中斷進行清進行清0。注意:注意:當通過指令當通過指令TRAP發(fā)出中斷請求時,如果發(fā)出中斷請求時,如果IFR的相應位被置位,的相應位被置位,CPU并并不會自動清除它。如果有一個應用請求,它的不會自動清除它。如果有一個應用請求,它的IFR已被清已被清0,則必須在中斷服務子,則必須在中斷服務子程序中將相應位清程序中將相應位清0。中斷標志寄存器中斷標志寄存器(IFR) 二、二、可屏蔽中斷可屏蔽中斷 RTOSINT D15 D14 D13 D12 D11 D10 D9 D8INT14 INT1
10、3 INT12 INT11 INT10 INT9 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0DLOGINTINT8 D7 D6 D5 D4 D3 D2 D1 D0INT6INT5INT4INT3INT2INT1 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0INT7中斷標志寄存器中斷標志寄存器IFR 若要使能中斷,需要把它的相應位置若要使能中斷,需要把它的相應位置1;若要關閉中斷,應該清除它的相應位。若要關閉中斷,應該清除它的相應位??梢允褂弥噶羁梢允褂弥噶頜OV的兩種語法對寄存器的兩種語法對寄
11、存器IER進行讀和寫。進行讀和寫。 ORIER指令可以用來設置指令可以用來設置IER位,位, ANDIER指令可以用來清除指令可以用來清除IER位。位。注意:注意:當執(zhí)行當執(zhí)行AND IER和和OR IER指令時,應確保它們不會修改狀態(tài)位指令時,應確保它們不會修改狀態(tài)位15(RTOSINT),除非當前處于實時操作系統(tǒng)模式。,除非當前處于實時操作系統(tǒng)模式。 中斷使能寄存器中斷使能寄存器(IER) 二、二、可屏蔽中斷可屏蔽中斷 RTOSINT D15 D14 D13 D12 D11 D10 D9 D8INT14 INT13 INT12 INT11 INT10 INT9 R/W-0 R/W-0 R/
12、W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0DLOGINTINT8 D7 D6 D5 D4 D3 D2 D1 D0INT6INT5INT4INT3INT2INT1 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0INT7中斷使能寄存器中斷使能寄存器IER 當當CPU處于實時仿真模式下并暫停時,才可以使用處于實時仿真模式下并暫停時,才可以使用DBGIER??赏ㄟ^讀可通過讀DBGIER來識別使能或關閉中斷,或通過寫來識別使能或關閉中斷,或通過寫 DBGIER來使能或關閉中斷。來使能或關閉中斷。用指令用指令PUSH DBGIER對對
13、DBGIER進行讀操作,進行讀操作,用指令用指令POP DBGIET對對DBGIER進行寫操作。進行寫操作。在復位時,在復位時,DBGIER的所有位被清的所有位被清0。調試中斷使能寄存器調試中斷使能寄存器 DBGIER 二、二、可屏蔽中斷可屏蔽中斷 RTOSINT D15 D14 D13 D12 D11 D10 D9 D8INT14 INT13 INT12 INT11 INT10 INT9 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0DLOGINTINT8 D7 D6 D5 D4 D3 D2 D1 D0INT6INT5INT4INT3INT2I
14、NT1 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0INT7調試中斷使能寄存器調試中斷使能寄存器DBGIER 可屏蔽中斷的標準操作可屏蔽中斷的標準操作二、二、可屏蔽中斷可屏蔽中斷 1送往送往CPU的中斷請求。的中斷請求。2設置相應的設置相應的IFR標志位。標志位。3當當 1)IER中的相應位是中的相應位是1;2)STl中的中的INTM位是位是0,確認中斷;,確認中斷;一旦一個中斷被一旦一個中斷被 使能并且被使能并且被CPU確認,則其他的中斷就不能得到響應直到確認,則其他的中斷就不能得到響應直到CPU開始執(zhí)行中斷服開始執(zhí)行中斷服 務程序,即中斷響
15、應的步驟務程序,即中斷響應的步驟13。4清除相應的清除相應的IFR位。位。5清空流水線。清空流水線。6增加和臨時存儲增加和臨時存儲PC。7取回中斷向量。取回中斷向量。8SP增增1。9執(zhí)行自動上下文存儲。執(zhí)行自動上下文存儲。10清除相應的清除相應的IER位。位。11設置設置INTM和和DBGM,清除,清除LOOP、EALLOW和和IDLESTAT。12取回向量賦值給取回向量賦值給PC。13執(zhí)行中斷服務程序。執(zhí)行中斷服務程序。14繼續(xù)執(zhí)行程序。繼續(xù)執(zhí)行程序。 中斷處理的標準過程中斷處理的標準過程INTR指令指令 三、三、非屏蔽中斷非屏蔽中斷 C28x非屏蔽中斷包括:非屏蔽中斷包括: 軟中斷軟中斷I
16、NTR和和TRAP指令指令 硬件中斷硬件中斷NMI 非法指令陷阱非法指令陷阱 硬件復位中斷硬件復位中斷RS可以通過可以通過INTR指令用標號指令用標號INTlINTl4、DLOGINT、RTOSINT和和NMI來對指令進行初始化。來對指令進行初始化。 INTlINTl4、DLOGINT和和RTOSINT。 NMI一個非屏蔽中斷,引腳上的硬件請求和用一個非屏蔽中斷,引腳上的硬件請求和用INTR指令引起的軟指令引起的軟件請求都會導致同樣的事件發(fā)生。這些事件與執(zhí)行件請求都會導致同樣的事件發(fā)生。這些事件與執(zhí)行TRAP指令時所發(fā)生的事件指令時所發(fā)生的事件相同。相同。 由由TRAP指令對中斷進行初始化的功
17、能流程:指令對中斷進行初始化的功能流程:1取回取回TRAP指令。指令。2清空流水線。清空流水線。3PC增增1和臨時存儲和臨時存儲PC。4取回中斷向量。取回中斷向量。5SP增增1。6. 執(zhí)行自動上下文存儲。執(zhí)行自動上下文存儲。7設置設置INTM和和DBGM,清除,清除LOOP、EALLOW和和IDLESTAT。8用取回的向量裝載用取回的向量裝載PC。9執(zhí)行中斷服務程序。執(zhí)行中斷服務程序。10程序繼續(xù)。程序繼續(xù)。TRAP指令指令三、三、非屏蔽中斷非屏蔽中斷 TRAP指令可初始化任何中斷,包括用戶定義的軟件中斷。指令可初始化任何中斷,包括用戶定義的軟件中斷。TRAP指令與指令與32個中斷的任何一個中
18、斷有關。個中斷的任何一個中斷有關。,非屏蔽硬件中斷非屏蔽硬件中斷 NMI輸入引腳輸入引腳CPU一旦在一旦在NMI引腳上檢測到一個有效請求,就將按引腳上檢測到一個有效請求,就將按TRAP指令中所示的方式來處理。指令中所示的方式來處理。需要說明的是:盡管需要說明的是:盡管NMI不可以被屏蔽,但有一些調試執(zhí)行不可以被屏蔽,但有一些調試執(zhí)行狀態(tài)是狀態(tài)是NMI所不能服務的。所不能服務的。三、三、非屏蔽中斷非屏蔽中斷 無效的指令被譯碼無效的指令被譯碼 操作碼操作碼0000h被譯碼被譯碼 ITRAP0 操作碼操作碼FFFFh被譯碼被譯碼 ITRAP1四、非法指令陷阱四、非法指令陷阱 復位(復位(RS=0)是
19、優(yōu)先級最高的中斷,為非屏蔽外部中斷)是優(yōu)先級最高的中斷,為非屏蔽外部中斷 復位通常在電源打開之后被啟動復位通常在電源打開之后被啟動 每次復位之后必須重新初始化系統(tǒng)每次復位之后必須重新初始化系統(tǒng) 作為硬件復位的一部分,所有當前操作均被放棄,流水作為硬件復位的一部分,所有當前操作均被放棄,流水線被清除線被清除 復位后復位后CPU的寄存器按表的寄存器按表4-5-1所示進行復位,然后所示進行復位,然后RESET中斷向量被取回,從而執(zhí)行相應的中斷服務程序。中斷向量被取回,從而執(zhí)行相應的中斷服務程序。五、復位操作五、復位操作 IDLE模式:模式:任何被使能的中斷或任何被使能的中斷或NMI中斷都可以使處理器
20、退出中斷都可以使處理器退出IDLE模模式。在這種模式下,如果式。在這種模式下,如果LPMCR1:0位都設置成零,位都設置成零,LPM模塊將不完成任何工模塊將不完成任何工作。作。 HALT模式:模式:只有復位只有復位XRS非和非和XNMI_XINT13外部信號能夠喚醒器件,外部信號能夠喚醒器件,使其退出使其退出HALT模式。在模式。在XMNICR寄存器中,寄存器中,CPU有一位使能有一位使能/禁止禁止XNMI 。 STANDBY模式:模式:如果在如果在LPMCRl寄存器中被選中,所有信號寄存器中被選中,所有信號(包括包括XNMI)都能夠將處理器從都能夠將處理器從STANDBY模式喚醒,用戶必須選
21、擇具體哪個信號喚醒模式喚醒,用戶必須選擇具體哪個信號喚醒處理器。在喚醒處理器之前,要通過處理器。在喚醒處理器之前,要通過OSCCLK確認被選定的信號:確認被選定的信號:OSCCLK的周的周期數(shù)在期數(shù)在LPMCR0寄存器當中確定。寄存器當中確定。六、低功耗模式六、低功耗模式可使芯片核心部分進入休眠狀態(tài),耗散更少的功率。有三種模式:可使芯片核心部分進入休眠狀態(tài),耗散更少的功率。有三種模式:六、低功耗模式六、低功耗模式低功耗模式通過低功耗模式通過LPMCR0和和LPMCRl兩個寄存器來控制兩個寄存器來控制 CANRX D15 D14 D13 D12 D11 D10 D9 D8SCIRXA C6TRI
22、PC5TRIPC4TRIPC3TRIPC2TRIPSCIRXBC1TRIP D7 D6 D5 D4 D3 D2 D1 D0T3CTRIPT2CTRIPT1CTRIPWDINT XNMI XINT1T4CTRIP低功耗方式控制低功耗方式控制1寄存器寄存器LPMCR1 保留保留 D15 D1 D0QUAL STDBYLPM低功耗方式控制低功耗方式控制0寄存器寄存器LPMCR0 R-0 R/W-1 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
23、PIE:外設中斷擴展模塊(外設中斷擴展模塊(the Peripheral Interrupt Expansion block)把許)把許多中斷源多路復用成一個較小的中斷輸入集。多中斷源多路復用成一個較小的中斷輸入集。 功能:功能:PIE模塊支持模塊支持96個不同的中斷,這些中斷分成個不同的中斷,這些中斷分成12個組,每個組有個組,每個組有8個個中斷,每個組都被反饋到中斷,每個組都被反饋到CPU內核的內核的12條中斷線條中斷線(1NTlINTl2)的一條上。這的一條上。這96個中斷中的每一個都得到了各自向量的支持,這些向量被保存在專用個中斷中的每一個都得到了各自向量的支持,這些向量被保存在專用R
24、AM塊中塊中并可以進行修改。并可以進行修改。 在在PIE塊中可對每個中斷分別使能或者使之無效。塊中可對每個中斷分別使能或者使之無效。 七、片內外設的中斷擴展七、片內外設的中斷擴展六、片內外設的中斷擴展六、片內外設的中斷擴展PIE控制器概述控制器概述 七、片內外設的中斷擴展七、片內外設的中斷擴展 PIE向量向量(vector)表用來存儲系統(tǒng)的各個中斷服務子程序表用來存儲系統(tǒng)的各個中斷服務子程序ISR的地址。的地址。所有多通道所有多通道(MUXed)中斷和非多通道中斷和非多通道(nonMUXed)中斷中的中斷中的每個中斷都有一個向量。非多通道中斷源由每個中斷都有一個向量。非多通道中斷源由CPU直接
25、提供。直接提供。 在器件配置期間,用戶要使用向量表并在操作期間去修改它。在器件配置期間,用戶要使用向量表并在操作期間去修改它。 有多通道有多通道PIE中斷操作序列的概況中斷操作序列的概況 六、片內外設的中斷擴展六、片內外設的中斷擴展六、片內外設的中斷擴展六、片內外設的中斷擴展 外設級:外設級:一個中斷產(chǎn)生事件出現(xiàn)在某個外設中,和該事件相關的中斷一個中斷產(chǎn)生事件出現(xiàn)在某個外設中,和該事件相關的中斷標志標志(IF)位會在這個特別外設的寄存器中被置為位會在這個特別外設的寄存器中被置為1。如果相應的中斷使能。如果相應的中斷使能(IE)位位已經(jīng)置位,則外設向已經(jīng)置位,則外設向PIE控制器產(chǎn)生一個中斷請求
26、。如果該中斷在外設級使能控制器產(chǎn)生一個中斷請求。如果該中斷在外設級使能無效,則相應的無效,則相應的IF位會一直保持直到用軟件清除它為止。如果在以后使能該中位會一直保持直到用軟件清除它為止。如果在以后使能該中斷,且中斷標志仍然置位,那么就會向斷,且中斷標志仍然置位,那么就會向PIE發(fā)出一個中斷請求。外設寄存器中發(fā)出一個中斷請求。外設寄存器中的中斷標志必須手工清除。的中斷標志必須手工清除。PIE控制器概述控制器概述 PIE級:級:PIE塊匯集了塊匯集了8個外設和外部引腳的中斷進入個外設和外部引腳的中斷進入1個個CPU中斷。這些中中斷。這些中斷被劃分為斷被劃分為12個組:個組:PIE組組1PIE組組
27、12,1個組中的中斷被多路匯集進入個組中的中斷被多路匯集進入1個個CPU中中斷。例如,斷。例如,PIE組組1被多路匯集進入被多路匯集進入CPU中斷中斷INTl,而,而PIE組組12被多路匯集進入被多路匯集進入CPU中斷中斷INTl2。與。與CPU剩余的中斷相連接的中斷源不是多路復用的。對于非多路復用剩余的中斷相連接的中斷源不是多路復用的。對于非多路復用的中斷而言,的中斷而言,PIE直接向直接向CPU傳送中斷請求。對于多路復用的中斷源,傳送中斷請求。對于多路復用的中斷源,PIE塊中的塊中的每個中斷組都有一個相關標志位每個中斷組都有一個相關標志位PIEIFRx.y和使能位和使能位PIEIERx.y
28、。另外,每個中斷。另外,每個中斷組組(1NT1INTl2)都有一個應答位都有一個應答位PIEACKx。 CPU級:級:一旦某個中斷請求被送往一旦某個中斷請求被送往CPU,CPU級中與級中與INTx相關的中斷標相關的中斷標志志(IFR)位就被置位。該標志位被鎖存在位就被置位。該標志位被鎖存在IFR后,后,CPU不會馬上就去執(zhí)行相應的中不會馬上就去執(zhí)行相應的中斷,而是等待斷,而是等待CPU使能使能IER寄存器,或者使能寄存器,或者使能DBGIER寄存器,并對全局中斷屏寄存器,并對全局中斷屏蔽位蔽位INTM進行適當?shù)氖鼓?。進行適當?shù)氖鼓堋?六、片內外設的中斷擴展六、片內外設的中斷擴展PIE控制器概述
29、控制器概述 六、片內外設的中斷擴展六、片內外設的中斷擴展向量表映射向量表映射 在在C28x芯片上,中斷向量表可以和存儲器的五個不同位置相對應。實際上,芯片上,中斷向量表可以和存儲器的五個不同位置相對應。實際上,F(xiàn)28x芯片只使用了芯片只使用了PIE向量表映像。向量映像由下述方式位向量表映像。向量映像由下述方式位/信號控制。信號控制。1VMAP:該位是狀態(tài)寄存器該位是狀態(tài)寄存器STl的位的位3。芯片復位將把該位置。芯片復位將把該位置1。通過寫。通過寫STl或執(zhí)行或執(zhí)行SETCCLRC VMAP指令可以修改該位的狀態(tài)。對于正常的指令可以修改該位的狀態(tài)。對于正常的F2812操作,可操作,可把該位設置
30、為把該位設置為1。2MOMlMAP:該位是狀態(tài)寄存器該位是狀態(tài)寄存器ST1的位的位11。芯片復位將把該位置。芯片復位將把該位置1。通過寫通過寫STl或執(zhí)行或執(zhí)行SETC/CLRC MOMlMAP指令可以修改該位的狀態(tài)。對于正常的指令可以修改該位的狀態(tài)。對于正常的F2812操作,該位應該保持為操作,該位應該保持為1。MOMlMAP=0保留,僅用于保留,僅用于TI測試。測試。3MP/MC:該位是該位是XINTCNF2寄存器的位寄存器的位8。在有外部接口。在有外部接口(XINTF)的芯片的芯片上,復位時,該位的默認值由上,復位時,該位的默認值由XMP/MC輸入信號設置。在沒有輸入信號設置。在沒有XI
31、NTF的芯片上,在的芯片上,在內部將內部將XMP/MC拉為低電平。復位后,通過寫拉為低電平。復位后,通過寫XINTCNF2寄存器寄存器(地址:地址:0 x0000 0B34),可以修改該位狀態(tài)。,可以修改該位狀態(tài)。4ENPIE:該位是寄存器該位是寄存器PIECTRL的位的位0。復位時該位的默認值設為。復位時該位的默認值設為0(PIE無效無效)。復位后,通過寫。復位后,通過寫PIECTRL寄存器寄存器(地址:地址:0 x0000 0CE0),可以修改該位狀態(tài)。,可以修改該位狀態(tài)。 六、片內外設的中斷擴展六、片內外設的中斷擴展PIE控制器概述控制器概述 M1和和M0向量表映像僅留作向量表映像僅留作
32、TI測試之用,當使用其他向量測試之用,當使用其他向量映像時,映像時,M0和和M1存儲器用作存儲器用作RAM塊,可以自由使用,沒有塊,可以自由使用,沒有限制。芯片復位后,向量表映像如書中表所示。限制。芯片復位后,向量表映像如書中表所示。 在復位和程序引導完成之后,應該由用戶對在復位和程序引導完成之后,應該由用戶對PIE向量表進向量表進行代碼初始化,然后,由應用程序使能行代碼初始化,然后,由應用程序使能PIE向量表,從向量表,從PIE向向量表所指出的位置上取回中斷向量。量表所指出的位置上取回中斷向量。六、片內外設的中斷擴展六、片內外設的中斷擴展中中斷斷源源 六、片內外設的中斷擴展六、片內外設的中斷
33、擴展多通道中斷處理過程多通道中斷處理過程 1不要清除一個不要清除一個PIEIFR位。當讀修改寫操作發(fā)生時,一個已被錄入的中斷可位。當讀修改寫操作發(fā)生時,一個已被錄入的中斷可能會丟失。清除相應的能會丟失。清除相應的PIEIFR位,該未決的中斷應該被服務。假如用戶希望清除位,該未決的中斷應該被服務。假如用戶希望清除PIEIFR位,而不執(zhí)行正常的服務子程序,則應按下列的過程:位,而不執(zhí)行正常的服務子程序,則應按下列的過程: 步驟步驟1:設置:設置EALLOW位,允許修改位,允許修改PIE向量表。向量表。 步驟步驟2:修改:修改PIE向量表以便將外設服務子程序的向量指向一個臨時向量表以便將外設服務子程
34、序的向量指向一個臨時ISR。這個臨時。這個臨時ISR僅完成從中斷操作的返回僅完成從中斷操作的返回(IRET)。 步驟步驟3:使能該中斷以便使該中斷通過臨時:使能該中斷以便使該中斷通過臨時ISR得到服務。得到服務。 步驟步驟4:在執(zhí)行了臨時中斷服務子程序后,將清除:在執(zhí)行了臨時中斷服務子程序后,將清除PIEIFR的位。的位。 步驟步驟5:修改:修改PIE向量表重新將外設的服務子程序映像至適當?shù)姆兆映绦?。向量表重新將外設的服務子程序映像至適當?shù)姆兆映绦颉?步驟步驟6:清除:清除EALLOW位。位。CPU的的IFR寄存器在寄存器在CPU中是整合的。因為清除中是整合的。因為清除CPU IFR寄存器
35、中的位不會造成一寄存器中的位不會造成一個己錄入的中斷的丟失。個己錄入的中斷的丟失。2軟件軟件中斷優(yōu)先級。中斷優(yōu)先級。3使用使用PIEIER禁止中斷。使用禁止中斷。使用PIEIER寄存器去使能一個中斷,而后去禁止這個中寄存器去使能一個中斷,而后去禁止這個中斷。斷。 六、片內外設的中斷擴展六、片內外設的中斷擴展使能和禁止多通道外設中斷使能和禁止多通道外設中斷 使能或禁止一個中斷的通常會產(chǎn)生下列兩個過程。使能或禁止一個中斷的通常會產(chǎn)生下列兩個過程。1使用使用PIEIERx寄存器去禁止中斷并保護相應的寄存器去禁止中斷并保護相應的PIEIFRx標志。當清除標志。當清除PIEIERx寄存器中的位,保護寄存
36、器中的位,保護PIEIFRx寄存器的相應位時,應按下列過程。寄存器的相應位時,應按下列過程。 步驟步驟1:禁止全局中斷:禁止全局中斷(INTM=1)。 步驟步驟2:清除:清除PIEIERx.y位去禁止一個給定的外設中斷。可以對同組一個位去禁止一個給定的外設中斷??梢詫νM一個或多個外設這樣去作?;蚨鄠€外設這樣去作。步驟步驟3:等待:等待5個周期。需要確保這個延時,任何錄入個周期。需要確保這個延時,任何錄入CPU的中斷均已經(jīng)被的中斷均已經(jīng)被標志在標志在CPU的的IFR寄存器中。寄存器中。 步驟步驟4:為外設組清除:為外設組清除CPU IFRx位。這是對位。這是對CPU的的IFR寄存器的軟件操寄存
37、器的軟件操作。作。 步驟步驟5:為外設組清除:為外設組清除PIEACKx位。位。 步驟步驟6:使能全局中斷:使能全局中斷(INTM=0)。六、片內外設的中斷擴展六、片內外設的中斷擴展2使用使用PIEIERx寄存器去禁止中斷并清除相應的寄存器去禁止中斷并清除相應的PIEIFRx標志。完成外設中斷的軟標志。完成外設中斷的軟件復位并清除件復位并清除PIEIFRx寄存器和寄存器和IFR寄存器中的相應標志,按下列過程。寄存器中的相應標志,按下列過程。 步驟步驟1:禁止全局中斷:禁止全局中斷(1NTM=1)。 步驟步驟2:置位:置位EALLOW位。位。 步驟步驟3:修改:修改PIE向量表,將特有的外設中斷
38、暫時映像到向量表,將特有的外設中斷暫時映像到一個空的中斷服務子程一個空的中斷服務子程序序ISR。這個空的。這個空的ISR僅完成從中斷指令的返回。在沒有丟失來自其他外設組的任何僅完成從中斷指令的返回。在沒有丟失來自其他外設組的任何中斷的情況下,這是清除單個中斷的情況下,這是清除單個PIEIFRx.y位的一種安全途徑。位的一種安全途徑。 步驟步驟4:禁止外設寄存器的外設中斷。:禁止外設寄存器的外設中斷。 步驟步驟5:使能全局中斷:使能全局中斷(1NTM=0)。 步驟步驟6:通過空的:通過空的ISR子程序為那些等待來自外設的未決中斷服務。子程序為那些等待來自外設的未決中斷服務。 步驟步驟7:禁止全局
39、中斷:禁止全局中斷(1NTM=1)。 步驟步驟8:修改:修改PIE向量表,將外設向量映像到它最初的向量表,將外設向量映像到它最初的ISR。 步驟步驟9:清除:清除EALLOW位。位。 步驟步驟10:禁止給定外設的:禁止給定外設的PIEIER位。位。 步驟步驟11:清除給定外設組的:清除給定外設組的IFR位位(這是對這是對CPUIFR寄存器的安全操作寄存器的安全操作)。 步驟步驟12:清除:清除PIE組的組的PIEACK位。位。 步驟步驟13:使能全局中斷。:使能全局中斷。 使能和禁止多通道外設中斷使能和禁止多通道外設中斷 從外設到從外設到CPU的多通道中斷請求流程的多通道中斷請求流程 六、片內
40、外設的中斷擴展六、片內外設的中斷擴展步驟步驟1:任何:任何PIE組里的外設和外部中斷產(chǎn)生一個中斷,假如外設中斷已被使能,組里的外設和外部中斷產(chǎn)生一個中斷,假如外設中斷已被使能,那么,該中斷要求就被置入那么,該中斷要求就被置入PIE模塊。模塊。步驟步驟2:PIE模塊識別模塊識別PIE組組x內已經(jīng)錄入的中斷內已經(jīng)錄入的中斷y(INTx.y),并且將相應的,并且將相應的PIE中中斷標志位鎖存:斷標志位鎖存:PIEIFRx.y=1。步驟步驟3:為了置位從:為了置位從PIE到到CPU的中斷要求,下列兩個條件必須為真。的中斷要求,下列兩個條件必須為真。 (1)適當?shù)氖鼓芪槐仨氈梦贿m當?shù)氖鼓芪槐仨氈梦?PI
41、EIERx.y=1)。 (2)必須清除該組的必須清除該組的PIEACKx位。位。步驟步驟4:如果步驟:如果步驟3中的兩個條件為真,那么就在中的兩個條件為真,那么就在CPU建立了一個中斷要求,響建立了一個中斷要求,響應位再次被置位應位再次被置位(PIEACKx=1)。PIEACKx位將一直保持置位直至清除該位,這表位將一直保持置位直至清除該位,這表示來自該組的附加中斷能夠被從示來自該組的附加中斷能夠被從PIE設置到設置到CPU。步驟步驟5:CPU中斷標志位置位中斷標志位置位(CPU IFRx=1)以標示出一個以標示出一個CPU級的未決的中斷級的未決的中斷x。步驟步驟6:假如:假如CPU中斷被使能
42、中斷被使能(CPU IER bitx=1或或DBGIER bitx=1),全局中斷屏,全局中斷屏蔽被清除蔽被清除(1NTM=0),那么,那么CPU將為將為INTx服務。服務。 從外設到從外設到CPU的多通道中斷請求流程的多通道中斷請求流程 六、片內外設的中斷擴展六、片內外設的中斷擴展步驟步驟7:CPU識別這個中斷并自動存放有關信息,清除識別這個中斷并自動存放有關信息,清除IER位,設置位,設置INTM,清除清除EALLOW。 步驟步驟8:CPU從從PIE要求適當?shù)南蛄?。要求適當?shù)南蛄?。步驟步驟9:對于多通道中斷,:對于多通道中斷,PIE模塊使用模塊使用PIEIERx和和PIEIFRx寄存器中的
43、當前寄存器中的當前值去找出要使用的向量地址。有兩種可能的情況:值去找出要使用的向量地址。有兩種可能的情況: 該組中最高優(yōu)先級中斷的向量被取出,并且被用作分支地址。這個中斷在該組中最高優(yōu)先級中斷的向量被取出,并且被用作分支地址。這個中斷在PIEIERx寄存器中使能,在寄存器中使能,在PIEIFRx中標示為未決的中斷。在這種方式下,中標示為未決的中斷。在這種方式下,假如一個更高級的使能中斷在步驟假如一個更高級的使能中斷在步驟4之后被標示,它就會首先得到服務。之后被標示,它就會首先得到服務。 如果該組中沒有已經(jīng)標示的中斷被使能,那么如果該組中沒有已經(jīng)標示的中斷被使能,那么PIE將響應該組中最高優(yōu)先將
44、響應該組中最高優(yōu)先級的中斷向量,即用級的中斷向量,即用INTx.1作為分支地址,這種操作相當于執(zhí)行作為分支地址,這種操作相當于執(zhí)行28x的的TRAP或或INT指令。指令。 在這一點上,在這一點上,PIEIPRx.y位被清除,位被清除,CPU轉入從轉入從PIE取出的中斷向量里去。取出的中斷向量里去。從外設到從外設到CPU的多通道中斷請求流程的多通道中斷請求流程 六、片內外設的中斷擴展六、片內外設的中斷擴展PIE向量表向量表 (見教材見教材)六、片內外設的中斷擴展六、片內外設的中斷擴展PIE寄存器寄存器 名稱名稱地址地址占用占用空間空間描述描述PIECTRL0 x0000 0CE01PIE,控制寄
45、存器控制寄存器PIEACK0 x0000 0CE11PIE,響應寄存器響應寄存器PIEIERxX=1,2,120 x0000 0CE2 0CF8(偶數(shù)偶數(shù))1PIE,INTx組使能寄存器組使能寄存器PIEIFRx0 x0000 0CE3 0CF9(奇數(shù)奇數(shù))1PIE,INTx組標志寄存器組標志寄存器保留保留)x0000 0CFA)x0000 0CFF6保留保留372.4 定時器中斷舉例u 配置配置 CPUCPU定時器定時器0 0產(chǎn)生定時中斷產(chǎn)生定時中斷u 每次中斷每次中斷LEDLED的狀態(tài)切換一次(的狀態(tài)切換一次(0/10/1)外設中斷的編程:1 1)定義使用的外設中斷矢量表定義使用的外設中斷
46、矢量表2 2)外設級中斷控制寄存器初始化)外設級中斷控制寄存器初始化-InitPieCtrl() 3 3)CPUCPU級中斷控制寄存器初始化級中斷控制寄存器初始化-main()4 4)外設和外設中斷矢量的初始化)外設和外設中斷矢量的初始化-main()5 5)中斷服務程序中斷服務程序-ISRTimer0()38中斷矢量表const struct PIE_VECT_TABLE PieVectTableInit = PDPINTA_ISR, / EV-A PDPINTB_ISR, / EV-B rsvd_ISR, XINT1_ISR, XINT2_ISR, ADCINT_ISR, / ADC TI
47、NT0_ISR, / Timer 0 WAKEINT_ISR, / WD; 方法方法1 1:采用位域結構方式,在中斷矢量表中定義所有的:采用位域結構方式,在中斷矢量表中定義所有的中斷矢量,如外設中斷組中斷矢量,如外設中斷組1 1(INT1)。)。 方法方法2 2:定義存放中斷矢量的地址變量,如:定義存放中斷矢量的地址變量,如CPUCPU定時器定時器0 0為:為:volatile unsigned long *TINT0=(volatile unsigned long *)0 x000D4C;39中斷控制寄存器初始化void InitPieCtrl(void) DINT; / Disable Interrupts at the CPU level PieCtrlRegs.PIECRTL.bit.ENPIE = 0; / Disable the PIE PieCtrlRegs.PIEIER1.all = 0; / Clear all PIEIER registers PieCtrlRegs.PIEIER2.all = 0; PieCtrlRegs.PIEIER12.all = 0; PieCtrlRegs.PIEIFR1.all = 0; / Clear all PIEIFR registers. PieCtrlRegs.PIEIF
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度教學儀器知識產(chǎn)權保護合同
- 全新轎車購買合同范本
- 2025年度金融貸款居間風險控制合同
- 全國授權合同范本
- 養(yǎng)鵝合同范例
- 切割支撐合同范本
- 業(yè)主和裝修工長合同范例
- 2025年度花卉市場渠道建設與拓展合同
- 自愿租賃房屋意向合同范本
- n 1賠償合同范本
- 頂管施工施工總體部署中建
- 門急診病歷書寫內容及要求
- 2022年陜西西安亮麗電力集團有限責任公司招聘考試試題及答案
- 一人出資一人出力合伙協(xié)議范本完整版
- 2022年北京海淀區(qū)高三一模物理試題和答案
- 施工工法的編寫與申報(完整版)
- 歇后語大全500條
- 中小學教師校園安全培訓
- 2024年北京法院聘用制審判輔助人員招聘筆試參考題庫附帶答案詳解
- (高清版)DZT 0276.13-2015 巖石物理力學性質試驗規(guī)程 第13部分:巖石比熱試驗
- (高清版)DZT 0017-2023 工程地質鉆探規(guī)程
評論
0/150
提交評論