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

          新聞中心

          ARM中的軟件中斷

          作者: 時間:2016-11-10 來源:網(wǎng)絡(luò) 收藏
          中斷的工作原理及ARM中中斷控制器的工作模式

          1. 首先介紹ARM內(nèi)核的中斷控制器的幾種工作模式:

          1.

          快中斷是為支持?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)用程序可利用軟件中斷來申請半自主式操作,例如,打開主機(jī)中的一個文件、向調(diào)試通道發(fā)送一個字符等等(這些操作必須依賴主機(jī)中C程序庫才能運(yùn)行,因此被稱為半自主式的)。利用軟件中斷機(jī)制,可以直觀和高效地仿真調(diào)試應(yīng)用程序。另外,軟件中斷也可用于一般性的程序控制。

          2 .響應(yīng)中斷和中斷返回
          (1)中斷響應(yīng)過程
          1) 保存CPSR到將要執(zhí)行的異常中斷的SPSR;
          2)設(shè)置CPSR的值:設(shè)置CPSR相應(yīng)位的值使處理器進(jìn)入特定的處理器模式,按要求屏蔽中斷;
          3)設(shè)置LR寄存器:將中斷相應(yīng)模式的LR寄存器的值設(shè)置為異常中斷的返回地址;
          4)處理程序計數(shù)器PC:將PC值設(shè)為相應(yīng)的中斷向量的地址。
          (2)中斷返回過程
          1)恢復(fù)CPSR:將保存在中斷模式中的SPSR值賦給當(dāng)前的CPSR;
          2)將返回地址復(fù)制到PC:這樣程序?qū)⒎祷氐疆惓V袛喈a(chǎn)生的下一條指令或出現(xiàn)問題的指令處執(zhí)行。

          *中斷的響應(yīng)-返回流程圖

          系統(tǒng)通常使用一個中斷控制器把設(shè)備的中斷集合在一起,然后再把信號傳送到CPU的一個單一的中斷管腳。這樣可以節(jié)省CPU的中斷管腳,也給系統(tǒng)設(shè)計帶來了靈活性。中斷控制器有掩碼和狀態(tài)寄存器,用于控制這些中斷。設(shè)置掩碼寄存器中相應(yīng)的位,可以打開和禁止一個中斷,讀取狀態(tài)寄存器可以返回系統(tǒng)中當(dāng)前活動的中斷。
          一些系統(tǒng)中的中斷可能是硬連接的,例如實時時鐘的間隔計時器可能永久地連接到中斷控制器的第3管腳。但是,另一些管腳連接什么可能取決于在特定的ISA或者PCI插槽上插入的是什么控制卡。例如,中斷控制器的第4管腳可能和第0號PCI插槽相連,某一天該槽上可能插的是一塊以太網(wǎng)卡,另一天該槽上可能插的是一塊SCSI控制卡。每一個系統(tǒng)都有它自己的中斷中轉(zhuǎn)機(jī)制,操作系統(tǒng)必須足夠靈活才能處理它們。
          大多數(shù)現(xiàn)代的通用目的微處理器都用相同的方式處理中斷。當(dāng)發(fā)生硬件中斷時,CPU停止它正在運(yùn)行的指令,跳到內(nèi)存中一個位置運(yùn)行,這里或者就是中斷處理代碼,或者是一條指令,通過它可以跳到中斷處理代碼。這種代碼通常在CPU的特殊模式(中斷模式)下工作,通常,在這種模式下其它中斷不能再產(chǎn)生。當(dāng)然也有例外:一些CPU將中斷劃分級別,更高級別的中斷可以中斷低級的中斷。這意味著必須非常小心地寫第一級的中斷處理程序。一般的中斷處理程序通常都有自己的堆棧,當(dāng)它被再次中斷而進(jìn)入另一個中斷處理程序之前,用它來存放CPU的執(zhí)行狀態(tài)(CPU所有的通用寄存器和上下文)。一些CPU有一組只在中斷模式下存在的寄存器,中斷處理代碼可以使用這些寄存器來存儲它需要保存的大部分上下文信息。


          關(guān)鍵詞: ARM軟件中

          評論


          技術(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); })();