C66xCorePac用戶指南中文版_第1頁
C66xCorePac用戶指南中文版_第2頁
C66xCorePac用戶指南中文版_第3頁
C66xCorePac用戶指南中文版_第4頁
C66xCorePac用戶指南中文版_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、C66x CorePac User's Guide一、 概述中斷控制器:DSPC66X提供了兩種類型的信號同步服務:中斷;異常;中斷由于外部或者內部的硬件信號而提供使正常程序流重新定向的方法。異常也是如此,也通過重新定向程序流。但是異常通常和系統(tǒng)的錯誤條件有關。C66X可以接收12種可屏蔽/配置中斷,一種可屏蔽異常,和一種不可屏蔽中斷/異常。DSP也可以響應各種內部異常情況這些在C66X CPU和指令集參考指南中都有記錄。因為它們全都包含在DSP內部。C66X 內核包括一個中斷控制器,允許多達128個和DSP中斷/異常有關的系統(tǒng)事件。這128個系統(tǒng)事件可以直接連接到可屏蔽中斷,或者組合

2、起來作為中斷或者異常。這些不同的路由選擇允許的事件具有很大的靈活性處理。在DSP中一個中斷被標記,則一個錯誤事件也被標記,這時該中斷的標志就會被掛起。除了路由事件以外,當CPU丟失了一個中斷,中斷控制器也會檢測。在CPU丟失一個實時事件時,可以利用這個錯誤事件去通知CPU。中斷控制器的硬件設備會在一個寄存器中保存丟失中斷的編號以糾正CPU的行為。二、 C66X 內核中斷控制器的目的C66X提供了大量的西永事件。中斷控制器提供了一種方法選擇必要的事件,并將它們路由到相應的DSP中斷和異常輸入。雖然可以利用許多這樣相同的系統(tǒng)事件去驅動其他外圍設備,例如EDMA,但是C66X內核中斷控制器是用來專門

3、管理DSP的。三、 特點中斷控制器將希同事件映射到DSP的中斷和異常輸入。中斷控制器支持128個系統(tǒng)事件。這128個系統(tǒng)事件作為輸入進入中斷控制器。它們包含內部產生的事件和芯片級事件。事件的列表將在9.3節(jié)列舉。另外,除了這128個事件,中斷控制器寄存器還能夠接收不可屏蔽和復位事件,并且直接路由給DSP。中斷控制器從這些事件中輸出各種信號到C66X DSP:一一個可屏蔽、硬件異常(EXCEP)12個可屏蔽硬件中斷(從INT4-INT15)一個利用中斷或者異常的不可屏蔽信號(NMI)一個復位信號(RESET)中斷控制器包括以下模塊,以方便事件路由到中斷和異常。1) 中斷選擇器:路由任何系統(tǒng)事件到

4、12個可屏蔽中斷2) 事件連接器:減少龐大的事件數(shù)目至四種3) 異常連接器:讓任何系統(tǒng)事件組合在一起作為單一的硬件異常輸入四、 系統(tǒng)功能圖五、 術語和定義在本章中特別重要的一條是:1) 系統(tǒng)事件:為了通知DSP一些已經發(fā)生的活動或者需要一個響應而產生的以個內部或者外部的信號。2) 中斷:中斷由于外部或者內部的硬件信號而提供使正常程序流重新定向的方法。異常和中斷類似,他們也重新定位程序流,但是異常通常和系統(tǒng)的錯誤狀態(tài)相關。六、 中斷控制器的結構中斷控制器設計來提供對系統(tǒng)事件的靈活的管理。這個功能是通過列出的這一組寄存器實現(xiàn)的。這些寄存器在本章中具有涉及。在第9.5節(jié)中有詳細的說明。1) 事件寄存

