|
1.“站的高尿的遠(yuǎn)”
GIC為中斷控制器,不要和ARM core的中斷搞混了,這些中斷都是連接到ARM core的IRQ或者FIQ上的。
要了解arm中斷系統(tǒng),GIC絕對(duì)不容錯(cuò)過,好先付上一張大家都能百度到的圖片。
111111.png (108.28 KB, 下載次數(shù): 70)
下載附件
2018-11-26 14:07 上傳
2222222.png (67.08 KB, 下載次數(shù): 70)
下載附件
2018-11-26 14:07 上傳
++和*可以先不用考慮,用于安全模式。
GIC可以用于單核多核系統(tǒng),這時(shí)候要拋開單片機(jī)的簡(jiǎn)單中斷了,從圖上看有SGI(Software-generated interrupt)、PPI(Private peripheral interrupt )、SPI(Shared peripheral interrupt),顧名思義SGI為軟件可以觸發(fā)的中斷,經(jīng)常用于各個(gè)core之間的通信,PPI為每個(gè)core的私有外設(shè)中斷,SPI為各個(gè)core公用的中斷。
SGI:0~15
PPI:16-31
SPI:32~1019
2. follow me
通常把GIC分成兩個(gè)部分,分發(fā)器(Distributor)和CPU接口。
分發(fā)器其實(shí)應(yīng)該叫匯聚器,在IC的后端設(shè)計(jì)中,layout會(huì)把各個(gè)模塊引過來(lái)的中斷線混接到GIC上(就是上面說的三種中斷),然后把混聚合的中斷接到CPU的irq線上。
這樣core就有觸覺了。
3. 模型
既然是中斷控制器,必不可少的是總的中斷使能,各個(gè)子中斷使能,優(yōu)先級(jí)排序,在多核系統(tǒng)中對(duì)于SGI還可以指定中斷發(fā)往哪個(gè)CPU core。
如何才能保證中斷不丟失呢?啊對(duì)了就是pending,distributor會(huì)把收集來(lái)的中斷,先緩存一下,依次交給CPU處理,cpu讀取一個(gè)中斷,其實(shí)
就是讀取一個(gè)寄存器,只不過這個(gè)寄存器存放的是中斷號(hào),這時(shí)候中斷的狀態(tài)由pending轉(zhuǎn)為active,cpu處理完了以后,將中斷號(hào)寫入GIC,告訴
GIC我處理完了,你可以歇歇了。
121212121.png (73.57 KB, 下載次數(shù): 77)
下載附件
2018-11-26 14:07 上傳
|
|