新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > ARM7內核的中斷屏蔽方法

        ARM7內核的中斷屏蔽方法

        作者: 時間:2011-06-27 來源:網絡 收藏

        引言
        CPU在執行程序的過程中,由于外部的某種原因,有必要盡快地中止當前程序的執行,而去執行相應的處理程序,待處理結束后再回來繼續執行被中止了的原程序,這種情況稱為“”。從事嵌入式開發的工程師對的概念都很熟悉,在x86系列CPU體系中,軟件設計人員會調用enable()函數和disable()函數來允許或。enable()和disable()是兩個庫函數,函數disable()的作用是中斷,它唯一允許執行的中斷是NMI(不可中斷);函數enable()的作用與函數disable()相反,是將被屏蔽的中斷打開,允許中斷。這兩個函數的原型都是在頭文件DOS.H中定義的,DOS.H定義的都是一些DOS接口函數。DOS的全稱為“Disk Operating System”,即“磁盤操作系統”,是一種在x86系列的微型計算機上運行的操作系統。
        x86和ARM是兩種不同體系的微處理器,ARM不支持DOS接口函數,在ARM公司提供的集成開發環境ADS1.2的頭文件中沒有DOS.H文件,DO-S.H中定義的所有函數在ARM的編譯器中都不支持,所以需要重新設計兩個函數替代上述函數,以實現相同的功能。

        1 處理器簡介
        ARM是Advanced RISC Machines的縮寫,ARM公司開發了很多系列的ARM處理器處理器就是其中的一個系列,其中包括TD-MI、ARM7TDMI-S、帶有高速緩存處理器宏單元的ARM720T和擴充了Jazelle的ARM7EJ-S。該系列處理器提供Thumb 16位壓縮指令集和Embeded-ICE軟件調試方式,多應用于多媒體和嵌入式設備,包括Internet設備、移動電話、PDA等。

        2 ARM7中斷工作模式
        ARM7處理器具有2個中斷輸入,分別為IRQ中斷和FIQ中斷,如圖1所示。其對應的中斷操作模式為向量中斷IRQ模式(用于通用中斷處理)和快速中斷FIQ模式(支持數據傳輸或通道處理)。

        本文引用地址:http://www.104case.com/article/150568.htm

        a.JPG


        向量中斷請求(IRQ)是一個由nIRQ輸入端的低電平所產生的正常中斷。IRQ的優先級低于FIQ,對于FIQ序列它是被屏蔽的。任何時候在一個特權模式下,都可通過置位當前程序狀態寄存器(CPSR)中的I位來禁止IRQ。
        快速中斷請求(FIQ)支持數據轉移或通道處理,在ARM狀態中,FIQ模式有8個專用的寄存器可用來滿足寄存器保護的需要,這是上下文切換的最小開銷。將nFIQ信號拉低可實現外部產生FIQ。在一個特權模式中,可通過置位當前程序狀態寄存器(CPSR)中的F標志來禁止FIQ異常。當F標志清零時,ARM7處理器在每條指令結束時檢測FIQ同步器輸出端的低電平。
        3 ARM7中斷屏蔽程序實現
        ARM7包含1個當前程序狀態寄存器(CPSR),該寄存器中包含條件代碼標志位、控制中斷的使能和禁止位,以及設置處理器操作模式位。當前程序狀態寄存器如圖2所示。

        b.JPG


        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 汨罗市| 电白县| 盐亭县| 班戈县| 乐清市| 松原市| 宜春市| 淅川县| 丹寨县| 龙州县| 筠连县| 富源县| 武宣县| 浦县| 宁国市| 南京市| 策勒县| 信阳市| 肇东市| 青海省| 凌源市| 吴忠市| 临清市| 来安县| 普洱| 浮梁县| 高雄县| 顺昌县| 聂荣县| 南乐县| 汽车| 潍坊市| 铜梁县| 扎鲁特旗| 茶陵县| 安阳市| 盐津县| 镇远县| 油尖旺区| 福清市| 南昌市|