




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、S3C2410的處理器中斷的處理器中斷S3C2410的中斷控制的中斷控制S3C2410的中斷源的中斷源S3C2410中斷控制專用寄存器中斷控制專用寄存器S3C2410中斷控制程序編寫步驟中斷控制程序編寫步驟本章實驗例程本章實驗例程S3C2410的處理器中斷的處理器中斷 S3C2410的中斷控制邏輯如圖,它可以處理56個中斷源的中斷請求。這些中斷源可以是來自片內(nèi)外設(shè)的中斷,比如DMA、UART和I2C等;也可以是來自處理器外部中斷輸入引腳。S3C2410的處理器中斷的處理器中斷 下面的11個中斷源通過分支中斷控制器來申請使用中斷 INT_ADC A/D轉(zhuǎn)換中斷;轉(zhuǎn)換中斷; INT_TC 觸摸屏中
2、斷;觸摸屏中斷; INT_ERR2 UART2收發(fā)錯誤中斷;收發(fā)錯誤中斷; INT_TXD2 UART2發(fā)送中斷;發(fā)送中斷; INT_RXD2 UART2接收中斷;接收中斷; INT_ERR1 UART1收發(fā)錯誤中斷;收發(fā)錯誤中斷; INT_TXD1 UART1發(fā)送中斷;發(fā)送中斷; INT_RXD1 UART1接收中斷;接收中斷; INT_ERR0 UART0收發(fā)錯誤中斷;收發(fā)錯誤中斷; INT_TXD0 UART0發(fā)送中斷;發(fā)送中斷; INT_RXD0 UART0接收中斷。接收中斷。S3C2410的處理器中斷的處理器中斷 片內(nèi)UARTn中斷和EINTn是邏輯“或”的關(guān)系,它們共用一根中斷請求
3、線。 中斷控制邏輯(interruption controller logic)的任務(wù)是在片內(nèi)外圍和外部中斷源組成的多重中斷發(fā)生時,選擇其中一個中斷,通過FIQ(快速請求中斷)或IRQ(通用中斷請求)向CPU內(nèi)核發(fā)出中斷請求。S3C2410的處理器中斷的處理器中斷 實際上最初CPU內(nèi)核只有FIQ和IRQ兩種中斷,其他中斷都是各個芯片廠家在設(shè)計芯片時,通過加入一個中斷控制器來擴展定義的。這些中斷根據(jù)中斷優(yōu)先級的高低來進行處理,更符合實際應(yīng)用系統(tǒng)中要求提供多個中斷源的要求。 例如,如果定義所有的中斷源為IRQ中斷(通過中斷模式寄存器設(shè)置),并且同時有10個中斷發(fā)出請求,那么這時可以通過讀中斷優(yōu)先級
4、寄存器來確定哪一個中斷被優(yōu)先執(zhí)行S3C2410的處理器中斷的處理器中斷 當(dāng)多重中斷源請求中斷時,硬件優(yōu)先級邏輯會判斷哪一個中斷將被執(zhí)行;同時,硬件邏輯將會執(zhí)行位于0 x18(或0 x1C)地址處的指令,再由軟件編程識別各個中斷源,然后再根據(jù)中斷源跳轉(zhuǎn)到相應(yīng)的中斷處理程序中斷控制中斷控制 程序狀態(tài)寄存器的程序狀態(tài)寄存器的F位和位和I位位 中斷模式(中斷模式(INTMOD) 中斷掛起寄存器(中斷掛起寄存器(INTPND)和中斷源掛起寄存器)和中斷源掛起寄存器 (SRCPND) 中斷屏蔽寄存器(中斷屏蔽寄存器(INTMSK) 中斷優(yōu)先寄存器中斷優(yōu)先寄存器 (PRIORITY)程序狀態(tài)寄存器的程序狀態(tài)
5、寄存器的F位和位和I位位 如果CPSR(程序狀態(tài)寄存器)的F位被設(shè)置為1,那么CPU將不接受來自中斷控制器的FIQ(快速中斷請求);如果CPSR程序狀態(tài)寄存器的I位被設(shè)置為1,那么CPU將不接受來自中斷控制器的IRQ(通用中斷請求)。因此,為了使能FIQ和IRQ,必須先將CPSR程序狀態(tài)寄存器的F位和I位清零,并且中斷屏蔽寄存器INTMSK中相應(yīng)的位也要清零。 在使用C語言編寫控制程序時,CPSR在程序中是不可見的。F位和I位清零可由中斷屏蔽寄存器INTMSK中相應(yīng)的位清零自動完成。中斷模式(中斷模式(INTMOD) S3C2410提供了兩種中斷模式,即FIQ(快速)模式和IRQ(通用)模式。
6、所有的中斷源在中斷請求時都要確定使用那一種中斷模式。INTMOD相應(yīng)位為0,選通用中斷模式;INTMOD相應(yīng)位為1,選快速中斷模式。上電或復(fù)位時INTMOD相應(yīng)位為0,默認選通用中斷模式。中斷掛起寄存器(中斷掛起寄存器(INTPND)和中斷源掛)和中斷源掛起寄存器起寄存器 (SRCPND) S3C2410有兩個中斷掛起寄存器:中斷源掛起寄存器(SRCPND)和中斷掛起寄存器(INTPND)。這兩個寄存器用于指示對應(yīng)的中斷源和中斷是否被激活。當(dāng)中斷源請求中斷時,SRCPND寄存器的相應(yīng)位被置1;當(dāng)中斷被激活時,INTPND寄存器的相應(yīng)位被置1。 中斷掛起寄存器(中斷掛起寄存器(INTPND)和中
7、斷源掛)和中斷源掛起寄存器起寄存器 (SRCPND) 如果屏蔽位被設(shè)置為1,則相應(yīng)的SRCPND位會被置1,而INTPND寄存器不會有變化;如果INTPND被置位,只要標(biāo)志I或標(biāo)志F被清零,就會執(zhí)行相應(yīng)的中斷服務(wù)子程序。在中斷服務(wù)子程序中要先向SRCPND中的相應(yīng)位寫1來清除掛起狀態(tài),再用同樣的方法來清除INTPND相應(yīng)位的掛起狀態(tài)。 注意:可以通過INTPND= INTPND來實現(xiàn)清零,以避免寫入不正確的數(shù)據(jù)引起錯誤。中斷屏蔽寄存器(中斷屏蔽寄存器(INTMSK) 當(dāng)INTMSK寄存器的相應(yīng)位(屏蔽位)為1時,對應(yīng)的中斷被禁止;當(dāng)INTMSK寄存器的屏蔽位為0時,則相應(yīng)的中斷正常實行。如果一
8、個中斷的屏蔽位為1,則該中斷請求不被受理。中斷優(yōu)先寄存器中斷優(yōu)先寄存器 (PRIORITY) 上面已介紹過,S3C2410共有56個中斷源,有26個中斷控制器,外部中斷EXTIN823共用一個中斷控制器,外部中斷EXTIN47共用一個中斷控制器,9個UART中斷分成3組,共用3個中斷控制器,ADC和觸摸屏共用一個中斷控制器。中斷的優(yōu)先級是由主組號和從ID號的級別控制,具體見表4-1。 中斷優(yōu)先級設(shè)置模塊如圖4-2所示:中斷優(yōu)先寄存器中斷優(yōu)先寄存器 (PRIORITY)從上圖可以看出,中斷優(yōu)先級產(chǎn)生模塊共有7個中斷仲裁器(AIRBITER0AIRBITER6),每個中斷仲裁器是否使能由寄存器PR
9、IORITY6:0決定,每個中斷仲裁器下面有46個中斷源,這些中斷源對應(yīng)著REQ0REQ5這6個優(yōu)先級。每個中斷仲裁器可以控制6個中斷請求的優(yōu)先順序(ARB_MODE),仲裁器和中斷請求的優(yōu)先順序如表4-1示:其中,REQ 0中斷優(yōu)先級總是最高的,REQ5中斷優(yōu)先級總是最低的。4.3 S3C2410中斷源中斷源 表4-2所示為S3C2410的56個中斷源。在56個中斷源中,有30個中斷源提供給中斷控制器,其中,外部中斷EINT4EINT7通過“或”的形式提供一個中斷源送至中斷控制器,EINT8EINT23也通過“或”的形式提供一個中斷源送至中斷控制器。 4.3 S3C2410中中 56個中斷源
10、具體來說: EINT0EINT23(24個)、nBATT_FLT(1個)、INT_TICK(1個)、INT_WDT(1個)、INT_TIMER0INT_TIMER4(5個)、INT_UART0INT_UART2(各3個,共9個)、INT_LCD(2個)、INT_DMA0INT_DMA3(4個)、INT_SDI(1個)、INT_SPI0INT_SPI1(2個)、INT_USBD(1個)、INT_USBH(1個)、INT_IIC(1個)、INT_RTC(1個)、INT_ADC(2個),共56個。4.4 中斷控制專用寄存器中斷控制專用寄存器 在4.2節(jié)中已介紹中斷控制器有5個,但S3C2410有8個
11、寄存器與中斷有關(guān),有5個專用于中斷控制:源掛起寄存器(SRCPND)、中斷模式寄存器(INTMOD)、中斷屏蔽寄存器(INTMSK)、中斷優(yōu)先權(quán)寄存器(PRIORITY)和中斷掛起寄存器(INTPND),與中斷有關(guān)的寄存器如表4-3所列。 中斷源發(fā)出的中斷請求首先被寄存在中斷源掛起寄存器(SRCPND)中,中斷模式寄存器INTMOD把中斷請求分為兩組:快速中斷請求(FIQ)和通用中斷請求(IRQ),中斷優(yōu)先權(quán)寄存器(PRIORITY)處理中斷的優(yōu)先級。偏移寄存器偏移寄存器(INTOFFSET) 除上面介紹的5個中斷控制寄存器以外,還有幾個寄存器與中斷控制有關(guān)。 中斷偏移寄存器INTOFFSET
12、給出IRQ模式的中斷請求中被響應(yīng)的中斷的地址(哪個IRQ模式的中斷請求被響應(yīng))。外部中斷控制寄存器外部中斷控制寄存器(EXTINTn) EXTINTn配置外部中斷的觸發(fā)類型是電平觸發(fā)還是邊沿觸發(fā)以及觸發(fā)的極性。EXTINT2 :0的具體配置參考數(shù)據(jù)手冊。外部中斷屏蔽寄存器外部中斷屏蔽寄存器(EINTMASK) EINTMASK23:4分別對應(yīng)外部中斷234,該位等于1,對應(yīng)外部中斷被屏蔽;該位等于0,對應(yīng)外部中斷被使能,EINTMASK3 :0保留。4.5 中斷控制程序編寫步驟中斷控制程序編寫步驟 主程序工作主程序工作 中斷服務(wù)程序工作中斷服務(wù)程序工作 中斷服務(wù)程序示例中斷服務(wù)程序示例主程序工
13、作主程序工作 先清除中斷源掛起寄存器(SRCPND)和中斷掛起寄存器(INTPND),可用rSRCPND= rSRCPND和rINTPND=r INTPND來完成; 設(shè)中斷模式,這里使用通用中斷,rINTMOD=0 x00000000;因上電或復(fù)位時rINTMOD是清0的,這步也可以不做。主程序工作主程序工作 I/O口初始化,有些中斷源要通過I/O口向CPU申請中斷,如外部中斷0(EXTINT0)通過F口的GPF0、外部中斷11(EXTINT11)通過G口的GPG3向CPU申請中斷,此時兩個口的控制寄存器GPFCON和GPGCON的要設(shè)置成:GPFCON1:0=1,0;GPGCON7:6=1,
14、0。具體見下章I/O口介紹。 設(shè)中斷服務(wù)函數(shù)地址,S3C2410在2410addr.h中定義了40個宏,設(shè)置了系統(tǒng)支持的中斷服務(wù)函數(shù)的指針,設(shè)中斷服務(wù)函數(shù)地址就是把我們編寫的中斷服務(wù)函數(shù)的地址(就是中斷服務(wù)函數(shù)的名字)賦予相應(yīng)的函數(shù)指針。函數(shù)指針定義如下:(見課本)主程序工作主程序工作 從上面可以看出,每個中斷源的中斷服務(wù)函數(shù)指針名是固定的:pISR+中斷源。 設(shè)中斷觸發(fā)方式,觸發(fā)方式有5種,有上升沿、下降沿、雙沿、低電平、高電平觸發(fā)方式,外部中斷觸發(fā)方式在外部中斷控制寄存器(EXTINTn)中設(shè)定。如EINT0觸發(fā)方式在EXTINT02:0 中設(shè)定,2:0=000低電平、001高電平、01X
15、下降沿、10X上升沿、11X雙沿觸發(fā),更詳細內(nèi)容見S3C2410.pdf.。 取消總中斷屏蔽和子中斷屏蔽,等待中斷,如下面實驗例程通過rEINTMASK&=(111);rINTMASK&=(BIT_EINT0|BIT_EINT8_23);來實現(xiàn)。中斷服務(wù)程序工作中斷服務(wù)程序工作 在中斷服務(wù)程序中,先屏蔽中斷,防止其他中斷產(chǎn)生干擾我們中斷服務(wù)程序的執(zhí)行; 執(zhí)行中斷服務(wù)程序; 清中斷源掛起寄存器(SRCPND)和中斷掛起寄存器(INTPND); 取消總中斷屏蔽和子中斷屏蔽,等待新中斷產(chǎn)生; 中斷返回。中斷服務(wù)程序示例中斷服務(wù)程序示例 在主程序中,系統(tǒng)初始化后,程序進入死循環(huán),等待中斷。同時,初始化定時器1,設(shè)定時器中斷時間,當(dāng)設(shè)定時器定時時間到,產(chǎn)生中斷。 在北京精儀達盛科技公司EL-ARM830教學(xué)實驗系統(tǒng)中,接有兩個LED發(fā)光管,兩個LED發(fā)光管的陰極分別接I/O口G的bit8和bit9,陽極通過電阻接電源。 在中斷服務(wù)程序中,把LED1和LED2兩只發(fā)光管循環(huán)亮滅,每循環(huán)亮滅一次,說明來一次中斷。關(guān)于定時器操作,可參考第十一章內(nèi)容。(程序見課本)第四章習(xí)題與練習(xí)第四章習(xí)題與練習(xí) 1,S3C2410的中斷模式有哪兩種? 2,S3C2410的中斷控制寄存器有幾個,每個的作用是什么? 3,S3C2410的中斷源掛起寄存
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 幼兒園員工聘用合同
- 流通經(jīng)銷合同8篇
- 《無機化學(xué)》課程標(biāo)準(zhǔn)
- 出口賠償合同范本
- 個人英語學(xué)習(xí)計劃
- 三年級語文下冊工作總結(jié)
- 南車 合同范本
- 雙方合作生產(chǎn)經(jīng)營合同范例
- 廚房工作人員勞務(wù)合同范本
- 會計記賬報稅合同范本
- 中央2025年全國婦聯(lián)所屬在京事業(yè)單位招聘93人筆試歷年參考題庫附帶答案詳解
- 《環(huán)境污染對生態(tài)系統(tǒng)的影響》課件
- 2024年保安員證資格考試題庫及答案
- 機器狗:技術(shù)成熟性能優(yōu)越場景剛需放量在即2025
- 《生態(tài)安全》課件
- 教科版六年級下冊科學(xué)全冊單元教材分析
- 2025年春新人教版一年級下冊數(shù)學(xué)全冊教學(xué)課件
- 2024年第四季度 國家電網(wǎng)工程設(shè)備材料信息參考價
- 環(huán)保行業(yè)污水處理廠智能化管理方案
- GB/T 17145-2024廢礦物油回收與再生利用導(dǎo)則
- 普通高中生物學(xué)課程標(biāo)準(zhǔn)-(2024修訂版)
評論
0/150
提交評論