linux-arm中斷系統之GIC__linux

來源:互聯網
上載者:User

這幾天長三角爆發禽流感,搞的連菜市場都不敢靠近了,頗有點SARS的架勢,我真懷疑上帝是不是個程式猿,造人搞這麼多bug,

H7N9的driver還沒寫好吧,害的我們只能不停的打patch,時不時來個oops。今天看了一個專家的解說:"H7N9基因有八節,其中H7的部分是來自浙江的野鳥,

N9的部分是來自韓國的野鳥,那麼其餘的六節相信是來自長江以北",好吧,又是你們韓國。


1.“站的高尿的遠”

   GIC為中斷控制器,不要和ARM core的中斷搞混了,這些中斷都是串連到ARM core的IRQ或者FIQ上的。

   要瞭解arm中斷系統,GIC絕對不容錯過,好先付上一張大家都能百度到的圖片。

++和*可以先不用考慮,用於安全模式。

GIC可以用於單核多核系統,這時候要拋開單片機的簡單中斷了,從圖上看有SGI(Software-generated interrupt)、PPI(Private peripheral interrupt )、SPI(Shared peripheral interrupt),顧名思義SGI為軟體可以觸發的中斷,經常用於各個core之間的通訊,PPI為每個core的私人外設中斷,SPI為各個core公用的中斷。

SGI:0~15

PPI:16-31

SPI:32~1019

2.  follow me

 通常把GIC分成兩個部分,分發器(Distributor)和CPU介面。

分發器其實應該叫匯聚器,在IC的後端設計中,layout會把各個模組引過來的中斷線混接到GIC上(就是上面說的三種中斷),然後把混彙總的中斷接到CPU的irq線上。

這樣core就有觸覺了。

3. 模型

既然是中斷控制器,必不可少的是總的中斷使能,各個子中斷使能,優先順序排序,在多核系統中對於SGI還可以指定中斷髮往哪個CPU core。

如何才能保證中斷不丟失呢。啊對了就是pending,distributor會把收集來的中斷,先緩衝一下,依次交給CPU處理,cpu讀取一個中斷,其實

就是讀取一個寄存器,只不過這個寄存器存放的是中斷號,這時候中斷的狀態由pending轉為active,cpu處理完了以後,將中斷號寫入GIC,告訴

GIC我處理完了,你可以歇歇了。






聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.