2013-05-09 60 views
2

正在經歷手臂異常處理的基礎知識,並且懷疑: (我以中止異常爲例) 讓我們假設處理器在用戶模式下運行。手臂異常處理機制

例外發生時,處理器將保存當前pc到abort_mode LRCPSR中止模式SPSR和執行跳轉到向量地址爲中止,所以PC現在將包含向量地址爲中止。

所以我在這裏得到的是流程轉移到中止模式(有電腦中止矢量)之前。 CPU以下任務將執行: 「當前pc到abort_mode LRCPSR中止模式SPSR然後執行跳轉到爲中止向量地址」,如上面提到的。 在哪種模式下以及從哪裏執行指令以執行上述任務?

+1

準確地說你的問題是什麼? – tangrs 2013-05-09 07:47:48

+0

@tangrs,請看看你現在是否得到我。 – user2333014 2013-05-09 13:21:18

+0

ARM內部的*微代碼可以完成所有這些工作。 **注意:** ARM中的向量表是'code',而不是指向'code'的指針。通常某些分支或'ldr pc,= abort_handler'位於向量表中。數據中止有一個小*孔*,有兩條指令可用。 FIQ結束了,不必跳。 – 2013-05-09 14:01:18

回答

3

中止異常發生時,您引用的文本是正確的。其他例外使用不同的模式。

將PC複製到異常模式LR和將CPSR複製到SPSR並將PC設置爲異常向量是處理器自動處理異常情況時的功能。沒有說明要求。它也切換到該異常模式使用的SP。

異常處理程序是接下來的內容。並完全在軟件中。

+0

@unixmurf,謝謝。 – user2333014 2013-05-09 19:16:19