資源描述:
《s3c2410的中斷系統(tǒng)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、第四章S3C2410的中斷系統(tǒng)應(yīng)用科技學(xué)院張健4.1S3C2410的中斷源4.2S3C2410的中斷處理4.3中斷控制4.4子中斷源的中斷控制4.5中斷向量設(shè)置4.6其它常用寄存器4.7中斷程序編寫(xiě)中需注意問(wèn)題4.8中斷實(shí)驗(yàn)和中斷程序編寫(xiě)主要內(nèi)容:中斷概述中斷是指計(jì)算機(jī)在執(zhí)行某一程序的過(guò)程中,由于計(jì)算機(jī)系統(tǒng)內(nèi)、外的某種原因,而必須中止原程序的執(zhí)行,轉(zhuǎn)去執(zhí)行相應(yīng)的處理程序,待處理結(jié)束之后,再回來(lái)繼續(xù)執(zhí)行被中止的原程序的過(guò)程。采用了中斷技術(shù)后的計(jì)算機(jī),可以解決CPU與外設(shè)之間速度匹配的問(wèn)題,使計(jì)算機(jī)可以及時(shí)處理系統(tǒng)中許多隨機(jī)的參數(shù)和信息,同時(shí),它也提高了計(jì)算機(jī)處理故障與應(yīng)變的
2、能力。定義當(dāng)CPU在執(zhí)行程序的過(guò)程中,外部事件向CPU發(fā)出信號(hào),請(qǐng)求CPU迅速去處理,于是,CPU暫時(shí)中止執(zhí)行當(dāng)前程序,轉(zhuǎn)去處理相應(yīng)的事件,待處理完畢后,再繼續(xù)執(zhí)行原來(lái)被中止的程序,這樣的過(guò)程稱為“中斷”。中斷系統(tǒng)主要用需要及時(shí)處理的高速隨機(jī)事件或信號(hào),對(duì)于那些看來(lái)非常重要的信號(hào)(諸如急停開(kāi)關(guān)、限位開(kāi)關(guān)、鍵盤等),其響應(yīng)速度要求并不高,切不可濫用中斷。主程序中斷服務(wù)程序中斷請(qǐng)求中斷返回為什么要用中斷?a.中斷可以解決快速的CPU與慢速的外設(shè)之間的矛盾,使CPU和外設(shè)同時(shí)工作。這樣,CPU可啟動(dòng)多個(gè)外設(shè)同時(shí)工作,大大地提高了CPU的效率。b.在實(shí)時(shí)控制中,現(xiàn)場(chǎng)的各種參數(shù)、信
3、息均隨時(shí)間和現(xiàn)場(chǎng)而變化。這些外界變量可根據(jù)要求隨時(shí)向CPU發(fā)出中斷申請(qǐng),請(qǐng)求CPU及時(shí)處理中斷請(qǐng)求。如中斷條件滿足,CPU馬上就會(huì)響應(yīng),進(jìn)行相應(yīng)的處理,從而實(shí)現(xiàn)實(shí)時(shí)處理。c.針對(duì)難以預(yù)料的情況或故障,如掉電、存儲(chǔ)出錯(cuò)、運(yùn)算溢出等,可通過(guò)中斷系統(tǒng)由故障源向CPU發(fā)出中斷請(qǐng)求,再由CPU轉(zhuǎn)到相應(yīng)的故障處理程序進(jìn)行處理。4.1S3C2410的中斷源中斷源是指在計(jì)算機(jī)系統(tǒng)中可以向CPU發(fā)出中斷請(qǐng)求的來(lái)源。通常有I/O設(shè)備、實(shí)時(shí)控制系統(tǒng)中的隨機(jī)參數(shù)和信息故障源等。S3C2410有56個(gè)中斷源。在56個(gè)中斷源中,有32個(gè)中斷源提供中斷控制器。其中,外部中斷EINT4~EINT7通過(guò)“
4、或”的形式提供一個(gè)中斷源送至中斷控制器,EINT8~EINT23也通過(guò)“或”的形式提供一個(gè)中斷源送至中斷控制器。4.1S3C2410的中斷源EINT0~23nBATT_FLTINT_TICKINT_WDTINT_TIMER0~4INT_UART0~2共9個(gè)INT_LCDINT_DMA0~3INT_SDIINT_SPI0~1INT_USBDINT_USBHINT_IICINT_RTCINT_ADC中斷源之間的邏輯關(guān)系4.2S3C2410的中斷處理S3C2410的中斷控制可以處理56個(gè)中斷源的中斷請(qǐng)求。片內(nèi)的中斷,比如DMA、UART和I2C等;處理器外部中斷輸入引腳。這些中
5、斷源中,有如下11個(gè)中斷源通過(guò)分支中斷控制器來(lái)申請(qǐng)使用中斷(與其它中斷共用一個(gè)中斷向量)。INT_ADCA/D轉(zhuǎn)換中斷;INT_TC觸摸屏中斷;INT_ERR2UART2收發(fā)錯(cuò)誤中斷;INT_TXD2UART2發(fā)送中斷;INT_RXD2UART2接受中斷;INT_ERR1UART1收發(fā)錯(cuò)誤中斷;INT_TXD1UART1發(fā)送中斷;INT_RXD1UART1接受中斷;INT_ERR0UART0收發(fā)錯(cuò)誤中斷;INT_TXD0UART0發(fā)送中斷;INT_RXD0UART0接受中斷。中斷控制邏輯(interruptcontrollerlogic)的任務(wù)是在片內(nèi)和外部中斷源組成的多
6、重中斷發(fā)生時(shí),選擇其中一個(gè)中斷,通過(guò)FIQ(快速中斷請(qǐng)求)或IRQ(通用中斷請(qǐng)求)向CPU內(nèi)核發(fā)出中斷請(qǐng)求。S3C2410的中斷控制邏輯如圖4-1所示圖4-1中中斷源是指給出中斷向量的那些中斷,子中斷源是指與其它中斷共用一個(gè)中斷向量的中斷。例如UART0是一個(gè)中斷源,而TXD0和RXD0就是子中斷源。子中斷源向CPU申請(qǐng)中斷,子中斷源掛起寄存器中相應(yīng)位要置1,如果該子中斷沒(méi)被屏蔽,則該子中斷源所歸屬的總中斷源掛起寄存器中相應(yīng)位也要置1。當(dāng)多重中斷源請(qǐng)求中斷時(shí),硬件優(yōu)先級(jí)邏輯判斷哪一個(gè)將被執(zhí)行;同時(shí),執(zhí)行0x18(IRQ)或者0x1C(FIQ)地址處的指令。然后再由軟件識(shí)別
7、各個(gè)中斷源,并跳轉(zhuǎn)到相應(yīng)的中斷處理程序處。中斷控制程序狀態(tài)寄存器的F位和I位如果CPSR(程序狀態(tài)寄存器)的F位被設(shè)置為1,那么CPU將不接受來(lái)自中斷控制器的FIQ(快速中斷請(qǐng)求);如果CPSR程序狀態(tài)寄存器的I位被設(shè)置為1,那么CPU將不接受來(lái)自中斷控制器的IRQ(通用中斷請(qǐng)求)。因此,為了使能FIQ和IRQ,必須先將CPSR程序狀態(tài)寄存器的F位和I位清零,并且中斷屏蔽寄存器INTMSK中相應(yīng)的位也要清零。4.3中斷控制4.3.1中斷模式(INTMOD)寄存器ARM920T提供了兩種中斷模式,即FIQ模式(快速模式)和IRQ