4 S5PV210中斷相關暫存器詳解

2021-08-07 08:54:37 字數 2516 閱讀 9403

s5pv210中的中斷相關暫存器有很多,這裡我只詳細介紹我們常用的幾個比較重要的暫存器:

* vicnintenable和vicnintenclear

* vicnintselect

* vicnirqstatus和vicnfiqstatus

* vicnvectpriority0~vicnvectpriority31

* vicnvectaddr0~vicnvectaddr31、vicnaddr

下面我們乙個乙個的看:

* interrupt enable register(中斷使能暫存器)

可讀可寫,s5pv210中有四個這樣的暫存器,每乙個位表示乙個中斷源。

讀取的時候:0:禁止中斷   1:中斷允許

寫入的時候:0:無影響       1:使能中斷

* interrupt enable clear register(清除中斷使能暫存器)

這個暫存器就是和上面那個暫存器功能相反的,也就是禁止相應中斷源使能。

* interrupt select register (中斷型別選擇暫存器)

每乙個位代表乙個中斷源,表示中斷源的中斷型別:

0:irq中斷 1:fiq中斷

* irq status register(irq狀態暫存器)

用來檢測哪個中斷源發生了中斷。唯讀暫存器。(irq普通中斷模式下)

* fiq status register(fiq狀態暫存器)

用來檢測哪個中斷源發生了中斷。唯讀暫存器。(fiq快速中斷模式下)

* vector priority registers)(中斷向量優先順序暫存器)

通過寫入十六進製制0x0~0xf,來設定相應中斷源的中斷優先順序。

這個暫存器存放著每乙個中斷源對應的中斷處理程式的入口位址。這裡的值使我們在程式設計的時候需要寫進去的,然後讓下面這個暫存器通過硬體讀取。

這個暫存器就特別重要了,也是s5pv210執行中斷服務程式的關鍵。這個暫存器包含了當前要執行的中斷服務程式的位址。其實這個暫存器作用就是當發生了乙個中斷時,s5pv210通過硬體設計自動識別中斷編號,然後將相應的中斷服務程式位址(就是上乙個暫存器(vicvectaddr)中的值)賦值到這個暫存器中,這樣就可以給我們省去了軟體查詢中斷源和isr的時間了,我們可以直接讀取這個暫存器就可以執行此時發生的中斷源的中斷服務程式,大大提高了s5pv210的中斷相應時間。

s5pv210 中斷系統相關介紹

參考資料 1 異常向量表是cpu中某些特定位址的特定定義。當中斷發生的時候,中斷要想辦法通知cpu去處理中斷,怎麼做到?依靠異常向量表。2 在cpu設計時,事先定義了cpu中一些特定位址作為特定異常的入口位址。3 以上講的是cpu硬體設計時對異常向量表的支援,下來就需要軟體支援了。1 對soc來說,...

s5pv210 中斷實戰

以下內容源於部落格的學習,以及朱有鵬老師課程的學習,和網路資源的整理。1 建立異常向量表 2 中斷初始化 3 使能 如外部中斷,寫中斷處理函式 4 建立中斷號與中斷處理函式的聯絡,使能。當中斷發生時,中斷處理函式會自動處理中斷 流程如下圖 下面按上述步驟編寫 內容細節見部落格 s5pv210 裸機 ...

S5PV210中斷處理

start 1 設定棧空間 防止之前的uboot 被覆蓋,應為c中需要棧空間 mov r0,0x53 msr cpsr cxsf,r0 b main main函式 1 led燈引腳功能設定 gpj2con 0xf 0 gpj2con 1 0 2 中斷初始化 2 1 註冊中斷函式 功能函式 start...