LPC2478 向量中斷控制器(VIC

2021-05-26 12:38:57 字數 2026 閱讀 4451

vic是處於晶元外設和arm核心之間的乙個模組,對晶元所有外設中斷進行管理,決定哪些中斷源可以產生中斷、產生哪種型別的中斷以及中斷後執行哪段服務程式。

arm處理器核心具有兩個中斷輸入:向量中斷請求(irq)和快速中斷請求(fiq)。向量中斷控制器使用32個中斷請求輸入,可將其程式設計分配為fiq或向量irq型別。可程式設計分配機制意味著外設中斷的優先順序可動態分配和調整。

快速中斷請求具有最高優先順序。

向量irq具有可程式設計的中斷優先順序。

*arm primecell向量中斷控制器

*對映到ahb位址空間以高速訪問

*支援32個向量irq

*16個可程式設計的中斷優先順序

*在每個可程式設計優先順序內的硬體優先順序固定

*硬體優先順序遮蔽

*任何中斷都可分配為fiq

*軟體中斷功能

中斷源分配表位31

3029

2827

2625

24符號

i2si2c2

uart3

uart2

timer3

timer2

gpdma

sd/mmc位23

2221

2019

1817

16符號

can1&2

usbethernet

bodi2c1

ad0eint3

eint2 

lcd位

1514

1312

111098

符號eint1

eint0

rtcpll

ssp1

spi/ssp0

i2c0

pwm0&1位7

6543

210符號

uart1

uart0

timer1

timer0

armcore1

armcore0

-wdt

(1)中斷選擇暫存器 vicintselect                          將32個中斷請求分配為fiq和irq

(31:0)       0:  該位對應的中斷請求分配為irq

1: 該位對應的中斷請求分配為fiq

vicintselect=1<(2)中斷使能暫存器 vicintenable                         控制32個中斷請求的使能

(3)中斷使能清零暫存器 vicintenclear              允許軟體將中斷使能暫存器中的乙個或多個位清零

(4)軟體中斷暫存器  vicsoftint                               該暫存器的內容與32個不同外設功能的中斷請求「相或」

寫0時該位無效,寫1時強制產生與該位相關的中斷請求。                          

(5)軟體中斷清零暫存器 vicsoftintclear            允許軟體將軟體中斷暫存器中的乙個或多個位清零

寫0時該位無效,寫1時則軟體中斷暫存器中對應位被清除。

(6)軟體優先順序遮蔽暫存器 vicswprioritymask 允許在任何組合中遮蔽單個中斷優先順序(1)向量位址暫存器0-31   vicvectaddr0-31

(2)向量位址暫存器           vicvectaddr

(3)向量優先順序暫存器0-31   vicvectpriority0-31(1)irq狀態暫存器  vicirqstatus

(2)fiq狀態暫存器  vicfiqstatus

(3)原始中斷狀態暫存器  vicrawintr   該唯讀暫存器讀取所有32個中斷請求和軟體中斷的狀態,

0  對應位的中斷請求或軟體中斷未宣告

1 對應位的中斷請求或軟體中斷宣告

vic保護使能暫存器 vicprotection**確定該中斷分配為fiq還是irq中斷

**若分配為fiq,則進行相關的初始化;若分配為irq,再進行相關設定

**清除相應中斷標誌,並使能相應中斷

**編寫中斷服務程式

巢狀向量中斷控制器(NVIC)詳解

在平時的工作中,我們經常會遇到這樣的情況 有人來找你做一些事情,而且這些事情要比手頭的工作更重要。那現在就需要停下手中的工作,先去完成突然到來的這部分工作。這樣的情況也類似於圖論中的關鍵路徑中,突然在當前事件之前插入了乙個新的事件,那我們不得不先去完成之前的那個任務,才能繼續完成後面的工作。上述情況...

巢狀的向量式中斷控制器 NVIC

幾個基本概念 1.arm cortex m3 核心支援 256 個中斷 16 個核心 240 外部 和可程式設計 256 級中斷優先順序的設定,與其相關的中斷控制和中斷優先順序控制暫存器 nvic systick 等 也都屬於cortex m3 核心的部分。其中,stm32 目前支援的中斷共為 84...

linux zynq 中斷控制器

一 zynq中斷說明 uart e0001000 第二個引數是中斷號。傳遞的過程中會區分是否為spi中斷,如果是spi中斷則加16,非spi則加32 所以在devicetree中的生成的中斷號是實際中斷號減去32 二 實際使用過程 pl端配置中斷控制in9 這樣我們在配置裝置樹需 pl int 這裡...