ARM的異常處理過程分析

2021-06-01 22:57:08 字數 683 閱讀 2217

當異常產生時,arm core會完成以下流程:

1.拷貝cpsr到spsr_mode

2.設定適當的cpsr位:

改變處理器狀態進入arm態

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

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

3.儲存返回位址到lr_mode

4.設定pc為相應的異常向量

返回時,異常處理需要:(此時,需要程式設計師編寫相應**)

1.從spsr_mode恢復cpsr

2.從lr_mode恢復pc

注意:這些操作只能在arm態執行,但是中斷處理函式中,處理器可以切換到thumb態,但中斷返回時必須是arm態

vector table

0x00              reset

0x04              undefined instruction

0x08              swi

0x0c              prefetch abort

0x10              data abort

0x14              (reserved)

0x18              irq

0x1c              fiq

當外部中斷產生的時候,pc指標會自動跳轉到異常向量表,執行該位址的跳轉指令

異常處理過程

首先,它會使用new建立乙個異常物件,然後在產生異常的位置終止程式,並且從當前環境中彈出對異常物件的引用,這時。異常處理機制就會接管程式,並開始尋找乙個恰當的地方來繼續執行程式,這個恰當的地方就是異常處理程式。總的來說異常處理機制就是當程式發生異常時,它強制終止程式執行,記錄異常資訊並將這些資訊反饋...

ARM中斷處理過程

以s3c2440arm9核為例 1 s3c2440支援60個中斷源,含子中斷源 2 arm9採用五級流水線方式 3 支援外部中斷和內部中斷 24個外部中斷占用gpf0 gpf7 eint0 eint7 gpg0 gpg15 eint8 eint23 用這些腳做中斷輸入,則必須配置引腳為中斷,並且不要...

ARM的中斷處理過程

1.首先就是知道 arm狀態下的通用暫存器和程式計數器,綠顏色的就是相應模式下的私有暫存器。就是說程式一般執行在系統和使用者模式下,使用的是系統和使用者模式下的通用暫存器,當有異常發生時,比如 fiq,那麼系統將切換到 fiq模式下,相應的就會採用 fiq模式下的暫存器,其中綠顏色的就是只在 fiq...