版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第五章第五章 中斷機制中斷機制w 本章學習目標與要求w 1. 掌握中斷方式的原理,重點掌握中斷優(yōu)先級編碼電路的工作原理;w 2. 理解S3C2410 的中斷系統(tǒng)體系(記住常用的I/O部件的中斷源名稱、優(yōu)先級別);w 3.掌握中斷控制寄存器的功能、32位地址、讀寫方式、重點是5個寄存器的工作過程;w 4.根據(jù)實例能夠看懂并修改相關(guān)的中斷程序,能夠分析啟動代碼中關(guān)于開關(guān)中斷的編程代碼。概述概述w嵌入式系統(tǒng)的硬件平臺是由微處理器(或微控制器)、存儲器、I/O端口及設(shè)備組成。I/O接口部件是嵌入式系統(tǒng)的關(guān)鍵組成部分。w控制I/O接口部件的方式主要有:程序查詢、中斷控制、DMA方式 等。w中斷技術(shù)主要是
2、用于I/O接口部件與微處理器之間進行數(shù)據(jù)傳輸?shù)目刂疲鼌f(xié)調(diào)了數(shù)據(jù)傳輸?shù)碾p方的步調(diào)。中斷方式是中斷方式是I/OI/O端口或部件完成一個端口或部件完成一個I/OI/O操作后,產(chǎn)生一操作后,產(chǎn)生一個信號(中斷信號)給微處理器,微處理器響應(yīng)這個中個信號(中斷信號)給微處理器,微處理器響應(yīng)這個中斷后,停止其當前的程序操作,而轉(zhuǎn)向?qū)嗪?,停止其當前的程序操作,而轉(zhuǎn)向?qū)/OI/O的操作的操作(中斷程序執(zhí)行):程序計數(shù)器(中斷程序執(zhí)行):程序計數(shù)器PCPC的值指向的值指向I/OI/O操作要操作要完成的任務(wù)(中斷服務(wù)程序例程、設(shè)備驅(qū)動程序),執(zhí)完成的任務(wù)(中斷服務(wù)程序例程、設(shè)備驅(qū)動程序),執(zhí)行完成后,返回被中
3、斷的地方繼續(xù)執(zhí)行程序。行完成后,返回被中斷的地方繼續(xù)執(zhí)行程序。5.1 5.1 中斷控制方式原理中斷控制方式原理w 嵌入式系統(tǒng)中,微處理器控制I/O端口或部件的數(shù)據(jù)傳送方式有2種:程序查詢方式和中斷方式。 w 程序查詢方式是由微處理器周期性地執(zhí)行一段查詢程序來讀取I/O端口或部件中狀態(tài)寄存器的內(nèi)容,并判斷其狀態(tài),從而使微處理器與I/O端口或部件在進行數(shù)據(jù)、命令傳送時保持同步。 程序查詢方式的特點w 程序查詢方式下,微處理器的效率是非常低的,因為微處理器要花費大量的時間測試I/O端口或部件的狀態(tài)。并且,I/O端口或部件的數(shù)據(jù)也不能得到實時地處理。 中斷方式特點w 中斷方式是I/O端口或部件在完成了
4、一個I/O操作后,產(chǎn)生一個信號給微處理器,這個信號叫做“中斷請求”,微處理器響應(yīng)這個請求信號,停止其當前的程序操作,而轉(zhuǎn)向?qū)υ揑/O端口或部件進行新的讀/寫操作。w 特點: w 1,實時性能好w 2,調(diào)試復(fù)雜中斷方式控制的I/O操作步驟初始化微處理器中用于中斷方式的寄存器,開放中斷。I/O端口或部件完成數(shù)據(jù)操作后并產(chǎn)生中斷請求信號。當中斷請求信號有效時,微處理器可能處在不可中斷狀態(tài)。等到微處理器允許中斷時,微處理器就保存當前狀態(tài),停止它現(xiàn)行的操作并開始進行中斷源的識別。在識別出優(yōu)先級最高的中斷源后,微處理器轉(zhuǎn)到對應(yīng)的中斷服務(wù)例程入口,并應(yīng)答中斷,I/O端口或部件收到應(yīng)答信號后,撤消其中斷請求。
5、 微處理器讀入或?qū)懗鰯?shù)據(jù),當中斷服務(wù)例程結(jié)束后,回到原來的被中斷程序處繼續(xù)執(zhí)行。 中斷源及其識別方法 w 嵌入式系統(tǒng)中,需要采用中斷控制方式的I/O端口或部件有許多,如S3C2410芯片中就有56個中斷源。而通常微處理器能夠提供的中斷請求信號線是有限的,如ARM920T核提供給外部的中斷請求信號線僅有IRQ和FIQ兩根。因此,當有中斷產(chǎn)生時,微處理器就必須通過一定的方式識別出是哪個中斷源發(fā)來的請求信號,以便轉(zhuǎn)向其對應(yīng)的中斷服務(wù)程序例程,這就是中斷源的識別。 向量識別中斷 w 向量識別中斷就是微處理器響應(yīng)中斷后,要求中斷源提供一個地址信息,該地址信息稱為中斷向量(或叫中斷矢量),微處理器根據(jù)中斷
6、向量(矢量)轉(zhuǎn)移到中斷復(fù)位程序處執(zhí)行。所以,中斷向量就是中斷服務(wù)程序的入口地址。w 固定中斷向量:硬件電路實現(xiàn),當中斷源通過終端請求電路向微處理器發(fā)出中斷申請信號,當滿足中斷響應(yīng)條件時,微處理器在執(zhí)行完當前指令后發(fā)出中斷響應(yīng)信號,執(zhí)行程序。w 可變中斷向量中斷優(yōu)先級仲裁 w 若嵌入式系統(tǒng)中由多個中斷源,則這些中斷源必須要進行中斷優(yōu)先級的排列。所謂優(yōu)先級,指的以下兩層含義:w 若有2個及2個以上的中斷源同時提出中斷請求,微處理器先響應(yīng)哪個中斷源,后響應(yīng)哪個中斷源。w 若1個中斷源提出中斷請求,并得到響應(yīng)后,又有1個中斷源提出中斷請求,后來的中斷源能否中斷前一個中斷源的中斷服務(wù)程序。 菊花鏈中斷優(yōu)
7、先級電路:一個中斷源:2個中斷源:中斷優(yōu)先級編碼電路:INTR INTA5.2 S3C24105.2 S3C2410的中斷系統(tǒng)的中斷系統(tǒng)w 實際上,S3C2410的中斷系統(tǒng)分成兩級,一級是控制內(nèi)部外圍I/O端口或部件、或者芯片外部中斷引腳(EINTn)的中斷控制;另一級是ARM920T核的異常中斷控制,采用了固定向量中斷方式。w S3C2410芯片中的中斷控制器可以支持56個中斷源提出的中斷請求,如表6-1所示。w (表6-1見附錄) (續(xù)) 這些中斷源由芯片內(nèi)部的I/O端口或部件如DMA控制器、UART、IIC、RTC等,以及外部中斷引腳提供。 在這些中斷源中,有些中斷,如串行接口UARTn
8、中斷和外部中斷EINTn中斷對于中斷控制器來說都是共用的。 當S3C2410芯片的內(nèi)部外圍I/O端口或部件提出中斷請求、或者芯片外部中斷引腳(EINTn)收到中斷請求時,中斷控制器經(jīng)過仲裁之后再請求ARM9核的FIQ或IRQ中斷。 S3C2410的中斷系統(tǒng)邏輯圖(續(xù))w S3C2410芯片中斷控制器支持的56個中斷源,由于其中有些中斷共用中斷請求信號線,因此,實際中斷請求信號有32個。這32個中斷請求的優(yōu)先級仲裁判決機制采用了中斷優(yōu)先級編碼判斷電路原理。其裁決邏輯由7個基本裁決器組成,其中6個一級裁決器和1個二級裁決器。w S3C2410芯片的32個中斷請求信號,在系統(tǒng)復(fù)位初始狀態(tài)下,按照前圖
9、中由上到下的順序,中斷優(yōu)先級由高到低排列,即EINT0中斷優(yōu)先級最高,INT_ADC中斷優(yōu)先級最低。 中斷控制寄存器w 用S3C2410的中斷方式來控制I/O端口或部件操作時,除了要對I/O端口或部件的相應(yīng)寄存器進行初始化設(shè)置外,還需對中斷控制器的5個控制寄存器進行初始化設(shè)置。這5個寄存器是:源未決寄存器、中斷模式寄存器、屏蔽寄存器、優(yōu)先級寄存器、中斷未決寄存器。 源未決寄存器w 源未決寄存器(SRCPND)由32位構(gòu)成,每一位與一個中斷請求信號相關(guān)聯(lián)。當某個中斷源請求中斷服務(wù)時,SRCPND寄存器的相應(yīng)位被置為1,即首先在源未決寄存器中登記。因此,該寄存器記錄了哪個中斷源的請求在等待處理。注
10、意:SRCPND寄存器的每一位由中斷源自動設(shè)置,而不管中斷屏蔽寄存器(INTMASK)中對應(yīng)的位是否被屏蔽。此外,SRCPND寄存器也不受中斷控制器的優(yōu)先級邏輯影響。w 源未決寄存器的每一位定義見附錄中表6-2中斷模式寄存器中斷模式寄存器w S3C2410的中斷模式有2種:FIQ模式和IRQ模式。32位的INTMOD寄存器中每一位都與一個中斷源相關(guān)聯(lián),確定對應(yīng)的中斷源中斷請求采用哪種模式。如果某位被設(shè)置成1,則相應(yīng)的中斷按FIQ模式處理。若設(shè)置成0,則按IRQ模式處理,該模式又稱為普通中斷模式。(見附錄中表6-3)w 注意:在S3C2410中,只能有一個中斷源在FIQ模式下處理,既INTMOD
11、寄存器中只有一位可以設(shè)置為1。因此,設(shè)計者應(yīng)該將最緊迫的中斷源設(shè)置為FIQ模式使用。 中斷屏蔽寄存器w 中斷屏蔽寄存器(INTMSK)也是由32位組成,每一位與一個中斷源相對應(yīng)。若某位設(shè)置為1,則中斷控制器不會處理該位所對應(yīng)的中斷源提出的中斷請求。否則,如果設(shè)置為0,則對應(yīng)的中斷源提出的中斷請求可以被處理。即使某屏蔽位設(shè)置為1,其對應(yīng)的中斷源產(chǎn)生中斷請求時,相應(yīng)的源未決位將設(shè)置成1。w 見附錄表6-4。 優(yōu)先級判別器w 優(yōu)先級判別寄存器(PRIORITY)是IRQ中斷模式下的中斷優(yōu)先級控制寄存器,每個中斷源在寄存器中有3位對應(yīng),分別代表ARB_SEL的2位和ARB_MODE的1位。其地址是0
12、x4a00000c,復(fù)位初始狀態(tài)為0 x0000007f。該寄存器每位的含義如表6-5所示。 中斷未決寄存器中斷未決寄存器w INTPND寄存器是32位寄存器,寄存器中的每一位對應(yīng)一個中斷源。只有未被屏蔽且具有最高優(yōu)先級、在源未決寄存器中等待處理的中斷請求可以把其對應(yīng)的中斷未決位置1。因此,INTPND寄存器中只有一位可以設(shè)置為1,同時,中斷控制器產(chǎn)生IRQ信號給ARM920T核。在IRQ的中斷服務(wù)例程里,設(shè)計者可以讀取該寄存器,從而獲知哪個中斷源被處理。w 當INTPND寄存器的一個未決位被設(shè)置為1,只要ARM920T核內(nèi)部的狀態(tài)寄存器PSR中的I標志和F標志被清零,對應(yīng)的中斷服務(wù)例程就可以
13、開始執(zhí)行。INTPND寄存器是可讀寫的,在中斷服務(wù)例程里面必須清除中斷未決位。 (續(xù))在編程操作INTPND寄存器時,應(yīng)注意以下兩點:如果發(fā)生了FIQ模式的中斷,那么INTPND寄存器中相應(yīng)的位將不會置1,因為INTPND寄存器只對IRQ模式下的中斷有效。 清除INTPND寄存器的中斷未決位時要謹慎。因為,INTPND寄存器是通過寫數(shù)據(jù)位1而對未決位清零的。如果INTPND寄存器為1的位試圖通 過 寫 數(shù) 據(jù) 位 0 來 清 除 , 那 么 I N T P N D 和INTOFFSET寄存器在某些情況下可能會具有不可預(yù)料的值。因此,切記不要往INTPND寄存器中為1的位寫數(shù)據(jù)位0。清除INTP
14、ND寄存器的未決位最簡捷的方法就是將INTPND寄存器的值寫回到INTPND寄存器里。 S3C2410S3C2410中斷控制的機制中斷控制的機制w 以上5個寄存器是S3C2410中斷控制器中主要的寄存器,在每個中斷源的處理時,設(shè)計者均需根據(jù)要求,通過編程進行初始化設(shè)定,既確定寄存器中每一位設(shè)為0還是設(shè)為1。中斷未決寄存器優(yōu)先級判別器源未決寄存器屏蔽寄存器5.3 5.3 中斷編程實例w 在嵌入式系統(tǒng)設(shè)計時,為了提高I/O端口或部件處理的實時性,往往采用中斷控制方式。S3C2410芯片中使用了ARM920T核,因此,在完成I/O端口或部件的中斷服務(wù)程序設(shè)計時,除了要了解各中斷控制寄存器的格式外,還
15、必須了解ARM920T核的IRQ異常中斷模式和FIQ異常中斷模式的處理過程。因為,S3C2410芯片的56個中斷源均是按照IRQ中斷模式或FIQ中斷模式處理的。 ARM9中斷響應(yīng)的過程w ARM9微處理器響應(yīng)IRQ異常中斷時,需要完成保護現(xiàn)場及進入IRQ異常模式等操作。所有這些操作描述如下。w 鏈接寄存器R14_irq保存有:被執(zhí)行指令地址4;w 狀態(tài)寄存器SPSR_irq保存有:CPSR寄存器的內(nèi)容w /* 系統(tǒng)進入IRQ中斷模式 */w 狀態(tài)寄存器CPSR的位4:0被賦予:0b10010w /* 系統(tǒng)切換到ARM狀態(tài) */w 寄存器CPSR的位5清0,但位6不變(續(xù))w /* 設(shè)置IRQ中
16、斷禁止位 */w 寄存器CPSR的位7置1w 如果采用高向量地址配置,那么w PC寄存器被賦予0 xffff0018w 否則w PC寄存器被賦予0 x00000018w 因為,ARM920T核會把當前PC的值保存到R14_irq中,該值在ARM狀態(tài)下,對應(yīng)當前指令后的第2條指令的地址。IRQ中斷返回時,就需要通過下面指令來實現(xiàn)回到斷點下第1條指令處執(zhí)行:w SUBSPC, LR, 4w 同時將SPSR_irq內(nèi)容復(fù)制到當前CPSR中。 中斷編程模式w S3C2410芯片的I/O端口或部件若采用中斷方式控制操作時,其編程的內(nèi)容實際上涉及四部分,既:w 建 立 系 統(tǒng) 中 斷 向 量 表 , 并 且 設(shè) 置ARM920T核的程序狀態(tài)寄存器CPSR中的F位和I位。一般情況下中斷均需使用數(shù)據(jù)棧,因此,還需建立用戶數(shù)據(jù)棧。這一部分內(nèi)容對應(yīng)的程序指令,通常編寫在系統(tǒng)引導(dǎo)程序中,如3.4節(jié)中的實例。(續(xù))(續(xù)) 設(shè)置S3C2410芯片中56個中斷源的中斷向量。通常需要利用未決寄存器或地址偏移寄存器來計算,若中斷號還對應(yīng)有子中斷(如中斷號為5時,對應(yīng)EINT8_23),需求出子中斷的地址偏移。 中斷控制初始化。主要是初始化S3C2410芯片內(nèi)部的中斷控制的寄存器。針對某個具體的中斷源,設(shè)置其中斷控制模式、中斷是否屏蔽、中斷優(yōu)先級等。(續(xù))w 完成I/O端口或部件具體操作功能的中斷服務(wù)
溫馨提示
- 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)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024民房施工節(jié)能評估報告合同3篇
- 2024年規(guī)范化工程單元承包協(xié)議樣本版B版
- 2024植筋加固施工班組勞務(wù)分包合同12篇
- 2024年防曬窗簾安裝合同3篇
- 2023-2024年初級銀行從業(yè)資格之初級個人理財試題及答案一
- 2024版國道護欄系統(tǒng)訂購協(xié)議3篇
- 2024清工承包合同:智慧社區(qū)基礎(chǔ)設(shè)施改造3篇
- 2024版工程裝修合作的協(xié)議書范本
- 2024版房屋建筑施工消防安全保障合同版
- 2024版智能穿戴設(shè)備研發(fā)與市場推廣合同
- 2024年山東濟南軌道交通集團有限公司招聘筆試參考題庫含答案解析
- 療愈行業(yè)現(xiàn)狀分析
- 北京海淀區(qū)2023-2024學年六年級上學期期末數(shù)學數(shù)學試卷
- 2023年安全總監(jiān)年終工作總結(jié)
- 浙江省杭州拱墅區(qū)2023-2024學年六年級上學期期末語文試題
- 以消費者為中心:提升營銷效果的技巧
- 部編版四年級道德與法治上冊期末復(fù)習計劃
- 獸用疫苗管理制度
- 2023瑞幸員工合同協(xié)議書
- 大氣數(shù)據(jù)測試儀校準規(guī)范
- 硬筆書法田字格標準尺寸
評論
0/150
提交評論