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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > μC/OSII下的ARM7中斷過程分析及優(yōu)化方法

          μC/OSII下的ARM7中斷過程分析及優(yōu)化方法

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

          LDR R2, =OsEnterSum

          ;服務(wù)程序要退出,所以O(shè)sEnterSum=0

          MOV R1, #0

          STR R1, [R2]

          MSR CPSR_c, #(NoInt | IRQ32Mode) ;切換回模式

          LDMFD SP, {R3, SP, LR}^ ;恢復(fù)用戶狀態(tài)的R3、SP、LR

          LDR R0, =OSTCBHighRdy

          LDR R0, [R0]

          LDR R1, =OSTCBCur

          LDR R1, [R1]

          CMP R0, R1

          ADD SP, SP, #4*3

          MSR SPSR_cxsf, R3

          LDMEQFD SP!, {R0R3, R12, PC}^ ;不進行任務(wù)切換

          LDR PC, =OSIntCtxSw;進行任務(wù)切換

          MEND

          END

          通過對Handler宏的可知,用戶的C語言處理程序是在特權(quán)模式--系統(tǒng)模式下運行的,并且CPU在執(zhí)行中斷服務(wù)程序時中斷都是關(guān)閉的,所以本系統(tǒng)采用的是最為簡單的非嵌套中斷方式。這種方式的優(yōu)點是,上下文數(shù)據(jù)不會被任何順序的中斷所破壞;缺點是,在中斷服務(wù)程序執(zhí)行時不能根據(jù)中斷優(yōu)先級進行中斷嵌套,延時時間長,只有當一個ISR完全結(jié)束并退出中斷后才重新接受中斷,降低了系統(tǒng)的實時特性。為提高系統(tǒng)的實時性,需要對其中斷進行。

          3 中斷的

          改寫μ 內(nèi)核中 HANDLER 宏可以實現(xiàn)ARM的中斷嵌套,這樣做雖然提高了系統(tǒng)的實時性,但損害了系統(tǒng)運行的穩(wěn)定性和可移植性。通過對中斷,下面給出一種編寫中斷服務(wù)程序的模板,充分利用ISR執(zhí)行在特權(quán)模式--系統(tǒng)模式這一特點來實現(xiàn)中斷嵌套的條件。中斷服務(wù)程序模板如下:

          void ISR(void){

          OS_ENTER_CRITICAL();//在中斷服務(wù)程序中關(guān)中斷清中斷標志;//防止沒有清中斷標志使得中斷多次進入關(guān)閉低優(yōu)先級;//禁止低優(yōu)先級中斷

          S_EXIT_CRITICAL();//在中斷服務(wù)程序中開中斷用戶的C語言代碼;//進行用戶在中斷中要做的工作

          VICVectAddr=0;//將中斷服務(wù)程序的入口地址置0

          }

          由于Handler宏中已將LR、SPSR、返回地址和發(fā)生中斷前的堆棧指針等寄存器入棧保存,所以接下來要做的就只剩下開關(guān)中斷的工作。由于在進入C中斷處理程序之前進入的是關(guān)中斷系統(tǒng)模式,所以必須在C語言中重新打開中斷,而C語言是不能進行寄存器操作的,因此必須調(diào)用軟中斷OS_EXIT_CRITICAL()重新打開中斷。在開中斷之前,要判斷將全局變量OsEnterSum減1后是否為0,所以必須在調(diào)用開中斷之前調(diào)用軟中斷OS_ENTER_CRITICAL()將OsEnterSum變成1。在臨界區(qū)中可以進行一些處理,如清中斷標志、關(guān)低優(yōu)先級中斷等。進行C語言中斷服務(wù)程序之后要將VICVectAddr置位為0,這是處理器核的要求必須進行這樣的編寫,否則會導(dǎo)致一些錯誤(如不能第2次進入中斷等)。

          結(jié)語

          “μ+ ”是當前嵌入式系統(tǒng)中廣泛應(yīng)用的一款平臺,適合于復(fù)雜度不是很高的中小型嵌入式系統(tǒng)。本文在深入”μ+ ”中斷機制的基礎(chǔ)上,對IRQ中斷響應(yīng)機制進行了改進,提出了方案。實驗證明,此可以實現(xiàn)中斷的嵌套并且提高系統(tǒng)實時性,具有一定的應(yīng)用價值。


          上一頁 1 2 下一頁

          評論


          相關(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); })();