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