新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > ARM內核的中斷技術

        ARM內核的中斷技術

        作者: 時間:2012-09-26 來源:網絡 收藏

        1 ARM7TDMI簡介
        ARM7TDMI是一款經典的通用32位微處理器,采用精簡指令系統(RISC)和流水線結構。典型應用如GPS、PDA、雙向尋呼機、移動電話、板卡間高速通信等。
        ARM7TDMI定義有7種工作模式,本文涉及到的有:用戶模式,程序正常運行時的模式;快中斷模式,處理器響應快中斷而進入的模式;中斷模式,處理響應常規中斷而進入的模式;監督模式,操作系統的保護模式。處理器響應軟件中斷時即進入監督模式。下面重點介紹ARM7TDMI的中斷特性。主要特性如表1所列。

        ARM7TDMI具有常規中斷(IRQ)、快中斷(FIQ)和軟件中斷(SoftWareInterrupt)三種中方式。常規中斷和快中斷都是硬件中斷。
        快中斷是為支持數據傳輸或快速數據通道而設計的,為快速處理快中斷。①快中斷被設為最高中斷優先級;②在快中斷模式增設了7個私有工作寄存器,從而避免了由于主工作寄存器數據的保存和恢復而帶來了額外開銷;③快中斷處理程序處于異常向量表的最后位置,因此可緊接異常向量表書寫快中斷處理程序,而不必進行程序跳轉操作,避免了刷新指令流水線和高速緩存。
        軟件中斷是一種由用戶設置的同步中斷,由程序指令產生,不像硬件中斷那樣由外部事件觸發。軟件中斷允許運行在用戶模式的程序進入監督模式,并運行監督態下的函數。在ARM7TDMI的硬件調試系統中,應用程序可利用軟件中斷來申請半自主(semihosting)式操作,例如,打開主機中的一個文件、向調試通道發送一個字符等等(這些操作必須依賴主機中C程序庫才能運行,因此被稱為半自主式的)。利用軟件中斷機制,可以直觀和高效地仿真調試應用程序。另外,軟件中斷也可用于一般性的程序控制。
        2 響應中斷和中斷返回
        (1)當中斷產生時,ARM7TDMI將執行的操作
        ①把當前程序狀態寄存器(CPSR)的內容拷貝到相應的備份程序狀態寄存器(SPSR)。當前工作模式、中斷屏蔽位和狀態標志被保存下來。
        ②轉入相應的模式,并關閉常規中斷。如響應快中斷,則同時關閉快中斷。
        ③把程序計數器(pc)的值減4后,存入相應的連接寄存器(1r)。
        ④將程序計數器指向相應的中斷向量。
        (2)由中斷返回時,ARM7TDMI將完成的操作
        ①將備份程序狀態寄存器的內容拷貝到當前程序狀態寄存器,恢復中斷前的狀態。
        ②清除相應禁止中斷位(如果已設置的話)。
        ③把連接寄存器的值拷貝到程序計數器,繼續運行原程序。
        (3)返回地址的計算
        ARM7TDMI采用流水線結構:當一條指令被執行時,下一條指令正被譯碼,而第三條指令被從內存中取出。當程序計數器未更新的,pc指向從內存中取出的指令,(pc-4)指向當前指令的一條指令。
        處理器響應軟件中斷時,由于軟件中斷由指令自身產生,程序計數器還沒有更新,(pc-4)正好指向當前指令的下一條指令。因此,只要在中斷處理程序最后加入MOVSpc,lr把連接寄存器的值賦給程序計數器即可。
        ARM7TDMI總是在一條指令執行完畢后,才去檢查是否有硬件中斷信號和中斷屏蔽狀態。此時,程序計數器已經更新,(pc-4)指向當前指令的下兩條指令。因此要先把連接寄存器的內容減去4(指向pc-8)后,再賦給程序計數器。要添加的代碼是SUBSpc,lr #4


        上一頁 1 2 下一頁

        關鍵詞: ARM內核 中斷技術

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 常山县| 陆良县| 思茅市| 镶黄旗| 卢龙县| 临湘市| 宝清县| 泸溪县| 青神县| 稻城县| 轮台县| 阿拉善右旗| 尉犁县| 玉树县| 井陉县| 丰宁| 满城县| 金阳县| 原阳县| 卢湾区| 伊通| 白银市| 霍州市| 秦安县| 吉安市| 南皮县| 田东县| 赣州市| 长治市| 四会市| 望都县| 宁远县| 阿克陶县| 新乡市| 班戈县| 融水| 塘沽区| 太湖县| 通许县| 沅陵县| 长沙县|