5、器中斷控制器包含一系列寄存器以管理由控制器收到的系統(tǒng)事件的狀態(tài)。寄存器可按以下分租:1) 事件標志寄存器(EVTFLAAGx)2) 清理標志寄存器(EVTCLRx)3) 設置標志寄存器(EVTSETx)事件標志寄存器捕捉所有被控制器接收到的系統(tǒng)事件。共有四個32位寄存器覆蓋124個系統(tǒng)事件輸入。每個系統(tǒng)事件都會被映射到其中一個事件標志寄存器的一個特殊標志位(EFXX)上。通用的系統(tǒng)事件標志位結構如下圖所示:所有的124個系統(tǒng)事件都被獨立地映射到四個32位EVTFLAGx寄存器的一位上。這就使得EVTFLAG0 (EF03:EF00)的至少四位和系統(tǒng)事件沒有關聯(lián)。這四位始終保持為0.也就是說這些

6、地址域是沒有相應的系統(tǒng)事件輸入的。相反,如圖所示,和通過事件連接器內部產生(被送到中斷控制器)的事件00到事件03的系統(tǒng)事件被路由到中斷選擇器,事件標志(EFxx)是鎖定寄存器位,在任何事件被接收時保留值1.事件標志寄存器是只讀的,并且必須被只寫的事件清理寄存器EVTCLR清理。利用事件清理寄存器清理事件標志寄存器。有一個32位事件清理寄存器。這些寄存器的地地址域和事件標志寄存器的地址域是一一映射的。Writing a 1 to a specific field in an event clear register causes the corresponding event flag reg

7、ister field to clear.事件清理寄存器EVTCLR的結構如圖所示。事件設置寄存器在概念上類似于事件清除寄存器。利用該寄存器可以手動的設置事件標志寄存器的任意位(例如:可利用事件組寄存器測試中斷服務程序時產生中斷)??偣灿兴膫€32位的事件設置寄存器,其地址域是和事件標志寄存器一一映射的。在事件設置寄存器寫1到一個特殊的位會使事件標志寄存器相應的位置1.事件設置寄存器的結構如圖所示。中斷控制器利用事件清理和事件設置寄存器,不需要直接對事件標志寄存器進行寫入,可以防止?jié)撛诘母偁帬顩r,沒有這些額外的寄存器,DSP可能在對標志位進行讀-修改-寫操作的時候存在其他方面的清理標志組的隱患。

8、如果在同一個周期內接收到一個新的事件,則清理是由EMT CLRx指定的,新的事件輸入優(yōu)先作為對丟失事件的額外預防。2.事件連接器事件連接器允許多個系統(tǒng)事件組合成一個單一事件。合并事件路由到中斷選擇器。這使得DSP能夠服務所有可能的系統(tǒng)事件,即使DSP只含有12個可用中斷。中斷連接器的基本原則是在一個系統(tǒng)事件標志的子集上執(zhí)行一個OR運算(如表1所示)。OR運算的結果作為一個新的連接事件。事件連接器將124個系統(tǒng)事件分成四組。第一組包括從事件4到31,第二組包括從事件32到事件63,第三組包括事件64到事件95,第四組包括事件96到127.在每個組中可以將時間連接組成一個新的組合事件。這些新的事件

9、被寫入EVT0/EVT1/EVT2/EVT3.這些事件會通過最初的124個系統(tǒng)事件作為一個128個事件的整體組合路由到中斷選擇器。每個組合都有一個事件屏蔽寄存器。事件屏蔽寄存器的通常結構如下事件屏蔽寄存器中的事件屏蔽位的作用是啟用或者屏蔽接收到的系統(tǒng)事件使之組合在一起。該寄存器默認為0.因此所有的系統(tǒng)事件均是未屏蔽的且是組合在一起的,以形成相互關聯(lián)的EVTx。如果要屏蔽一個事件源,相應的屏蔽位必須置1.注意時間0到3的事件屏蔽位是被保留的,并且總是被屏蔽的。除了基于可編程事件產生一個組合輸出活動,事件組合器提供事件標志寄存器的屏蔽視圖。事件組合寄存器的結構示于圖9-7。對于在事件屏蔽寄存器中啟

