ARM內核的中斷技術
發布時間:2007/8/29 0:00:00 訪問次數:908
摘要:以ARM7TDMI處理器為例,詳細介紹ARM內核的三種中斷:常規中斷、快中斷和軟件中斷;結合應用,給出優化的中斷處理程序的ARM指令代碼,對電子設計人員有效大的參考價值。
關鍵詞:ARM 中斷 快速 精簡指令系統
1 ARM7TDMI簡介
ARM7TDMI是一款經典的通用32位微處理器,采用精簡指令系統(RISC)和流水線結構。典型應用如GPS、PDA、雙向尋呼機、移動電話、板卡間高速通信等。
ARM7TDMI定義有7種工作模式,本文涉及到的有:用戶模式,程序正常運行時的模式;快中斷模式,處理器響應快中斷而進入的模式;中斷模式,處理響應常規中斷而進入的模式;監督模式,操作系統的保護模式。處理器響應軟件中斷時即進入監督模式。下面重點介紹ARM7TDMI的中斷特性。主要特性如表1所列。
表1 中斷特性表
向量地址 | 中斷類型 | 工作模式 | 優先級 | 返回地址 |
0x8 | 軟件中斷 | SWI模式 | 6 | pc-4 |
0x18 | 常規則中斷 | IRQ模式 | 4 | pc-8 |
0x1C | 快中斷 | FIQ模式 | 3 | pc-8 |
ARM7TDMI具有常規中斷(IRQ)、快中斷(FIQ)和軟件中斷(SoftWare Interrupt)三種中方式。常規中斷和快中斷都是硬件中斷。
快中斷是為支持數據傳輸或快速數據通道而設計的,為快速處理快中斷。①快中斷被設為最高中斷優先級;②在快中斷模式增設了7個私有工作寄存器,從而避免了由于主工作寄存器數據的保存和恢復而帶來了額外開銷;③快中斷處理程序處于異常向量表的最后位置,因此可緊接異常向量表書寫快中斷處理程序,而不必進行程序跳轉操作,避免了刷新指令流水線和高速緩存。
軟件中斷是一種由用戶設置的同步中斷,由程序指令產生,不像硬件中斷那樣由外部事件觸發。軟件中斷允許運行在用戶模式的程序進入監督模式,并運行監督態下的函數。在ARM7TDMI的硬件調試系統中,應用程序可利用軟件中斷來申請半自主(semihosting)式操作,例如,打開主機中的一個文件、向調試通道發送一個字符等等(這些操作必須依賴主機中C程序庫才能運行,因此被稱為半自主式的)。利用軟件中斷機制,可以直觀和高效地仿真調試應用程序。另外,軟件中斷也可用于一般性的程序控制。
2 響應中斷和中斷返回
摘要:以ARM7TDMI處理器為例,詳細介紹ARM內核的三種中斷:常規中斷、快中斷和軟件中斷;結合應用,給出優化的中斷處理程序的ARM指令代碼,對電子設計人員有效大的參考價值。
關鍵詞:ARM 中斷 快速 精簡指令系統
1 ARM7TDMI簡介
ARM7TDMI是一款經典的通用32位微處理器,采用精簡指令系統(RISC)和流水線結構。典型應用如GPS、PDA、雙向尋呼機、移動電話、板卡間高速通信等。
ARM7TDMI定義有7種工作模式,本文涉及到的有:用戶模式,程序正常運行時的模式;快中斷模式,處理器響應快中斷而進入的模式;中斷模式,處理響應常規中斷而進入的模式;監督模式,操作系統的保護模式。處理器響應軟件中斷時即進入監督模式。下面重點介紹ARM7TDMI的中斷特性。主要特性如表1所列。
表1 中斷特性表
向量地址 | 中斷類型 | 工作模式 | 優先級 | 返回地址 |
0x8 | 軟件中斷 | SWI模式 | 6 | pc-4 |
0x18 | 常規則中斷 | IRQ模式 | 4 | pc-8 |
0x1C | 快中斷 | FIQ模式 | 3 | pc-8 |
ARM7TDMI具有常規中斷(IRQ)、快中斷(FIQ)和軟件中斷(SoftWare Interrupt)三種中方式。常規中斷和快中斷都是硬件中斷。
快中斷是為支持數據傳輸或快速數據通道而設計的,為快速處理快中斷。①快中斷被設為最高中斷優先級;②在快中斷模式增設了7個私有工作寄存器,從而避免了由于主工作寄存器數據的保存和恢復而帶來了額外開銷;③快中斷處理程序處于異常向量表的最后位置,因此可緊接異常向量表書寫快中斷處理程序,而不必進行程序跳轉操作,避免了刷新指令流水線和高速緩存。
軟件中斷是一種由用戶設置的同步中斷,由程序指令產生,不像硬件中斷那樣由外部事件觸發。軟件中斷允許運行在用戶模式的程序進入監督模式,并運行監督態下的函數。在ARM7TDMI的硬件調試系統中,應用程序可利用軟件中斷來申請半自主(semihosting)式操作,例如,打開主機中的一個文件、向調試通道發送一個字符等等(這些操作必須依賴主機中C程序庫才能運行,因此被稱為半自主式的)。利用軟件中斷機制,可以直觀和高效地仿真調試應用程序。另外,軟件中斷也可用于一般性的程序控制。
2 響應中斷和中斷返回
上一篇:中國電子元件產業期待由大到強