新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > s3c2410中斷異常處理

        s3c2410中斷異常處理

        作者: 時間:2010-01-27 來源:網絡 收藏

        模塊總共由以下寄存器構成

        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這兩個寄存器在功能上是相同的,它們是源引腳寄存器,在一個中斷流程中,中斷信號傳進中斷處理模塊后首先遇到的就是SRCPND/

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

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

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

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

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

        INTMSK/ INTSUBMSK

        寄存器為中斷屏蔽寄存器

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

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

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

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



        關鍵詞: 處理 異常 中斷 s3c2410

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 三都| 安岳县| 旺苍县| 温泉县| 台江县| 繁昌县| 中西区| 任丘市| 儋州市| 牙克石市| 思茅市| 房山区| 综艺| 收藏| 平凉市| 通渭县| 泗阳县| 三门峡市| 始兴县| 兴国县| 都昌县| 舞钢市| 万载县| 昌乐县| 新沂市| 郑州市| 康平县| 秭归县| 渝中区| 瑞昌市| 贵德县| 砀山县| 渭南市| 辉南县| 新丰县| 自贡市| 青川县| 嘉义县| 和静县| 广河县| 马边|