10、用的事件,屏蔽事件標志寄存器的內容和事件標志寄存器的內容是相同的。通過讀取屏蔽事件標志寄存器,DSP僅能夠看見事件標志潛在的響應的組合事件(EVT3:0)。在中斷服務程序組合事件中這是有用的。在處理一個組合中斷的時候,你必須:1) 閱讀MEVTFLAGxJ寄存器相應的組合事件EVTx。2) 檢查第一個待處理(即標記事件)3) 將MEVTFLAGx值寫到EVTCLRx寄存器4) 在步驟2中處理該事件5) 重復步驟1到4直到MEVTFLAGX寄存器為0.此過程只評估并清除相結合的EVTx的事件。此外,任何在EVTMASKx寄存器中被屏蔽的事件不會被清除(它們不需要被清除),即使它們在EVTFLAG

11、x寄存器中被設置(這樣就可以使用它們生成異常)。注意 - DSP應重復步驟1至步驟4,直到沒有未處理的事件被發(fā)現(xiàn)之前。在中斷服務程序中返回。這確保了任何在中斷服務程序中接收到的事件被捕獲(如果在同一時間接收到事件EVTx,在EVTCLRy寄存器中其標志是清除的,那么它就不會清除)。3.中斷選擇器中斷選擇器的操作DSP有12個可屏蔽中斷。中斷選擇器允許128個系統(tǒng)事件中的任何一個路由到12個DSP中斷輸入中。如下圖所示這128個事件既有事件輸入也有事件組合經過事件組合器產生。事件組合器邏輯具有將多個事件輸入分成四個可能的事件輸出的能力。接著這些輸出將被輸送給中斷選擇器并被當作額外的系統(tǒng)事件(EV

12、T0到EVT3)。系統(tǒng)組合器允許除了中斷選擇器以外的中斷路由方式。在INTC模塊的這種靈活性使得大量系統(tǒng)中斷可以在C66x CorePac內提供服務。它也允許大量的中斷到DSP內同時提供服務,從而提高中斷效率。C66X內核事件。中斷選擇器包含中斷復用寄存器。INTMUX3:1允許調用12個DSP可用中斷中的任何一個。每個事件都在中斷寄存器中列出,并且都有一個事件數(shù)目,用以運行這些寄存器。DSP中斷的順序(從DSPINT4到DSPINT15)決定待處理中斷的優(yōu)先級。因為任何中斷都是原子的(不可嵌套),因此DSP中斷優(yōu)先級只適用于待處理中斷。4.中斷錯誤事件每當DSP檢測到一個中斷已經被刪除,C6

13、6XDSP利用中斷控制器能夠產生一個系統(tǒng)事件(EVT96)。當相關的DSP中斷標志位已經設置好,DSP中斷已經接收到,則該事件就會產生。錯誤事件可能預示著在代碼中可能出現(xiàn)的問題。例如是否長期停用中斷或者不可中斷代碼段是否太長。由于中斷下降檢測邏輯存在于DSP中,故只有來源于單一系統(tǒng)事件的中斷才能被檢測。組合事件僅能指示在造成這個錯誤的組內的一個或者多個中斷。當DSP檢測下降錯誤條件時它將信息傳回到中斷控制器的中斷/異常狀態(tài)寄存器。該寄存器記錄了下降中斷數(shù)目以及聲稱一個系統(tǒng)事件。以下方框圖展示了和異常產生有關的信號:INTERR事件是從中斷控制器輸出的,并在內部路由回到系統(tǒng)事件96.由于INTX

