<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

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

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

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

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

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


上一頁(yè) 1 2 下一頁(yè)

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

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>