新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > DataAbort簡單分析

DataAbort簡單分析

作者: 時間:2012-10-22 來源:網絡 收藏

中止表示當前存儲器訪問不能被完成。

本文引用地址:http://m.butianyuan.cn/article/148322.htm

有兩種類型的中止:

預取指中止: 發(fā)生在指令預取指過程中

數(shù)據(jù)中止:  發(fā)生在對數(shù)據(jù)訪問時

1.預取指中止

當發(fā)生預取指中止時ARM7TDMI-S內核將預取的指令標記為無效但在指令到達流水線的執(zhí)行階段時才進入異常,如果指令在流水線中因為發(fā)生分支而沒有被執(zhí)行,中止將不會發(fā)生。

在處理中止的原因之后不管處于哪種處理器操作狀態(tài)處理程序都會執(zhí)行下面的指令

SUBSPC,R14_abt,#4

這個動作恢復了PC和CPSR并重試被中止的指令

2.數(shù)據(jù)中止

當發(fā)生數(shù)據(jù)中止時根據(jù)指令的類型產生不同的動作

●數(shù)據(jù)轉移指令LDR,STR回寫到被修改的基址寄存器中止處理程序必須注意這一點

●交還指令SWP中止好像沒有被執(zhí)行過一樣中止必須發(fā)生在SWP指令進行讀訪問時

●塊數(shù)據(jù)轉移指令LDM,STM完成 當回寫被設置時基址寄存器被更新在指示出現(xiàn)中止后。ARM7TDMI-S內核防止所有寄存器被覆蓋這意味著ARM7TDMI-S內核總是會保護被中止的LDM指令中的r15(總是最后一個被轉移的寄存器)

中止的機制使指令分頁的虛擬存儲器系統(tǒng)能夠被實現(xiàn)。在這樣一個系統(tǒng)中,處理器允許產生仲裁地址。當某一地址的數(shù)據(jù)無法訪問時,存儲器管理單元MMU通知產生了中止,中止處理程序必須找出中止的原因,使請求的數(shù)據(jù)可以被訪問并重新執(zhí)行被中止的指令。應用程序不必知道可用存儲器的數(shù)量,也不必知道它的被中止時所處的狀態(tài)。在修復產生中止的原因后,不管處于哪種處理器操作狀態(tài),處理程序都必須執(zhí)行下面的返回指令 SUBSPC,R14_abt,#8 這個動作恢復了PC和CPSR并重試被中止的指令



關鍵詞: 分析 簡單 DataAbort

評論


相關推薦

技術專區(qū)

關閉