<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è) > 嵌入式系統 > 設計應用 > 一種基于A(yíng)RM處理器的異常處理設計與實(shí)現

一種基于A(yíng)RM處理器的異常處理設計與實(shí)現

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

時(shí)鐘常用于向操作系統通過(guò)調度單位,因此中斷狀態(tài)會(huì )持續直至完成調度處理,處理完成后由時(shí)鐘源進(jìn)行中斷清除,以開(kāi)始下一周期計時(shí)。根據應用需求,時(shí)鐘中斷應設置為電平觸發(fā)方式,通過(guò)APR和ATR寄存器,設置該時(shí)鐘為高電平觸發(fā)模式。通過(guò)ITR寄存器,設置該時(shí)鐘為中斷方式。

本文引用地址:http://dyxdggzs.com/article/201609/304718.htm

LPC3250處理器可配置多路時(shí)鐘源,以μs級時(shí)鐘(Millisecond Timer)為例,根據應用需求,在中斷控制器中對該中斷源進(jìn)行以下主要設置:

Write(VIC_APR,0x3FF0EFF8);//通過(guò)APR寄存器MSTIMER_INT位置1,設置Millisecond Timer中斷為高電位有效

write(VIC_ATR,0xFEFFFFFF);//通過(guò)ATR寄存器MSTIMER_INT位置0,設置Millisecond Timer為電平觸發(fā)

write(VIC_ITR,0x08000000);//通過(guò)ITR寄存器MSTIMER_INT位置1,設置Millisecond Timer為中斷方式

中斷控制器中設置完成后,當發(fā)生時(shí)鐘中斷時(shí),PC指向入口0x1C處,由于FIQ的向量入口為處理器7種的尾地址,因此無(wú)需通過(guò)跳轉指令進(jìn)行處理例程的跳轉。在該入口處對中斷進(jìn)行以下主要處理:

sub lr,lr,#4計算返回地址

stmfd sp!,{ri-rm,lr}保存使用到的寄存器

mov lr,pc

ldr pc,=IntHandler

Ldmfd sp!,{ri-rm,pc}中斷返回,表示將SPSR的值賦給CPSR

其中IntHandler為中斷處理接口,主要完成為操作系統提供基本的調度周期以及時(shí)鐘中斷源中斷狀態(tài)的清除。

完成時(shí)鐘中斷源的清除,需設置定時(shí)器中ISR(Millisecond Timer Interrupt Status register)寄存器,具體設置如下:

write(MSTIMER_ISR,0x1);//通過(guò)時(shí)鐘中ISR寄存器MATCH0_INT位置1,清除時(shí)鐘中斷源

5 功能及性能測試

在完成設計、編碼及交叉編譯后,對該異常機制在LPC3250目標機上的運行的情況進(jìn)行功能和性能測試。

5.1 功能測試

采用FIQ模式進(jìn)行定時(shí)器中斷處理,操作系統可正確獲取調度周期,表明該中斷處理功能正確。

5.2 性能測試

由于采用FIQ中斷模式進(jìn)行時(shí)鐘中斷處理,在異常入口處無(wú)需額外的跳轉操作,直接進(jìn)行時(shí)鐘中斷處理。且設計中FIQ只用于時(shí)鐘中斷,因此無(wú)需從中斷控制器獲取中斷號的獲取,減少了中斷處理指令,進(jìn)而降低了處理時(shí)間。LPC3250平臺處理器主頻為266MHz,處理器時(shí)鐘周期為1/266μs,以1/1 000 s為單位向操作系統提供調度周期為例,總線(xiàn)周期誤差累計實(shí)驗數據如圖4所示。

一種基于A(yíng)RM處理器的異常處理設計與實(shí)現

實(shí)驗中,隨著(zhù)采樣調度周期數的不斷增加,IRQ模式下時(shí)鐘計時(shí)與理論值的處理器時(shí)鐘周期偏差數較FIQ模式明顯偏多,FIQ模式計時(shí)比IRQ模式更接近實(shí)際計時(shí)。結果表明,通過(guò)FIQ模式進(jìn)行的時(shí)鐘中斷較IRQ方式更精確。

6 結束語(yǔ)

本文提出一種高效的異常處理方案,并以時(shí)鐘為例進(jìn)行了驗證。通過(guò)實(shí)現驗證,采用上述FIQ中斷模式所設計的時(shí)鐘中斷控制程序,較IRQ模式的時(shí)鐘中斷方式更為高效,能為系統提供更為精確的調度周期,實(shí)驗效果與預期相符。


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

評論


相關(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>