第二十九期 Linux核心的異常(1)

2021-10-05 20:34:20 字數 730 閱讀 8666

上一章中我們介紹了與arm64體系中的異常與中斷。這一期我們將介紹linux 4.19核心中的異常向量表。

上一期中我們提到,異常向量被儲存在異常向量表中。在 /openeuler/kernel/blob/kernel-4.19/arch/arm64/kernel/entry.s 檔案中我們可以找到定義異常向量表的彙編**:

以上異常向量表共16項並被分為四組,每組包含四項並對應不同的異常處理情形。這四組表項從上到下對應的四種情形分別是[1][2]:

其中kernel_ventry的定義在同乙個檔案中可以找到:

該巨集的輸入是當前異常級別el、跳轉入口位址label和暫存器寬度regsize;暫存器寬度用來標識執行狀態,regsize = 64標識aarch64執行狀態,regsize = 32標識aarch32執行狀態。.align 7表示把下一條指令對齊到27byte。該巨集的主要作用是跳轉到label所對應的位址處。

本期我們介紹了linux 4.19核心的異常向量表,下一期我們將介紹linux 4.19核心的異常處理。

參考文獻

[1]

[2] 《linux核心深度解析》,余華兵著,2019

第二十九天

字元陣列和字元指標不是一回事 1字元陣列由若干個元素組成,每個元素中放乙個字元,而字元指標變數中存放的是位址 字串第乙個字元的位址 決不是將字串放到字元指標變數中。2賦值方法不同,對字元陣列只能對各個元素賦值,不能用以下辦法對字元陣列賦值。char str 20 str miao 字元指標變數,可以...

2018 06 04 第二十九天

class testhashset static void main string args println person println person println set int age int hashcode println person.hashcode int prime 31 boo...

2018 9 13第二十九次筆記

一.暫存器 1.暫存器是硬體,它其實就是乙個開關,當用編寫好的 去操作外設時,軟體是實現不了外設的,最終實現功能的還是靠硬體,暫存器就是這樣實現軟體功能的硬體。暫存器是cpu的硬體設計者制定的。2.使用軟體程式設計控制某乙個硬體,其實就是程式設計讀寫該硬體的暫存器。3.暫存器分為通用暫存器和特殊暫存...