第五章S3C2410的中斷系統(tǒng)_第1頁
第五章S3C2410的中斷系統(tǒng)_第2頁
第五章S3C2410的中斷系統(tǒng)_第3頁
第五章S3C2410的中斷系統(tǒng)_第4頁
已閱讀5頁,還剩37頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第五章第五章 S3C2410的中斷系統(tǒng)的中斷系統(tǒng)主要內(nèi)容:主要內(nèi)容:v5.1 S3C2410的中斷源的中斷源v5.2 S3C2410的中斷處理的中斷處理v5.3 中斷控制中斷控制v5.4 子中斷源的中斷控制子中斷源的中斷控制v5.5 中斷向量設(shè)置中斷向量設(shè)置v5.6 其它常用寄存器其它常用寄存器v5.7 中斷程序編寫中需注意問題中斷程序編寫中需注意問題v5.8 中斷實(shí)驗(yàn)和中斷程序編寫中斷實(shí)驗(yàn)和中斷程序編寫 5.1 S3C2410的中斷源的中斷源vS3C2410有有56個(gè)中斷源。在個(gè)中斷源。在56個(gè)中斷源中,個(gè)中斷源中,有有32個(gè)中斷源提供中斷控制器,其中,外部個(gè)中斷源提供中斷控制器,其中,外部

2、中斷中斷EINT4EINT7通過通過“或或”的形式提供一的形式提供一個(gè)中斷源送至中斷控制器,個(gè)中斷源送至中斷控制器,EINT8EINT23也通過也通過“或或”的形式提供一個(gè)中斷源送至中的形式提供一個(gè)中斷源送至中斷控制器。斷控制器。 v通過表5-1可以看到這些中斷源之間的邏輯關(guān)系。5.2 S3C2410的中斷處理的中斷處理vS3C2410的中斷控制邏輯如圖的中斷控制邏輯如圖5-1所示,所示,S3C2410的中斷控制可以處理的中斷控制可以處理56個(gè)中斷源的個(gè)中斷源的中斷請求。這些中斷源可以是來自片內(nèi)的中中斷請求。這些中斷源可以是來自片內(nèi)的中斷,比如斷,比如DMA、UART和和I2C等;也可以來自等

3、;也可以來自處理器外部中斷輸入引腳。在這些中斷源中,處理器外部中斷輸入引腳。在這些中斷源中,有如下有如下11個(gè)中斷源通過分支中斷控制器來申個(gè)中斷源通過分支中斷控制器來申請使用中斷(與其它中斷共用一個(gè)中斷向請使用中斷(與其它中斷共用一個(gè)中斷向量)量)。 vINT_ADC A/D轉(zhuǎn)換中斷;轉(zhuǎn)換中斷;vINT_TC 觸摸屏中斷;觸摸屏中斷;vINT_ERR2 UART2收發(fā)錯(cuò)誤中斷;收發(fā)錯(cuò)誤中斷;vINT_TXD2 UART2發(fā)送中斷;發(fā)送中斷;vINT_RXD2 UART2接受中斷;接受中斷;vINT_ERR1 UART1收發(fā)錯(cuò)誤中斷;收發(fā)錯(cuò)誤中斷;vINT_TXD1 UART1發(fā)送中斷;發(fā)送中斷

4、;vINT_RXD1 UART1接受中斷;接受中斷;vINT_ERR0 UART0收發(fā)錯(cuò)誤中斷;收發(fā)錯(cuò)誤中斷;vINT_TXD0 UART0發(fā)送中斷;發(fā)送中斷;vINT_RXD0 UART0接受中斷。接受中斷。v中斷控制邏輯(interrupt controller logic)的任務(wù)是在片內(nèi)和外部中斷源組成的多重中斷發(fā)生時(shí),選擇其中一個(gè)中斷,通過FIQ (快速中斷請求)或IRQ(通用中斷請求)向CPU內(nèi)核發(fā)出中斷請求。v圖5-1中,中斷源是指給出中斷向量的那些中斷,子中斷源是指與其它中斷共用一個(gè)中斷向量的中斷。例如UART0是一個(gè)中斷源,而TXD0和RXD0就是子中斷源。子中斷源向CPU申請