14、ERR只能容納一個下降DSP ID。異常狀態(tài)清理寄存器(INTXCLR)是由單個的清除位組成的。中斷異常狀態(tài)通過它被清理。在INTXCLR寄存器的CLEAR區(qū)域寫入1可以重置INTXSTAT寄存器至0.在被硬件清理之后,一個新的IDROP事件才能夠被檢測到。當處理一個下降中斷錯誤事件時,其處理流程是:1) 讀取INTXSTATE寄存器2) 檢查錯誤狀態(tài)3) 通過INTXCLR寄存器清理錯誤為了防止一個或多個DSP中斷產生下降中斷錯誤,通常通過編程下降中斷屏蔽寄存器(INTDMASK)來忽略它們。5.異常組合器C66X DSP有一個簡單的系統(tǒng)極、可屏蔽的、異常的事件輸入。這個輸入由EXCEP決定

15、。異常組合器允許多個系統(tǒng)事件組合成單一的異常事件,如下圖所示。這就允許DSP處理所有的可用系統(tǒng)事件,即使只有一個DSP異常輸入是可用的。異常組合器允許系統(tǒng)設計者選擇一個執(zhí)行OR運算的系統(tǒng)事件標志的子集,以決定EXCEP的值??驁D顯示;了通過異常組合器來控制系統(tǒng)異常的路徑。注意:重置和不可屏蔽中斷也在方框圖中表示出來了。實際上,當異常在C66X DSP中啟用的時候,NMI信號也被用作不可屏蔽異常輸入。在DSP中,這兩種信號和其他種類的DSP 異常組合在一起。為了在DSP中只允許系統(tǒng)任務的部分子集產生異常,異常組合器提供了一組四個屏蔽寄存器,即EXPMASK3:0。用來禁用期望之外的事件。因為只有

16、一個到DSP的異常輸入,所有的屏蔽寄存器協(xié)同工作,以最多將128個事件送入一個單一的EXCEP輸出。這就讓DSP能夠處理所有的系統(tǒng)異常。EXPMASKx寄存器的默認值全是1.這就意味著所有的事件都是屏蔽的。因此,沒有系統(tǒng)事件產生一個異常除非你編輯這個寄存器。這和事件組合器類似。異常組合器提供了一組屏蔽異常標志位(MEXPFLAGx)和異常屏蔽寄存器相互聯(lián)系。屏蔽異常標志寄存器提供了一個事件標志寄存器屏蔽視圖。通過讀取屏蔽異常標志寄存器,只有DSP看見和DSP異常輸入有關的事件標志。通常的屏蔽異常標志寄存器的結構如圖所示DSP應該運行一個異常處理程序并且尋找異常的成因。并在接收到一個異常時響應一

17、個合適的事件。當處理異常的時候處理程序必須首先確定是否在DSP的內部,通過不可屏蔽異?;蛘逧XCEP信號,來產生一個異常信號。如果發(fā)現(xiàn)EXCEP是異常的源頭,程序應該讀取屏蔽異常標志寄存器來確定是哪個不可屏蔽事件觸發(fā)了異常。當處理一個組合中斷時,必須做到:1) 讀取MEXFLAG(3:0)寄存器;2) 檢查待處理事件3) 將MEXPFLAG3:0的值寫入到EVTCLR3:0寄存器。利用EVTCLR寄存器中MEXPFLAGx的值只能清理組合事件的值來產生EXCEP。任何在EXPMASK中被屏蔽的事件都將被清理,即使在EVTFLAGx寄存器中設置過。這就使得它們能夠被利用來產生組合中斷事件。4)

18、在返回異常處理程序前,DSP應該在步驟1和步驟3迭代。直到沒有待處理事件被發(fā)現(xiàn)。這就保證了任何在異常程序處理期間接收到的事件都被捕捉到。注意:如果DSP需要響應任何新的異常,步驟四直觀重要。以下兩個事實解釋了為什么是這樣:1) 當有任何的不可屏蔽事件標志位輸入是活躍的時候,異常組合器的輸出也是活躍的。2) DSP識別請求是從0到1的轉換。因此,在DSP能夠識別一個新的從低到高的轉變時,所有的不可屏蔽事件標志均需要清理。四、C66X 內核事件C66X 內核的各種組件會產生各種時間。這些事件在被發(fā)現(xiàn)時會被路由到中斷控制器,它們能夠被DSP處理。這些事件如圖所示:注意:這些可見的事件對C66X CO

