




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、ARM中斷控制專用寄存器及部分解答2007-12-19 22:05寄存器地址讀/寫描述復(fù)位值SRCPND源掛起寄存器4A000000R/W0=中斷沒有發(fā)出請(qǐng)求;1=中斷源發(fā)出中斷請(qǐng)求00000000INTMOD中斷模式寄存器4A000004R/W0=IRQ模式1=FIQ模式00000000INTMSK中斷屏蔽寄存器4A000008R/W0=允許響應(yīng)中斷;1=中斷請(qǐng)求被屏蔽FFFFFFFFINTPND中斷掛起寄存器4A000010R/W0=未發(fā)生中斷請(qǐng)求1=中斷源發(fā)出中斷請(qǐng)求00000000PRIORITY中斷優(yōu)先權(quán)寄存器4A00000CR/WIRG優(yōu)先級(jí)控制寄存器7F一、中斷控制寄存器位SRC
2、PNDBit描述復(fù)位值INT_ADC31模數(shù)轉(zhuǎn)換中斷位0INT_RTC30實(shí)時(shí)時(shí)鐘中斷位0INT_SPI129SPI1中斷位0INT_UART028串口0中斷0INT_IIC27IIC0INT_USBH26USB主機(jī)0INT_USBD25USB設(shè)備0保留24保留0INT_UART123串口1中斷0INT_SPI022SPI0中斷INT_SDI21INT_DMA320INT_DMA219INT_DMA118INT_DMA017INT_LCD16INT_UART215INT_TIMER414INT_TIMER313INT_TIMER212INT_TIMER111INT_TIMER010INT_WD
3、T9INT_TICK8nBATT_FLT7保留6EINT8_235EINT4_74EINT33EINT22EINT11EINT00 s2440IOP->rEINTPEND = 0x200; /EINT9 (0b0010 0000 0000) s2440IOP->rEINTMASK &= 0x200; s2440IOP->rEINTPEND&
4、#160; = 0x100; /EINT9 s2440IOP->rEINTMASK &= 0x100;所以 EINT11=0X800 即 0b1000 0000 0000-估計(jì),呵呵下面我將講解每個(gè)寄存器在一個(gè)中斷處理流程中所扮演的角色SRCPND/ SUBSRCPND這兩個(gè)寄存器在功能上是相同的,它們是中斷源引腳寄存器,在一個(gè)中斷異常處理流程中,中斷信號(hào)傳進(jìn)中斷異常處理模塊后首先遇到的就是SRCPND/ SUBSRCPND,這兩個(gè)寄存器的作用是用于標(biāo)示出哪個(gè)中斷請(qǐng)求被觸
5、發(fā)。SRCPND的有效位為32,SUBSRCPND 的有效位為11,它們中的每一位分別代表一個(gè)中斷源。SRCPND為主中斷源引腳寄存器,SUBSRCPND為副中斷源引腳寄存器。這里列舉出SRCPND的各個(gè)位信息:SRCPND.jpg (140.83 KB)2007-3-23 21:13每個(gè)位的初始值皆為0。假設(shè)現(xiàn)在系統(tǒng)觸發(fā)了TIMER0中斷,則第10bit將被置1,代表TIMER0中斷被觸發(fā),該中斷請(qǐng)求即將被處理(若該中斷沒有被屏蔽的話)。SUBSRCPND情況與SRCPND相同,這里就不多講了。INTMOD寄存器有效位為32位,每一位與SRCPND中各位相對(duì)應(yīng),它的作用是指定該位相應(yīng)的中斷源
6、處理模式(IRQ還是FIQ)。若某位為0,則該位相對(duì)應(yīng)的中斷按IRQ模式處理,為1則以FIQ模式進(jìn)行處理,該寄存器初始化值為0x00000000,即所有中斷皆以IRQ模式進(jìn)行處理。(詳細(xì)請(qǐng)參考s3c2410操作手冊(cè))。INTMSK/ INTSUBMSK 寄存器為中斷屏蔽寄存器 ,INTMSK為主中斷屏蔽寄存器,INTSUBMSK為副中斷屏蔽寄存器。INTMSK有效位為32,INTSUBMSK有效位為11,這兩個(gè)寄存器各個(gè)位與SRCPND和SUBSRCPND分別對(duì)應(yīng)。它們的作用是決定該位相應(yīng)的中斷請(qǐng)求是否被處理。若某位被設(shè)置為1,則該位相對(duì)應(yīng)的中斷產(chǎn)生后將被忽略(CPU不處理該中斷請(qǐng)求),設(shè)置為
7、0則對(duì)其進(jìn)行處理。這兩個(gè)寄存器初始化后的值是0xFFFFFFFF和0x7FF,既默認(rèn)情況下所有的中斷都是被屏蔽的。到目前為止我們總共講解了SRCPND,INTMOD,INTMSK,SUBSRCPND,INTSUBMSK五個(gè)寄存器,在繼續(xù)講解PRIORITY寄存器之前我們先來看一張圖。Priority1.jpg (63.02 KB)2007-3-23 21:13先 弄清楚一點(diǎn),現(xiàn)在要討論的是一個(gè)中斷優(yōu)先級(jí)的判斷問題。為什么會(huì)有中斷有先級(jí)的問題呢?我們知道CPU某個(gè)時(shí)刻只能對(duì)一個(gè)中斷源進(jìn)行中斷處理,如果現(xiàn)在有 3個(gè)中斷同時(shí)發(fā)生了,那CPU要按什么順序處理這個(gè)3個(gè)中斷呢?這正是引入優(yōu)先級(jí)判斷的原因所
8、在,通過優(yōu)先級(jí)判斷,CPU可以按某種順序逐個(gè)處理中斷請(qǐng) 求。3sc2410的優(yōu)先級(jí)判斷分為兩級(jí)。如上圖所示,SRCPND寄存器對(duì)應(yīng)的32個(gè)中斷源總共被分為6個(gè)組,每個(gè)組由一個(gè)ARBITER(05)寄存器對(duì)其進(jìn)行管理。中斷必須先由所屬組的ARBITER(05)進(jìn)行第一次優(yōu)先級(jí)判斷(第一級(jí)判斷)后再發(fā)往ARBITER6進(jìn)行最終的判斷(第二級(jí)判斷)。ARBITER(05)這六個(gè)組的優(yōu)先級(jí)已經(jīng)固定,我們無法改變,也就是說由ARBITER0控制的該組中斷優(yōu)先級(jí)最高(該組產(chǎn)生的中斷進(jìn)行第一級(jí)判斷后永遠(yuǎn)會(huì)以REQ0向ARBITER6傳遞過去)其次是ARBITER1, ARBITER2, ARBITER4,
9、ARBITER4, ARBITER5.我們能夠控制的是某個(gè)組里面各個(gè)中斷的優(yōu)先級(jí)順序。怎么控制?通過PRIORITY寄存器進(jìn)行控制:以下是PRIORITY寄存器各個(gè)位的參數(shù)表Priority2.jpg (85.06 KB)2007-3-23 21:13從表上我們可以知道PRIORITY寄存器內(nèi)部各個(gè)位被分為兩種類型,一種是ARB_MODE,另一種為ARB_SEL, ARB_MODE類型有5組對(duì)應(yīng)ARBITER(26),ARB_SEL類型有7組對(duì)應(yīng)ARBITER(06)?,F(xiàn)在我將以ARBITER2為例,講解中斷組與PRIORITY寄存器中ARB_SEL, ARB_MODE之間的相互關(guān)系。首先我們
10、看到ARBITER2寄存器管理的該組中斷里包括了6個(gè)中斷,分別是INT_TIMER0,INT_TIMER1,INT_TIMER2,INT_TIMER3,INT_TIMER4,INT_UART2,她們的默認(rèn)中斷請(qǐng)求號(hào)分別為REQ0,REQ1,REQ2,REQ3,REQ4,REQ5。我們先看PRIORITY寄存器中的ARB_SEL2,該參數(shù)由兩個(gè)位組成,初始值為00。從該表可以看出00定義了一個(gè)順序 0-1-2-3-4-5 ,這個(gè)順序就是這組中斷組的優(yōu)先級(jí)排列,這個(gè)順序指明了以中斷請(qǐng)求號(hào)為0(REQ0)的INT_TIMER0具有最高的中斷優(yōu)先級(jí),其次是INT_TIMER1,INT_TIMER2。假
11、設(shè)現(xiàn)在ARB_SEL2的值被我們?cè)O(shè)置為01。則一個(gè)新的優(yōu)先級(jí)次序?qū)⒈皇褂茫?1對(duì)應(yīng)的優(yōu)先級(jí)次序?yàn)?-2-3-4-1-5,從中可以看出優(yōu)先級(jí)最高和最低的中斷請(qǐng)求和之前沒有變化,但本來處于第2優(yōu)先級(jí)的INT_TIMER1中斷現(xiàn)在變成了第5優(yōu)先級(jí)。從ARB_SEL2被設(shè)置為00,01,10,11各個(gè)值所出現(xiàn)的情況我們可以看出,除最高和最低的優(yōu)先級(jí)不變以外,其他各個(gè)中斷的優(yōu)先級(jí)其實(shí)是在做一個(gè)旋轉(zhuǎn)排列(rotate)。為了達(dá)到對(duì)各個(gè)中斷平等對(duì)待這一目標(biāo),我們可以讓優(yōu)先級(jí)次序在每個(gè)中斷請(qǐng)求被處理完之后自動(dòng)進(jìn)行一次旋轉(zhuǎn),如何自動(dòng)讓它旋轉(zhuǎn)呢?我們可以通過ARB_MODE2達(dá)到這個(gè)目的,該參數(shù)只有1個(gè) bit,
12、置1代表開啟對(duì)應(yīng)中斷組的優(yōu)先級(jí)次序旋轉(zhuǎn),0則為關(guān)閉。事實(shí)上當(dāng)該位置為1之后,每處里完某個(gè)組的一個(gè)中斷后,該組的ARB_SEL便遞增在1(達(dá)到11后恢復(fù)為00)?,F(xiàn)在我們另ARB_MODE2=1,ARB_SEL2=00則當(dāng)前ARBITER2的優(yōu)先級(jí)順序?yàn)?-1-2-3-4-5,假設(shè)現(xiàn)在該組的1號(hào)中斷請(qǐng)求INT_TIMER1和2號(hào)中斷請(qǐng)求INT_TIMER2被同時(shí)觸發(fā),CPU根據(jù)優(yōu)先級(jí)判斷后決定先把INT_TIMER1中斷向ARBITER6進(jìn)行發(fā)送(在ARBITER6做第最終優(yōu)先級(jí)判斷),接著再向ARBITER6發(fā)送INT_TIMER2中斷。請(qǐng)注意,在INT_TIMER1被處理完畢后,該組中段的優(yōu)
13、先級(jí)次序被自動(dòng)做了一次旋轉(zhuǎn),旋轉(zhuǎn)后ARBITER2的優(yōu)先級(jí)順序變?yōu)?-2-3-4-1-5。假設(shè)之后某個(gè)時(shí)刻該組的INT_TIMER1和INT_TIMER2又被同時(shí)觸發(fā),則此時(shí)CPU優(yōu)先處理的會(huì)是INT_TIMER2。若我們另ARB_MODE2=0,則改組的中斷優(yōu)先級(jí)次序在任何情況下都不做任何改變,除非我們?nèi)藶榈刂匦略O(shè)置了ARB_SEL2的值。呼。好累。終于說完了麻煩的優(yōu)先級(jí)-_-繼續(xù)。INTPND 寄存器可能是整個(gè)中斷處理過程中我們要特別注意的一個(gè)寄存器了,他的操作比較特別,怎么特別?請(qǐng)聽我慢慢道來.: 先看一下該寄存器各位詳細(xì)功能列表INTPND.jpg (106.79 KB)2007-3-
14、23 21:13正如你所見的,INTPND 寄存器與SRCPND長(zhǎng)得一模一樣,但他們?cè)谥袛喈惓L幚碇袇s扮演著不同的角色,如果說SRCPND是中斷信號(hào)進(jìn)入中斷處理模塊后所經(jīng)過的第一個(gè)場(chǎng)所的話,那么INTPND 則是中斷信號(hào)在中斷處理模塊里經(jīng)歷的最后一個(gè)寄存器。它的每個(gè)位對(duì)應(yīng)一個(gè)中斷請(qǐng)求,若該位被置1,則表示相應(yīng)的中斷請(qǐng)求被觸發(fā),描述到這里你可能會(huì)發(fā)現(xiàn)它不僅和SRCPND長(zhǎng)得一模一樣,就連功能都一樣,其實(shí)不然,他們?cè)诠δ苌嫌兄卮蟮膮^(qū)別。SRCPND是中斷源引腳寄存器,某個(gè)位被置1表示相應(yīng)的中斷被觸發(fā),但我們知道在同一時(shí)刻內(nèi)系統(tǒng)可以觸發(fā)若干個(gè)中斷,只要中斷被觸發(fā)了,SRCPND的相應(yīng)位便被置1,也
15、就是說SRCPND 在同一時(shí)刻可以有若干位同時(shí)被置1,然而INTPND則不同,他在某一時(shí)刻只能有1個(gè)位被置1,INTPND 某個(gè)位被置1(該位對(duì)應(yīng)的中斷在所有已觸發(fā)的中斷里具有最高優(yōu)先級(jí)且該中斷沒有被屏蔽),則表示CPU即將或已經(jīng)在對(duì)該位相應(yīng)的中斷進(jìn)行處理。于是我們可以有一個(gè)總結(jié):SRCPND說明了有什么中斷被觸發(fā)了,INTPND說明了CPU即將或已經(jīng)在對(duì)某一個(gè)中斷進(jìn)行處理。特別注意:每當(dāng)某一個(gè)中斷被處理完之后,我們必須手動(dòng)地把SRCPND/SUBSRCPND , INTPND三個(gè)寄存器中與該中斷相應(yīng)的位由1設(shè)置為0,剛才我說INTPND的操作很特別,它的特別之處就在于對(duì)當(dāng)我們要把該寄存器中某
16、個(gè)值為1的位設(shè)置為0時(shí),我們不是往該位置0,而是往該位置1。假設(shè)SRCPND=0x00000003,INTPND=0x00000001,該值說明當(dāng)前0號(hào)中斷和1號(hào)中斷被觸發(fā),但當(dāng)前正在被處理的是0號(hào)中斷,處理完畢后我們應(yīng)該這樣設(shè)置INTPND和SRCPND:SRCPND=0x00000002 /位0被置為0INTPND =0x00000001 /位0被置為0(方法是往該位寫入1)另一種直接的方法:INTPND =INTPND INTOFFS
17、ET寄存器的功能則很簡(jiǎn)單,它的作用只是用于表明哪個(gè)中斷正在被處理。下面是該寄存器各位詳細(xì)功能列表INTODDSET.jpg (40.79 KB)2007-3-23 21:13若當(dāng)前INT_TIMER0被觸發(fā)了,則該寄存器的值為10,以此類推?,F(xiàn)在我把整個(gè)中斷流程用一個(gè)圖加以說明1.jpg (20.35 KB)2007-3-23 21:13attach21/attach以上這個(gè)圖清楚地說明了一個(gè)中斷異常處理流程。下面我用INT_TIMER0, INT_TIMER2和INT_UART0三個(gè)中斷完整地介紹一次中斷異常處理。首先我們得做幾個(gè)假設(shè):假設(shè)1:這三個(gè)中斷的屏蔽被取消。假設(shè)2:PRIORITY
18、寄存器中ARB_MODE2,ARB_MODE5皆為0,既不進(jìn)行優(yōu)先級(jí)的自動(dòng)旋轉(zhuǎn)排序,任何時(shí)候 ARBITER2,ARBITER5控制的中斷組優(yōu)先級(jí)次序分別為0-1-2-3-4-5和1-2-3-4。假設(shè)3:這三個(gè)中斷皆為IRQ類型。假設(shè)4:這三個(gè)中斷同時(shí)被觸發(fā)。INT_TIMER0, INT_TIMER2和INT_UART0三個(gè)中斷被同時(shí)觸發(fā),此時(shí)三個(gè)中斷信號(hào)流向SRCPND寄存器,使該寄存器中的第10位,12位,28位被置為1,中斷信號(hào)繼續(xù)向前流經(jīng)INTMASK 寄存器,這三個(gè)中斷都沒有被屏蔽,于是信號(hào)進(jìn)一步
19、流經(jīng)INTMODE寄存器,這三個(gè)中斷皆為IRQ類型,故中斷信號(hào)繼續(xù)向前流向PRIORITY寄存器,經(jīng)過優(yōu)先級(jí)判斷,INT_TIMER0中斷信號(hào)使INTPND 寄存器的第10位置1(INT_TIMER0優(yōu)先級(jí)最高),此時(shí)INTOFFSET 寄存器的值為10,CPU轉(zhuǎn)向相應(yīng)的中斷服務(wù)例程進(jìn)行處理。處理完畢后,我們的程序?qū)NTPND和SRCPND的第10置為0,至此INT_TIMER0中斷處理完畢。此時(shí)SRCPND 的第12位,28位仍為1(這兩個(gè)中斷請(qǐng)求未被處理),故他們會(huì)繼續(xù)被CPU已剛才描述的方式進(jìn)行處理。中斷異常處理就先講到這吧 :SRCPND和EINTPEND都是寄存器,這里對(duì)他們兩個(gè)都清中斷這里要詳細(xì)參見CPU手冊(cè)當(dāng)外部有一個(gè)中斷時(shí)候,SRCPND相應(yīng)的位就會(huì)被置1。通常時(shí)候是0,管理硬件的。INTPND,當(dāng)處理中斷了,就把相應(yīng)的位置1。處理內(nèi)部中斷。當(dāng)向1
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 未來公共政策的社會(huì)認(rèn)同與參與機(jī)制研究試題及答案
- 西方政治制度中的媒體影響力試題及答案
- 西方國(guó)家金融危機(jī)的政治后果試題及答案
- 提升網(wǎng)絡(luò)可用性的有效方法與試題及答案
- 軟件測(cè)試的回歸測(cè)試策略試題及答案
- 項(xiàng)目管理的培訓(xùn)與提升試題及答案
- 公共政策信息公開的重要性探討試題及答案
- 社會(huì)安全政策的影響分析試題及答案
- 機(jī)電工程進(jìn)出口管理試題
- 網(wǎng)絡(luò)工程師對(duì)社會(huì)的影響與貢獻(xiàn)試題及答案
- 水毀通村路修復(fù)施工組織設(shè)計(jì)
- 《基于PLC的包裝機(jī)控制系統(tǒng)設(shè)計(jì)實(shí)現(xiàn)》10000字(論文)
- 藥物制劑輔助材料試題及答案
- 教育學(xué)博士試題及答案
- 供車合同范本
- 地鐵安檢機(jī)考試題及答案
- 輸電線路工程綠色施工方案
- 粵語(yǔ)試題測(cè)試題及答案
- 2024北京海淀區(qū)初一(下)期末英語(yǔ)試題和答案
- 2025年全國(guó)國(guó)家版圖知識(shí)競(jìng)賽題庫(kù)及答案(中小學(xué)組)
- 《橋梁工程概況介紹》課件
評(píng)論
0/150
提交評(píng)論