作者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