核心初始化

2022-03-14 05:07:17 字數 1082 閱讀 5326

異常處理

總共有七中的異常情況:

1:reset

2:undefined instruct

(不支援命令異常)

3:軟體中斷

4:指令預取失敗異常

5:資料讀取失敗異常

6:中斷

7:快速中斷(比一般的中斷處理速度快一些)

中斷向量:

當中斷發生時,處理器就會跳轉到乙個固定的位址去處理指令

.globl _start 

_start: b reset 

ldr pc, _undefined_instruction 

ldr pc, _software_interrupt 

ldr pc, _prefetch_abort 

ldr pc, _data_abort 

ldr pc, _not_used 

ldr pc, _irq 

ldr pc, _fiq 

_undefined_instruction: .word undefined_instruction 

_software_interrupt: .word software_interrupt 

_prefetch_abort: .word prefetch_abort 

_data_abort: .word data_abort 

_not_used: .word not_used 

_irq: .word irq 

_fiq: .word fiq

undefined_instruction:

nopsoftware_interrupt:

nopprefetch_abort:

nopdata_abort:

nopnot_used:

nopirq:

nopfip:

nop注:

.word expression就是在當前位置放乙個word型的值,這個值就是expression.這裡為什麼不用指令(ldr pc,=inddefined_instruction ),是因為使用這條指令會增加指令執行週期,從而比較耗時,但是對於bootloader 來時說時間是很重要的資源

linux核心初始化

1 系統的引導和初始化 linux 系統的引導有好幾種方式 常見的有 lilo,loadin引導和linux的自舉引導 bootsect loader 而後者所對應源程式為arch i386 boot bootsect.s,它為實模式的匯程式設計序,無論是哪種引導方式,最後都要跳轉到 arch i3...

核心初始化優化巨集 ,初始化順序, init,

來自 http www.17xie.com read 54054.html 核心使用了大量不同的巨集來標記具有不同作用的函式和資料結構。如巨集 init devinit 等。這些巨集在include linux init.h 標頭檔案中定義。編譯器通過這些巨集可以把 優化放到合適的記憶體位置,以減少...

核心初始化優化巨集 ,初始化順序, init,

核心使用了大量不同的巨集來標記具有不同作用的函式和資料結構。如巨集 init devinit 等。這些巨集在include linux init.h 標頭檔案中定義。編譯器通過這些巨集可以把 優化放到合適的記憶體位置,以減少記憶體占用和提高核心效率。下面是一些常用的巨集 init 標記核心啟動時使用...