5、中斷,子中斷源掛起寄存器中相應(yīng)位要置1,如果該子中斷沒被屏蔽,則該子中斷源所歸屬的總中斷源掛起寄存器中相應(yīng)位也要置1。5.3 中斷控制中斷控制5.3.1 中斷模式(中斷模式(INTMOD)寄存器)寄存器vARM920T提供了兩種中斷模式,即提供了兩種中斷模式,即FIQ模式模式(快速模式)和(快速模式)和IRQ模式(通用模式)。所模式(通用模式)。所有的中斷源在中斷請求時(shí)都要確定使用那一有的中斷源在中斷請求時(shí)都要確定使用那一種中斷模式。中斷模式控制寄存器設(shè)置如表種中斷模式。中斷模式控制寄存器設(shè)置如表5-2所示,因?yàn)閺?fù)位時(shí)各位等于所示,因?yàn)閺?fù)位時(shí)各位等于0,如果我們,如果我們采用通用中斷,中斷模式

6、寄存器可以不用設(shè)采用通用中斷,中斷模式寄存器可以不用設(shè)置。置。5.3.2 中斷掛起寄存器和中斷源掛起中斷掛起寄存器和中斷源掛起寄存器寄存器vS3C2410有兩個(gè)中斷掛起寄存器:中斷掛起寄存器有兩個(gè)中斷掛起寄存器:中斷掛起寄存器(INTPND)見表)見表5-3;中斷源掛起寄存器;中斷源掛起寄存器(SRCPND)見表)見表5-4。當(dāng)中斷源向。當(dāng)中斷源向CPU申請中斷申請中斷時(shí),時(shí),SRCPND寄存器的相應(yīng)位被置寄存器的相應(yīng)位被置1,表明哪一個(gè),表明哪一個(gè)中斷源向中斷源向CPU申請了中斷;如果當(dāng)前沒有優(yōu)先級與申請了中斷;如果當(dāng)前沒有優(yōu)先級與此中斷源相等或高于的中斷服務(wù)在執(zhí)行,并該中斷此中斷源相等或高

