gic為中斷控制器,不要和arm core的中斷搞混了,這些中斷都是連線到arm core的irq或者fiq上的。
++和*可以先不用考慮,用於安全模式。
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我處理完了,你可以歇歇了。
ARM 儲存控制器
初入領悟 1 bank l bank的概念 2 s3c2440內部管理sdram暫存器配置 frist part 原理分析 s3c2440為32位微處理器,其可訪問空間為4g 但其中提供1g外設訪問空間,這1g空間有8個bank組成 及平均每個bank有128m的訪問空間 其中8bank的特性為 1...
linux zynq 中斷控制器
一 zynq中斷說明 uart e0001000 第二個引數是中斷號。傳遞的過程中會區分是否為spi中斷,如果是spi中斷則加16,非spi則加32 所以在devicetree中的生成的中斷號是實際中斷號減去32 二 實際使用過程 pl端配置中斷控制in9 這樣我們在配置裝置樹需 pl int 這裡...
DSP中斷PIE控制器
pie把96個中斷分成12組int1 int12,每組管理8個中斷int 1 nt 8,這8個中斷共用cpu中斷int1 int12,每組都可開啟或不開啟這組的中斷 pieackx。分析 如首先需要開啟第一組int1的第1個中斷int1.1對應外設中斷使能暫存器,當第一組int1的第1個中斷int1...