AT91的中斷處理機制

2021-04-26 15:38:20 字數 1879 閱讀 3686

1、所

有程式設計為邊沿

觸發的中斷源

(包括源0中的

fiq)

可通過寫

aic_iscr

與aic_iccr

暫存器來 設

置與清零。 2

aic_ivr(中斷向量存器)時,aic自動除當中斷只有當該

操作影響當前

中斷時,

aic才會檢測該

中斷源。自動清除

降低中斷

服務程式入口**讀

aic_ivr 的請求

操作。3、當讀aic_fvr 時執行自動清除中斷源0。 4

、高階中斷控制器(aic) 使用者介面的基位址aic對映到位址0xffff f000上。共有4-k位元組的位址空間。 5

、乙個8級優先順序控制器驅動處理器nirq線,由出現在中斷源1到31的中斷條件決定(除程式設計為快速強制的)。

每個中斷源通過對相應的aic_smr(源模式暫存器)prior域寫定義其優先順序。等級7優先順序最高,等級0優先順序最低。

一旦aic_smr(源向量暫存器)中的srctype域定義的中斷條件出現,nirq線出現。

由於nirq出現可能有其它中斷源的中斷條件出現,優先順序控制器決定讀aic_ivr時的當前中斷。

中斷向量暫存器(aic_ivr)包含了使用者程式設計的當前中斷相關的源向量暫存器(aic_smr)。讀中斷向量暫存器時,源向量暫存器使用中斷號碼作為索引。當沒有當前中斷,中斷向量暫存器讀取儲存於aic_spu中的值siqv

siqv:

偽中斷向量暫存器。

使用者可在該暫存器中儲存偽中斷處理程式的位址。當出現未中斷時,寫入該暫存器的值為aic_ivr 的返回值,類似的發生偽快速中斷時,寫入該暫存器的值為aic_ivr 的返回值。 6

、若幾個優先順序相等的掛起中斷源在讀aic_ivr後使能,中斷源序號最低的中斷先行服務。

只有當乙個更高優先順序的中斷源中斷條件出現時,nirq線出現。若在中斷執行時出現中斷條件(或掛起),它將延遲到檢測到aic結束當前服務。(前面的這兩話的意思是如果現在有乙個優先順序比較高的中斷正在處理時,出現乙個優先順序比較低的中斷請求,則此時nirq線保持不出現

(nirq線在進入中斷處理程式之後會被釋放的,即在中斷處理執行過程中nirq是不出現的),也即是cpu不理睬該低優先順序的中斷請求,等檢測到優先順序比較高的中斷已經處理完畢再去相應低優先順序的中斷請求)

對aic_eoicr寫入將退出中斷處理,我們也可以根據從aic_eoicr的讀出的值判斷乙個中斷處理是否已經結束。 7

、當處理乙個優先順序比較低的中斷服務期間出現乙個中斷優先順序更高的中斷,nirq線重新出現。若中斷在核心級使能,打斷當前中斷執行,新的中斷服務應讀取aic_ivr,但aic_ivr(中斷向量存器)時,aic自動除當中斷

使用者態和核心態 中斷處理機制

1.1.1 定義 什麼是使用者態和核心態?kernel 執行在超級許可權模式 supervisor mode 下,所以擁有很高的許可權。按照許可權管理的原則,多數應用程式應該執行在最小許可權下。因此,很多作業系統,將記憶體分成了兩個區域 1.1.2 使用者態和核心態 使用者空間中的 被限制了只能使用...

異常處理機制

異常處理的三個步驟 檢查異常,丟擲異常,處理異常 異常處理基本原理 把需要檢測的程式放到try塊中,把異常處理的程式放在catch塊中。如果執行乙個函式出現了異常,可以丟擲異常資訊。然後查詢try塊下面的catch塊是否可以處理該異常。如果該函式不處理該異常,將傳遞給它的上一級函式 呼叫函式 如果它...

Handler處理機制

handler缺點 如果要運送兩種型別的資料 比如乙個bitmap,乙個object 就不能運送,但可以用bunder來傳輸 使用handler的步驟 1 建立乙個handler 2 在需要用到資料傳輸的地方通過handler得到message物件,通過message攜帶要傳輸的資料 3 直接通過h...