第9章 中斷系統和中斷控制器8259A

2021-06-19 22:48:00 字數 1001 閱讀 1744

第9章 中斷系統和中斷控制器8259a

分類: linux核心

2010-10-26 17:11

1012人閱讀

收藏 舉報

linux核心

exception

多執行緒linux

任務程式設計

中斷通常被分為「同步中斷」和非同步中斷兩大類。

同步中斷是指當指令執行時由cpu控制單元產生的中斷,之所以稱為「同步中斷」是因為只有在一條指令中止執行後cpu才會發出這類中斷訊號。

而非同步中斷(通常意義上的中斷,來自外部)則是指由其他硬體裝置依照cpu時鐘隨機產生的中斷訊號。 在intel 80x86 cpu手冊中,同步中斷和非同步中斷也被分別稱為「異常(exception)」和「中斷(interrupt)」。

軟中斷是利用硬體中斷的概念,用軟體方式進行模擬,實現巨集觀上的非同步執行效果。很多情況下,軟中斷和"訊號"有些類似,同時,軟中斷又是和硬中斷相對應的,"硬中斷是外部裝置對cpu的中斷","軟中斷通常是硬中斷服務程式對核心的中斷","訊號則是由核心(或其他程序)對某個程序的中斷"(《linux核心源**情景分析》第三章)。

軟中斷的一種典型應用就是所謂的"下半部"(bottom half),它的得名來自於將硬體中斷處理分離成"上半部"和"下半部"兩個階段的機制:上半部在遮蔽中斷的上下文中執行,用於完成關鍵性的處理動作;而下半部則相對來說並不是非常緊急的,通常還是比較耗時的,因此由系統自行安排執行時機,不在中斷服務上下文中執行。bottom half的應用也是激勵核心發展出目前的軟中斷機制的原因。

軟中斷是linux系統原「底半處理」的公升級,在原有的基礎上發展的新的處理方式,以適應多cpu 、多執行緒的軟中斷處理。

一般來說,軟中斷是由核心機制的觸發事件引起的(例如程序執行超時),但是不可忽視有大量的軟中斷也是由於和硬體有關的中斷引起的,例如當印表機埠產生乙個硬體中斷時,會通知和硬體相關的硬中斷,硬中斷就會產生乙個軟中斷並送到作業系統核心裡,這樣核心就會根據這個軟中斷喚醒睡眠在印表機任務佇列中的處理程序。

在網路程式設計中,軟中斷用來引發協議層**的執行

linux zynq 中斷控制器

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

ARM通用中斷控制器

gic為中斷控制器,不要和arm core的中斷搞混了,這些中斷都是連線到arm core的irq或者fiq上的。和 可以先不用考慮,用於安全模式。gic可以用於單核多核系統,這時候要拋開微控制器的簡單中斷了,從圖上看有sgi software generated interrupt ppi pri...

DSP中斷PIE控制器

pie把96個中斷分成12組int1 int12,每組管理8個中斷int 1 nt 8,這8個中斷共用cpu中斷int1 int12,每組都可開啟或不開啟這組的中斷 pieackx。分析 如首先需要開啟第一組int1的第1個中斷int1.1對應外設中斷使能暫存器,當第一組int1的第1個中斷int1...