Arch-speicific代碼分析
- 中斷也是異常模式的一種,當(dāng)外設(shè)觸發(fā)中斷時(shí),處理器會(huì)切換到特定的異常模式進(jìn)行處理,而這部分代碼都是架構(gòu)相關(guān)的;ARM64的代碼位于
arch/arm64/kernel/entry.S
。 - ARM64處理器有四個(gè)異常級(jí)別Exception Level:0~3,EL0級(jí)對(duì)應(yīng)用戶態(tài)程序,EL1級(jí)對(duì)應(yīng)操作系統(tǒng)內(nèi)核態(tài),EL2級(jí)對(duì)應(yīng)Hypervisor,EL3級(jí)對(duì)應(yīng)Secure Monitor;
- 異常觸發(fā)時(shí),處理器進(jìn)行切換,并且跳轉(zhuǎn)到異常向量表開(kāi)始執(zhí)行,針對(duì)中斷異常,最終會(huì)跳轉(zhuǎn)到
irq_handler
中;
代碼比較簡(jiǎn)單,如下:
/*
* Interrupt handling.
*/
.macro irq_handler
ldr_l x1, handle_arch_irq
mov x0, sp
irq_stack_entry
blr x1
irq_stack_exit
.endm
來(lái)張圖:
- 中斷觸發(fā),處理器去異常向量表找到對(duì)應(yīng)的入口,比如EL0的中斷跳轉(zhuǎn)到
el0_irq
處,EL1則跳轉(zhuǎn)到el1_irq
處; - 在GIC驅(qū)動(dòng)中,會(huì)調(diào)用
set_handle_irq
接口來(lái)設(shè)置handle_arch_irq
的函數(shù)指針,讓它指向gic_handle_irq
,因此中斷觸發(fā)的時(shí)候會(huì)跳轉(zhuǎn)到gic_handle_irq
處執(zhí)行; gic_handle_irq
函數(shù)處理時(shí),分為兩種情況,一種是外設(shè)觸發(fā)的中斷,硬件中斷號(hào)在16 ~ 1020
之間,一種是軟件觸發(fā)的中斷,用于處理器之間的交互,硬件中斷號(hào)在16以內(nèi);- 外設(shè)觸發(fā)中斷后,根據(jù)
irq domain
去查找對(duì)應(yīng)的Linux IRQ中斷號(hào),進(jìn)而得到中斷描述符irq_desc
,最終也就能調(diào)用到外設(shè)的中斷處理函數(shù)了;
聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。
舉報(bào)投訴
-
嵌入式
+關(guān)注
關(guān)注
5087文章
19148瀏覽量
306186 -
Linux
+關(guān)注
關(guān)注
87文章
11322瀏覽量
209867 -
子系統(tǒng)
+關(guān)注
關(guān)注
0文章
109瀏覽量
12416 -
代碼
+關(guān)注
關(guān)注
30文章
4803瀏覽量
68754
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
如何在Arch Linux系統(tǒng)中安裝Cutefish桌面環(huán)境
現(xiàn)在你可以在 Arch Linux 中體驗(yàn) Cutefish 桌面了。本文概述了在 Arch Linux 系統(tǒng)中安裝 Cutefish 桌面
Linux時(shí)間子系統(tǒng)之ARM generic timer驅(qū)動(dòng)代碼分析
郭健? Linux時(shí)間子系統(tǒng)之ARM generic timer驅(qū)動(dòng)代碼分析
發(fā)表于 07-17 09:30
Arm Linux中斷子系統(tǒng)先相關(guān)資料分享
1. Arm Linux 中斷子系統(tǒng)1.1. 中斷硬件系統(tǒng)3個(gè)組成部分:外設(shè)(中斷源)、
發(fā)表于 05-23 15:21
Arch Linux教程詳解
最近在評(píng)論區(qū)看到很多人對(duì)Linux開(kāi)始感到興趣,身為一個(gè)精通各種系統(tǒng)開(kāi)關(guān)機(jī),各種發(fā)行版安裝與卸載的老司機(jī),我覺(jué)得我有必要站出來(lái)為大家安利一下Arch Linux了。
發(fā)表于 09-21 16:15
?0次下載
![<b class='flag-5'>Arch</b> <b class='flag-5'>Linux</b>教程詳解](https://file.elecfans.com/web2/M00/49/D3/pYYBAGKhvGWALu6HAAAVY8u0WB8717.png)
Arch Linux 有何優(yōu)缺點(diǎn)?
Arch Linux 于 2002 年發(fā)布,由 Aaron Grifin 領(lǐng)頭,是當(dāng)下最熱門(mén)的 Linux 發(fā)行版之一。從設(shè)計(jì)上說(shuō),Arch Lin
需要了解的Linux的IRQ中斷子系統(tǒng)
在Linux中斷子系統(tǒng)(generic irq)出現(xiàn)之前,內(nèi)核使用__do_IRQ處理所有的中斷,這意味著__do_IRQ中要處理各種類型的中斷
發(fā)表于 05-10 10:56
?1485次閱讀
Linux中斷(interrupt)子系統(tǒng)之一:arch相關(guān)的硬件封裝層
Linux的通用中斷子系統(tǒng)的一個(gè)設(shè)計(jì)原則就是把底層的硬件實(shí)現(xiàn)盡可能地隱藏起來(lái),使得驅(qū)動(dòng)程序的開(kāi)發(fā)人員不用關(guān)注底層的實(shí)現(xiàn),要實(shí)現(xiàn)這個(gè)目標(biāo),內(nèi)核的開(kāi)發(fā)者們必須把硬件相關(guān)的內(nèi)容剝離出來(lái),然后定義一些列標(biāo)準(zhǔn)的接口供上層訪問(wèn),上層的開(kāi)發(fā)人
發(fā)表于 05-13 10:48
?856次閱讀
Manjaro和Arch Linux有什么區(qū)別
Manjaro 還是 Arch Linux?如果說(shuō) Manjaro 是基于 Arch 的,那么它和 Arch 又有什么不同呢?請(qǐng)?jiān)谶@篇比較文章中閱讀
更容易設(shè)置和使用的基于Arch的Linux發(fā)行版
事實(shí)上,只是最開(kāi)始的步驟,安裝 Arch Linux 就足以把很多人嚇跑。與大多數(shù)其他發(fā)行版不同,Arch Linux 沒(méi)有一個(gè)易于使用的圖形安裝程序。安裝過(guò)程中涉及到的磁盤(pán)分區(qū),連接
Arch Linux 系統(tǒng)遷移的詳細(xì)介紹
鏡像下載、域名解析、時(shí)間同步請(qǐng)點(diǎn)擊 阿里巴巴開(kāi)源鏡像站 備份 Arch Linux 系統(tǒng) 安裝 pigz 使用 pigz 多線程壓縮比使用 tar 單線程壓縮速度明顯提升多倍 sudo pacman
發(fā)表于 12-16 11:15
?916次閱讀
從軟件角度分析linux內(nèi)核USB子系統(tǒng)的熱插拔過(guò)程
本文從軟件角度分析linux內(nèi)核USB子系統(tǒng)的熱插拔過(guò)程,以實(shí)際分析思路和過(guò)程行文,基于linux內(nèi)核版本:4.19.4,記錄
龍架構(gòu)Arch Linux發(fā)行版正式發(fā)布
近日,龍架構(gòu)Arch Linux發(fā)行版官方網(wǎng)站宣布結(jié)束beta狀態(tài),正式支持龍架構(gòu)。Arch Linux是一種輕量級(jí)、可定制、靈活的Linux
Linux Led子系統(tǒng)代碼框架分析
代碼框架分析 led-class.c (led 子系統(tǒng)框架的入口) 維護(hù) LED 子系統(tǒng)的所有 LED 設(shè)備,為 LED 設(shè)備提供注冊(cè)操作函數(shù): led_classdev_regist
Linux中斷子系統(tǒng)硬件架構(gòu)
中斷子系統(tǒng)硬件架構(gòu) 一個(gè)完整的設(shè)備中,與中斷相關(guān)的硬件可以劃分為3類,它們分別是:設(shè)備、中斷控制器和CPU本身。 設(shè)備:設(shè)備是發(fā)起中斷的源,
![<b class='flag-5'>Linux</b><b class='flag-5'>中斷</b><b class='flag-5'>子系統(tǒng)</b>硬件架構(gòu)](https://file1.elecfans.com/web2/M00/A6/75/wKgaomUVGAuAEYUbAAFQwGN1mwY236.jpg)
評(píng)論