找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 3792|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

Linux-ARM之中斷GIC分析

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:433403 發(fā)表于 2018-11-26 14:09 | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
  1.“站的高尿的遠(yuǎn)”
  GIC為中斷控制器,不要和ARM core的中斷搞混了,這些中斷都是連接到ARM core的IRQ或者FIQ上的。
  要了解arm中斷系統(tǒng),GIC絕對(duì)不容錯(cuò)過,好先付上一張大家都能百度到的圖片。





  ++和*可以先不用考慮,用于安全模式。
  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我處理完了,你可以歇歇了。




分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表