QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 3048|回复: 2

为什么linux将中断向量拷贝到0xffff0000?

[复制链接]
发表于 2007-6-25 13:44:56 | 显示全部楼层 |阅读模式
看linux2.6的代码,发现在traps_init()函数中,将中断向量表拷贝到了0xffff0000处,而ARM资料上说,系统发现中断后是自动跳到0x0地址去的,那么为什么linux不把中断向量表拷贝到0x0处,而要拷贝到0xffff0000处呢?
发表于 2007-8-14 10:18:14 | 显示全部楼层
ARM supports two exception address: 0x0000_0000(normal address) and 0xffff_0000(high vector address), up to CP setting.
    After MMU is enabled, 0x0000_0000 locates in user sapce, so we should set it to 0xffff_0000 which is in kernel space.
回复

使用道具 举报

 楼主| 发表于 2007-8-24 09:09:26 | 显示全部楼层
为什么0x0000_0000成了用户空间了?ARM遇到异常后是要跳到0x0000_0000处找异常响亮表的,如果我们把中断响亮表拷贝到别处,那ARM遇到异常后怎么办?ARM怎么会跳到0xffff_0000处找异常响亮表呢?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-3-29 21:16 , Processed in 0.334803 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表