7、于的中斷服務(wù)在執(zhí)行,并該中斷沒被屏蔽,此中斷會被響應(yīng),沒被屏蔽,此中斷會被響應(yīng),INTPND相應(yīng)位會被相應(yīng)位會被置置1 5.3.3 中斷屏蔽寄存器(中斷屏蔽寄存器(INTMSK)v當(dāng)當(dāng)INTMSK寄存器的屏蔽位為寄存器的屏蔽位為1時(shí),對應(yīng)的中時(shí),對應(yīng)的中斷被禁止;當(dāng)斷被禁止;當(dāng)INTMSK寄存器的屏蔽位為寄存器的屏蔽位為0時(shí),時(shí),則相應(yīng)的中斷正常執(zhí)行,則相應(yīng)的中斷正常執(zhí)行,INTMSK定義見表定義見表5-5。如果一個(gè)中斷的屏蔽位為。如果一個(gè)中斷的屏蔽位為1,則該中斷,則該中斷請求不被受理請求不被受理5.3.4 中斷優(yōu)先級寄存器中斷優(yōu)先級寄存器 (PRIORITY)v上面已介紹過,上面已介紹過,

8、S3C2410共有共有56個(gè)中斷源,有個(gè)中斷源,有32個(gè)個(gè)中斷控制器,外部中斷中斷控制器,外部中斷EXTIN823共用一個(gè)中斷控共用一個(gè)中斷控制器,外部中斷制器,外部中斷EXTIN47共用一個(gè)中斷控制器,共用一個(gè)中斷控制器,9個(gè)個(gè)UART中斷分成中斷分成3組,共用組,共用3個(gè)中斷控制器,個(gè)中斷控制器,ADC和觸摸屏共用一個(gè)中斷控制器。系統(tǒng)對中斷優(yōu)先級和觸摸屏共用一個(gè)中斷控制器。系統(tǒng)對中斷優(yōu)先級實(shí)行由中斷優(yōu)先寄存器實(shí)行由中斷優(yōu)先寄存器 (PRIORITY) 和和7個(gè)中斷仲個(gè)中斷仲裁器組組成的兩級控制,這裁器組組成的兩級控制,這7個(gè)中斷仲裁器組由個(gè)中斷仲裁器組由6個(gè)個(gè)子中斷仲裁器組(子中斷仲裁器組

9、(ARBITER0 ARBITER5)和一)和一個(gè)主中斷仲裁器組個(gè)主中斷仲裁器組(ARBITER6)組成組成, 每個(gè)中斷仲裁每個(gè)中斷仲裁器下面有器下面有46個(gè)中斷源,這些中斷源對應(yīng)著個(gè)中斷源,這些中斷源對應(yīng)著REQ0REQ5這這6個(gè)優(yōu)先級。仲裁器具體分組見圖個(gè)優(yōu)先級。仲裁器具體分組見圖5-2。中斷優(yōu)先寄存器。中斷優(yōu)先寄存器 (PRIORITY)的定義見表的定義見表5-6。v當(dāng)一個(gè)中斷源向CPU申請中斷時(shí),它首先要在自己所在的子中斷仲裁器組進(jìn)行仲裁比較,如果此中斷仲裁器組中沒有和它同級別或高于它的中斷源向CPU申請中斷,則它進(jìn)入主中斷仲裁器組和其他組的優(yōu)先中斷源進(jìn)行仲裁比較,決定能否向CPU申請

10、中斷。圖5-2 中斷仲裁器分組v表5-6 優(yōu)先級寄存器設(shè)定 v由表由表5-6可以看到,中斷優(yōu)先寄存器可以看到,中斷優(yōu)先寄存器 (PRIORITY)的的20:19位控制中斷仲裁器組位控制中斷仲裁器組ARB-SEL6的優(yōu)先級。的優(yōu)先級。20:19=00,優(yōu)先級,優(yōu)先級REQ0-1-2-3-4-5;20:19=01,優(yōu)先級,優(yōu)先級REQ0-2-3-4-1-5;v20:19=10,優(yōu)先級,優(yōu)先級REQ0-3-4-1-2-5;20:19=11,優(yōu)先級,優(yōu)先級0-4-1-2-3-5,其中,其中,REQ0中斷優(yōu)中斷優(yōu)先級總是最高的,先級總是最高的,REQ5中斷優(yōu)先級總是最低的。中斷優(yōu)先級總是最低的。v中斷優(yōu)

11、先寄存器中斷優(yōu)先寄存器 (PRIORITY)的的18:17位控制中位控制中斷仲裁器組斷仲裁器組ARB-SEL5的優(yōu)先級,中斷優(yōu)先寄存器的優(yōu)先級,中斷優(yōu)先寄存器 (PRIORITY)的的16:15位控制中斷仲裁器組位控制中斷仲裁器組ARB-SEL4的優(yōu)先級,等等。的優(yōu)先級,等等。4.4 子中斷源的中斷控制子中斷源的中斷控制v上面講過,有一些中斷源和其它中斷共用一上面講過,有一些中斷源和其它中斷共用一個(gè)中斷向量,我們稱它們?yōu)樽又袛嘣矗瑐€(gè)中斷向量,我們稱它們?yōu)樽又袛嘣?,S3C2410使用子中斷源掛起寄存器使用子中斷源掛起寄存器(SUBSRCPND)和子中斷屏蔽寄存器)和子中斷屏蔽寄存器(INTSUB

12、MSK)來對它們中斷控制和反饋)來對它們中斷控制和反饋工作狀態(tài)。工作狀態(tài)。v子中斷源掛起寄存器(子中斷源掛起寄存器(SUBSRCPND)各位)各位功能如表功能如表5-7所示,子中斷屏蔽寄存器所示,子中斷屏蔽寄存器(INTSUBMSK)各位功能如表)各位功能如表5-8所示。所示。5.5 中斷向量設(shè)置中斷向量設(shè)置v一個(gè)中斷源的中斷向量就是該中斷服務(wù)函數(shù)的入口一個(gè)中斷源的中斷向量就是該中斷服務(wù)函數(shù)的入口地址,在地址,在S3C2410中,所有中斷服務(wù)函數(shù)的入口地中,所有中斷服務(wù)函數(shù)的入口地址都在址都在2410addr.h中定義成函數(shù)指針。我們在主程中定義成函數(shù)指針。我們在主程序中,只要把我們的中斷服務(wù)

