新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > s3c2410中斷異常處理流程

        s3c2410中斷異常處理流程

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

        模塊總共由以下寄存器構(gòu)成

        SRCPND(SOURCE

        PENDING REGISTER)

        INTMOD(INTERRUPT MODE REGISTER)

        INTMSK(INTERRUPT MASK

        REGISTER)

        PRIORITY( PRIORITY REGISTER)

        INTPND(INTERRUPT PENDING

        REGISTER)

        INTOFFSET(INTERRUPT OFFSET REGISTER)

        SUBSRCPND (INTERRUPT SUB

        SOURCE PENDING)

        INTSUBMSK (INTERRUPT SUB MASK REGISTER)

        下面我將講解每個寄存器在一個中所扮演的角色

        SRCPND/

        SUBSRCPND這兩個寄存器在功能上是相同的,它們是源引腳寄存器,在一個中斷中,中斷信號傳進(jìn)中斷處理模塊后首先遇到的就是SRCPND/

        SUBSRCPND,這兩個寄存器的作用是用于標(biāo)示出哪個中斷請求被觸發(fā)。SRCPND的有效位為32,SUBSRCPND

        的有效位為11,它們中的每一位分別代表一個中斷源。SRCPND為主中斷源引腳寄存器,SUBSRCPND為副中斷源引腳寄存器。

        這里列舉出SRCPND的各個位信息:

        每個位的初始值皆為0。假設(shè)現(xiàn)在系統(tǒng)觸發(fā)了TIMER0中斷,則第10bit將被置1,代表TIMER0中斷被觸發(fā),該中斷請求即將被處理(若該中斷沒有被屏蔽的話)。SUBSRCPND情況與SRCPND相同,這里就不多講了。

        INTMOD寄存器有效位為32位,每一位與SRCPND中各位相對應(yīng),它的作用是指定該位相應(yīng)的中斷源處理模式(IRQ還是FIQ)。若某位為0,則該位相對應(yīng)的中斷按IRQ模式處理,為1則以FIQ模式進(jìn)行處理,該寄存器初始化值為0x00000000,即所有中斷皆以IRQ模式進(jìn)行處理。(詳細(xì)請參考操作手冊)。

        INTMSK/ INTSUBMSK

        寄存器為中斷屏蔽寄存器

        ,INTMSK為主中斷屏蔽寄存器,INTSUBMSK為副中斷屏蔽寄存器。INTMSK有效位為32,INTSUBMSK有效位為11,這兩個寄存器各個位與SRCPND和SUBSRCPND分別對應(yīng)。它們的作用是決定該位相應(yīng)的中斷請求是否被處理。若某位被設(shè)置為1,則該位相對應(yīng)的中斷產(chǎn)生后將被忽略(CPU不處理該中斷請求),設(shè)置為0則對其進(jìn)行處理。這兩個寄存器初始化后的值是0xFFFFFFFF和0x7FF,既默認(rèn)情況下所有的中斷都是被屏蔽的。

        到目前為止我們總共講解了SRCPND,INTMOD,INTMSK,SUBSRCPND,INTSUBMSK

        五個寄存器,在繼續(xù)講解PRIORITY寄存器之前我們先來看一張圖。

        先弄清楚一點(diǎn),現(xiàn)在要討論的是一個中斷優(yōu)先級的判斷問題。為什么會有中斷有先級的問題呢?我們知道CPU某個時刻只能對一個中斷源進(jìn)行中斷處理,如果現(xiàn)在有3個中斷同時發(fā)生了,那CPU要按什么順序處理這個3個中斷呢?這正是引入優(yōu)先級判斷的原因所在,通過優(yōu)先級判斷,CPU可以按某種順序逐個處理中斷請求。3sc2410的優(yōu)先級判斷分為兩級。



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

        評論


        相關(guān)推薦

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

        關(guān)閉
        主站蜘蛛池模板: 师宗县| 洛川县| 邢台市| 龙泉市| 昂仁县| 黑水县| 怀远县| 洪湖市| 准格尔旗| 清新县| 大名县| 河北区| 建湖县| 华容县| 桂东县| 扶沟县| 泰兴市| 博兴县| 浠水县| 云和县| 乃东县| 西乡县| 九江市| 沙湾县| 镇巴县| 红原县| 新泰市| 综艺| 宕昌县| 盐源县| 朔州市| 绥宁县| 西畴县| 石景山区| 安阳县| 长垣县| 南华县| 临泽县| 丹东市| 西青区| 固安县|