<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          s3c2410中斷異常處理流程

          作者: 時(shí)間:2011-12-05 來源:網(wǎng)絡(luò) 收藏

          正如你所見的,INTPND寄存器與SRCPND長(zhǎng)得一模一樣,但他們?cè)?a class="contentlabel" href="http://www.ex-cimer.com/news/listbylabel/label/中斷">中斷中卻扮演著不同的角色,如果說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,也就是說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)我們要把該寄存器中某個(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被置為0

          INTPND =0x00000001

          //位0被置為0(方法是往該位寫入1)

          INTOFFSET寄存器的功能則很簡(jiǎn)單,它的作用只是用于表明哪個(gè)中斷正在被處理。下面是該寄存器各位詳細(xì)功能列表

          若當(dāng)前INT_TIMER0被觸發(fā)了,則該寄存器的值為10,以此類推。

          現(xiàn)在我把整個(gè)中斷用一個(gè)圖加以說明

          以上這個(gè)圖清楚地說明了一個(gè)中斷處理。

          下面我用INT_TIMER0,INT_TIMER2和INT_UART0三個(gè)中斷完整地介紹一次中斷處理。首先我們得做幾個(gè)假設(shè):

          假設(shè)1:這三個(gè)中斷的屏蔽被取消。

          假設(shè)2:PRIORITY寄存器中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)一步流經(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)行處理。


          上一頁(yè) 1 2 3 4 下一頁(yè)

          關(guān)鍵詞: 流程 處理 異常 中斷 s3c2410

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();