<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 中斷處理的安全性與高效性研究

ARM 中斷處理的安全性與高效性研究

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




下面假設任務(wù)切換是在SVC模式中運行的。結合上面的分析,可以有圖3所示的保存任務(wù)切換的示意圖(虛線(xiàn)是壓棧保存,實(shí)線(xiàn)是彈?;謴?;LR_Frame和 SPSR_Frame是變量區)。

結合圖3任務(wù)切換中斷處理中的步驟,可以用匯編語(yǔ)言寫(xiě)出相對應的中斷處理程序:




4 可重入性中斷

如果希望在處理中斷時(shí)仍能響應其他中斷請求以此來(lái)縮短中斷延時(shí),就必須設計可重人性中斷??芍厝胄灾袛嗍翘幚矶鄠€(gè)中斷的一種方法,但它也同時(shí)帶來(lái)新的問(wèn)題。在IRQ中斷模式中,如果直接重新允許了IRQ中斷,此時(shí)因為執行一條BL指令而將子程序返回的地址保存在LR_irq中,而在此間中斷發(fā)生了。新來(lái)的中斷會(huì )將其返回地址裝入LR_irq中,此時(shí)舊中斷子程序的返回地址必將被覆蓋從而導致系統紊亂。此種情形是無(wú)法通過(guò)將LR_irq壓棧來(lái)解決的,如程序語(yǔ)句:



但是仍不能排除在保存LR之前中斷發(fā)生的可能性。要解決上述LR_irq被破壞的問(wèn)題,就必須切換處理器的模式,常見(jiàn)的是切換到SVC處理模式。在SVC 模式中,通過(guò)BL調用子程序時(shí)會(huì )將返回地址保存在LR_SVC之中。此時(shí)新中斷發(fā)生(因為它會(huì )將返回地址保存到LR_irq而不是LR_SVC),不會(huì )破壞舊中斷中子程序返回地址了。有了基于上述的原理分析再來(lái)編寫(xiě)可重入性中斷的代碼就思路清晰了。但是為了保證處理的高效性,盡可能地及早允許中斷以縮短延時(shí),在保存完LR_irq和SPSR_irq后,就馬上切換到SVC模式中并重新允許中斷,如圖4所示(虛線(xiàn)是壓棧保存,實(shí)線(xiàn)是彈?;謴?。



結合圖4中的處理步驟,可以比較清晰地寫(xiě)出可重入中斷處理的匯編語(yǔ)言程序:



5 基于優(yōu)先級的可重入中斷

在上面的可重人中斷中可能發(fā)生這種情形,某高優(yōu)先級中斷在中斷服務(wù)程序中因為重新允許了中斷請求而被另一低優(yōu)先級中斷所打斷,于是高優(yōu)先級中斷不得不等到低優(yōu)先級中斷完畢后方可繼續運行。這樣一來(lái),高優(yōu)先級中斷服務(wù)的延遲將更加增大。


關(guān)鍵詞: ARM中斷處理安全性高效

評論


技術(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>