中斷控制器的級聯(lián)
根據(jù)中斷數(shù)量的不同,中斷控制器可以級聯(lián),以此來滿足需求。比如在 GIC 中斷控制器之前都會連接 EINT中斷控制器,或者其他中斷控制器,對不同的中斷分級管控。
中斷控制器的級聯(lián)有兩種類型:

機器級別的級聯(lián),級聯(lián)的初始化代碼理所當然地位于板子的初始化代碼中(arch/xxx/mach-xxx),因為只要是使用這個板子或SOC的設備,必然要使用這個子控制器。
設備級別的級聯(lián),因為該設備并不一定是系統(tǒng)的標配設備,所以中斷控制器的級聯(lián)操作應該在該設備的驅(qū)動程序中實現(xiàn)。
機器設備的級聯(lián),因為得益于事先已經(jīng)知道子控制器的硬件連接信息,內(nèi)核可以方便地為子控制器保留相應的 irq_desc 結構和 irq編號,處理起來相對簡單。
設備級別的級聯(lián)則不一樣,驅(qū)動程序必須動態(tài)地決定組合設備中各個子設備的 irq 編號和 irq_desc
結構。我只討論機器級別的級聯(lián),設備級別的關聯(lián)可以使用同樣的原理。
中斷子系統(tǒng)架構

整個中斷子系統(tǒng)的架構分為 4 層,最底層(第四層)為硬件,包括 CPU、中斷控制器。第三層是 CPU的驅(qū)動和中斷控制器的驅(qū)動,由芯片原廠負責。第二層是 Linux內(nèi)核提供的通用中斷處理模塊,這一層存在的意義在于,希望用戶在第一層寫的驅(qū)動在移植的時候更方便,保持接口不變,不讓用戶直接使用芯片原廠的 API,而是 Linux的 API。第一層就是驅(qū)動工程師日常寫的驅(qū)動啦。
-
控制器
+關注
關注
114文章
17577瀏覽量
189553 -
Linux
+關注
關注
88文章
11593瀏覽量
217405 -
設備
+關注
關注
2文章
4766瀏覽量
73147 -
系統(tǒng)
+關注
關注
1文章
1044瀏覽量
22122
發(fā)布評論請先 登錄

中斷控制器級聯(lián)的類型有哪幾種
評論