ARM異常處理方式簡單介紹

2021-08-13 17:10:53 字數 720 閱讀 6549

1.正常工作之外的流程都叫異常

2.異常會打斷正在執行的工作,並且一般我們希望異常處理完成後繼續回來執行原來的工作

3.中斷是異常的一種

1.所有的cpu都有異常向量表,這是cpu設計時就設定好的,是硬體決定的。

2.當異常發生時,cpu會自動動作(pc跳轉到異常向量處處理異常,有時伴有一些輔助動作)

3.異常向量表是硬體向軟體提供的處理異常的支援。

當異常產生時, arm core:

拷貝 cpsr 到 spsr_設定適當的 cpsr 位: 

改變處理器狀態進入 arm 態

改變處理器模式進入相應的異常模式

設定中斷禁止位禁止相應中斷 (如果需要)

儲存返回位址到 lr_設定 pc 為相應的異常向量

返回時, 異常處理需要:

從 spsr_恢復cpsr

從lr_恢復pc

note:這些操作只能在 arm 態執行.

異常處理中有一些是硬體自動做的,有一些是程式設計師需要自己做的。需要搞清楚哪些是需要自己做的,才知道如何寫**。

以上說的是cpu設計時提供的異常向量表,一般成為一級向量表。有些cpu為了支援多個中斷,還會提供二級中斷向量表,處理思路類似於這裡說的一級中斷向量表。

Java異常處理方式

平時在開發的時候避免不了的出一些大大小小的不同型別的錯誤,這時候,對於這些異常怎麼處理呢,顯得至關重要了。採用try.catch.方式 trycatch exception e catch filenotfoundexception e catch ioexception e 採用throw丟擲 i...

異常處理方式 丟擲處理

異常的處理方式2 丟擲處理.throw throws 1.如果乙個方法內部丟擲了乙個異常物件,那麼必須在方法上宣告丟擲 2.如果呼叫了乙個宣告丟擲異常型別的方法,那麼呼叫者必須要進行處理,否則編譯報錯 3.乙個方法遇到了throw關鍵字,那麼該方法會馬上停止執行。4.在一種情況下只能丟擲一種異常物件...

異常類及處理方式

說句實話我沒怎麼聽懂,因為我太菜了。所以我只編了前乙個異常類,不太清楚兩者之間有什麼區別。一下附上 package com.huang public class fileexception extends exception catch exception e finally 以下為執行截圖 下乙個...