13、函數(shù)的入口地址(函序中,只要把我們的中斷服務(wù)函數(shù)的入口地址(函數(shù)名)賦給該指針即可。數(shù)名)賦給該指針即可。v2410addr.h中定義的函數(shù)指針形式為:中定義的函數(shù)指針形式為:pISR_XXX,pISR表示是中斷服務(wù)函數(shù)的指針,后面表示是中斷服務(wù)函數(shù)的指針,后面XXX表示中表示中斷源名字。如,斷源名字。如,#define pISR_EINT0 (*(unsigned *)(_ISR_STARTADDRESS+0 x20)定義的是外部中定義的是外部中斷斷0的服務(wù)函數(shù)的指針。的服務(wù)函數(shù)的指針。v中斷服務(wù)函數(shù)的名前加關(guān)鍵字中斷服務(wù)函數(shù)的名前加關(guān)鍵字_isr,表明此,表明此函數(shù)是中斷服務(wù)函數(shù),例如函數(shù)

14、函數(shù)是中斷服務(wù)函數(shù),例如函數(shù)void _irq Uart0_TxInt(void) 是串行通信是串行通信0通道發(fā)送中通道發(fā)送中斷服務(wù)函數(shù),斷服務(wù)函數(shù),void _irq Uart0_RxIntOrErr(void)v是串行通信是串行通信0通道接收字符和接收錯(cuò)誤代碼中通道接收字符和接收錯(cuò)誤代碼中斷服務(wù)函數(shù)。做串行通信發(fā)送中斷實(shí)驗(yàn)時(shí):斷服務(wù)函數(shù)。做串行通信發(fā)送中斷實(shí)驗(yàn)時(shí):pISR_UART0=(unsigned)Uart0_TxInt; 做做串行通信接收中斷實(shí)驗(yàn)時(shí):串行通信接收中斷實(shí)驗(yàn)時(shí):pISR_UART0 =(unsigned)Uart0_RxIntOrErr。中斷服務(wù)。中斷服務(wù)函數(shù)聲明時(shí)名前

15、也要加關(guān)鍵字函數(shù)聲明時(shí)名前也要加關(guān)鍵字_isr。5.6 其它常用寄存器其它常用寄存器v在在S3C2410系統(tǒng)中,外部中斷專門有外部中系統(tǒng)中,外部中斷專門有外部中斷控制寄存器(斷控制寄存器(EXTINTN0 EXTINTN2)、)、外部中斷屏蔽寄存器(外部中斷屏蔽寄存器(EINTMASK)、外部)、外部中斷掛起寄存器(中斷掛起寄存器(EINTPEND)進(jìn)行控制)進(jìn)行控制。1.外部中斷控制寄存器外部中斷控制寄存器EXTINTNv外部中斷控制寄存器主要控制外部中斷觸發(fā)模式,觸發(fā)模式可以有高電平、低電平、脈沖上升沿、脈沖下降沿和雙沿5種方式。具體見表5-95-11。2外部中斷屏蔽寄存器外部中斷屏蔽寄存