19、REPAC而言是芯片級的。因此,每個新的C66X程序能夠在必要時利用這些事件作為輸入。七、 中斷控制器DSP的互動 1.DSP中斷控制器的互動作為異常組合器和中斷選擇器的產生的中斷控制器的輸出,將會提供給C66X DSP。十二個中斷信號反映在DSP的中斷標志寄存器上(IFR)。如下圖示。為了能使DSP識別出中斷,我們必須啟動中斷。DSP要求單獨的通過啟用中斷使能寄存器和中斷任務寄存器中的全局中斷使能區(qū)來驅動中斷。同時,也應該注意到異常信號是記錄在DSP異常標志寄存器的。必須在如圖示的異常標志寄存器被識別前啟用異常。為了系統(tǒng)設計和之后的兼容性,異常識別在設備重置后需要禁用。你可以在中斷任務寄存器

20、中設置全局異常使能區(qū)域打開異常。在啟用任何中斷之前,應該其啟用中斷,以保證不可屏蔽信號沒有被接收而且其模式已經改變。當DSP中的系統(tǒng)異常沒有啟動,不可屏蔽中斷作為一個中斷,并且在被接收時會發(fā)送一個標志到IFR寄存器的BITI區(qū)域。當DSP中的異常啟用的時候,該標志是沒有設定的。相反,異常源通常在異常標志寄存器中被識別,以確定異常源到底是不可屏蔽信號、EXCEP、一個內部異常還是硬件異常(SWE/SWENR).。所有的不可屏蔽信號在處理過程中共享NMI中斷向量,不管是拿它作為一個中斷還是代表一個異常。相對于NMI向量,DSP只使用它的REP寄存器作為向量。在這種情況下,SWENR產生一個異常而不

21、是SWE指令。中斷事件的DSP處理在DSP處理單一事件中斷的情況下(系統(tǒng)事件被直接導入中斷處理器),沒有必要去讀取或清理中斷控制器中的事件標志寄存器。但是,當處理組合系統(tǒng)事件時,必須應用一個中斷服務程序或者一個異常服務程序中的事件標志。這些標志用于確定事件是用于中斷還是異常。從另一方面來講,DSP中斷標志寄存器(或者異常標志寄存器)告訴DSP一個組合事件已經發(fā)生了,接著服務程序必須利用這些事件標志寄存器來確定具體的原因。同樣重要的是,早處理程序中,相應的事件標志寄存器位必須由軟件清除,以接收隨后的事件。如果事件標志不被清理,則新的系統(tǒng)事件將無法識別。這會造成新的系統(tǒng)事件不能被識別為一個下降的中

22、斷。這是因為DSP下降中斷邏輯應用在DSP中斷輸入上(而不是中斷控制器的事件輸入)。一旦事件被中斷控制器組合在一起,則DSP就不能檢測到。在許多系統(tǒng)中,服務程序可能會立即讀取中斷控制器,接著清除整個事件標志寄存器。這對一些系統(tǒng)是好的,但是必須注意有些特定事件是不能被任何系統(tǒng)代碼輪詢的。如果一個特殊事件必須被輪詢(由內部的一些代碼偶爾讀取系統(tǒng),而不是讓該事件中斷DSP),然后盲目地清除標志位可能會導致意想不到的結果。八、 寄存器1. 事件寄存器中斷控制寄存器包含了一系列的狀態(tài)和控制寄存器來管理由控制器接收的系統(tǒng)事件。這些寄存器包括標志位、設置和清理寄存器,覆蓋了所有的128個系統(tǒng)事件。1.1事件標志寄存器事件標志寄存器中

溫馨提示

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

評論

0/150

提交評論