<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > ARM內(nèi)核的中斷技術(shù)

          ARM內(nèi)核的中斷技術(shù)

          作者: 時間:2012-09-26 來源:網(wǎng)絡(luò) 收藏

          1 ARM7TDMI簡介
          ARM7TDMI是一款經(jīng)典的通用32位微處理器,采用精簡指令系統(tǒng)(RISC)和流水線結(jié)構(gòu)。典型應(yīng)用如GPS、PDA、雙向?qū)ず魴C(jī)、移動電話、板卡間高速通信等。
          ARM7TDMI定義有7種工作模式,本文涉及到的有:用戶模式,程序正常運(yùn)行時的模式;快中斷模式,處理器響應(yīng)快中斷而進(jìn)入的模式;中斷模式,處理響應(yīng)常規(guī)中斷而進(jìn)入的模式;監(jiān)督模式,操作系統(tǒng)的保護(hù)模式。處理器響應(yīng)軟件中斷時即進(jìn)入監(jiān)督模式。下面重點(diǎn)介紹ARM7TDMI的中斷特性。主要特性如表1所列。

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


          上一頁 1 2 下一頁

          關(guān)鍵詞: ARM內(nèi)核 中斷技術(shù)

          評論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();