16、器v外部中斷屏蔽寄存器(EINTMASK)控制外部中斷的允許和禁止。功能見表5-12。3外部中斷掛起寄存器外部中斷掛起寄存器v外部中斷掛起寄存器EINTPEND,表示當(dāng)前正在響應(yīng)的中斷服務(wù)程序是外部中斷中哪一個(gè)申請的。外部中斷掛起寄存器EINTPEND的定義見表5-13。5.7 中斷程序編寫中需注意問題中斷程序編寫中需注意問題v1中斷初始花中斷初始花 一般在系統(tǒng)復(fù)位后和中斷程序執(zhí)行結(jié)束,要一般在系統(tǒng)復(fù)位后和中斷程序執(zhí)行結(jié)束,要對中斷掛起寄存器初始花,可按如下方法進(jìn)對中斷掛起寄存器初始花,可按如下方法進(jìn)行,以免寫入不正確數(shù)據(jù)引起錯(cuò)誤。行,以免寫入不正確數(shù)據(jù)引起錯(cuò)誤。 rSRCPND = rSRC

17、PND; rINTPND = rINTPND; v2頭文件中掛起位頭文件中掛起位v在頭文件在頭文件2410addr.h中對中斷掛起位和清中斷掛起中對中斷掛起位和清中斷掛起位進(jìn)行了如下宏定義,我們在使用時(shí)只要用掛起位位進(jìn)行了如下宏定義,我們在使用時(shí)只要用掛起位的名即可:的名即可: #define BIT_EINT0 (0 x1)v#define BIT_EINT1 (0 x11)v#define BIT_EINT2 (0 x12)v#define BIT_EINT3 (0 x13)v#define BIT_EINT4_7 (0 x14)v#define BIT_EINT8_23 (0 x15)v

18、#define BIT_WDT (0 x19)v#define BIT_TIMER0 (0 x110)v#define BIT_TIMER1 (0 x111)v#define BIT_TIMER2 (0 x112)v#define BIT_TIMER3 (0 x113)v#define BIT_TIMER4 (0 x114)v#define BIT_UART2 (0 x115)v#define BIT_LCD (0 x116)v#define BIT_DMA0 (0 x117)v#define BIT_DMA1 (0 x118)v#define BIT_DMA2 (0 x119)v#defin

19、e BIT_DMA3 (0 x120)v#define BIT_SDI (0 x121)v#define BIT_SPI0 (0 x122)v#define BIT_UART1 (0 x123)v#define BIT_USBD (0 x125)v#define BIT_USBH (0 x126)v#define BIT_IIC (0 x127)v#define BIT_UART0 (0 x128)v#define BIT_SPI1 (0 x129)v#define BIT_RTC (0 x130)v#define BIT_ADC (0 x131)v#define BIT_ALLMSK (0

20、xffffffff)v#define BIT_SUB_ALLMSK (0 x7ff)v#define BIT_SUB_ADC (0 x110)v#define BIT_SUB_ERR2 (0 x18)v#define BIT_SUB_TXD2 (0 x17)v#define BIT_SUB_RXD2 (0 x16)v#define BIT_SUB_ERR1 (0 x15)v#define BIT_SUB_TXD1 (0 x14)v#define BIT_SUB_RXD1 (0 x13)v#define BIT_SUB_ERR0 (0 x12)v#define BIT_SUB_TXD0 (0 x11)v#define BIT_SUB_RXD0 (0 x10)v#define ClearPending(bit) v rSRCPND = bit;v rINTPND = bit;v rINTPND;v 5.8 中斷實(shí)驗(yàn)和中斷程序編寫中斷實(shí)驗(yàn)和中斷程序編寫v嵌入式開發(fā)基礎(chǔ)課程內(nèi)容是軟硬件相結(jié)合的,應(yīng)結(jié)嵌入式開發(fā)基礎(chǔ)課程內(nèi)容是軟硬件相結(jié)合的,應(yīng)結(jié)合某種硬件實(shí)驗(yàn)系統(tǒng)來學(xué)習(xí)。如果暫時(shí)沒有合某種硬件實(shí)驗(yàn)系統(tǒng)來學(xué)習(xí)。如果暫時(shí)沒有“目標(biāo)目標(biāo)機(jī)機(jī)”支持

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論