看板 LinuxDev 關於我們 聯絡資訊
就是我剛開始接觸bootloader 看到bootloader最前面都會有中斷向量表 但這些中斷向量似乎都沒有用到 因為一開始就 b reset 然後我又看了 這些中斷卻又真的有實作 那這些中斷是什麼時候被用到呢? ps.請問這些中斷與entry-armv.S 這裡有關聯嗎 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 180.177.75.78
hn12303158:一開始就b reset是因為只要你的機器一上電或是開關復位 08/26 13:37
hn12303158:就算是一種中斷, 其他中斷向量的用途當然是等到中斷控 08/26 13:39
hn12303158:制器發送中斷訊號再予以觸發 08/26 13:40
i386:cpu發生exception的時候就會用到了... 08/26 15:30
stellvia7:我要問的是這些中斷處理怎麼被mapping到kernel裡面 08/27 20:35
stellvia7:因為bootlader stage2 load kernel to ram 之後 08/27 20:36
stellvia7:不就relase了 那 bootloader裡面定義的中斷跟kernel有 08/27 20:36
stellvia7:有什麼關聯? 08/27 20:36
askacis:以ARMx來說,放向量表的位址是固定的... 08/28 01:27
askacis:kernel會搬移向量表放在0xFFFF0000,可參考trap_init() 08/28 01:41
askacis:以你的問題來說,uboot跟kernel兩邊的中斷向量不是同一個~ 08/28 01:51
askacis:至於一開始就b reset是因為ARM上電後的第一條指令位址是0 08/28 01:54
askacis:一個32bit的位址當然放不下所有的reset指令,所以只能存 08/28 01:55
askacis:一條指令叫b reset,跳轉到別的地方去初始化~ 08/28 01:56
i386:補充一下,cpu上電後第一條指令並不一定都在0x0,這是可以在 08/28 22:30
i386:ic設計時去決定的... 08/28 22:30