免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2914 | 回复: 4
打印 上一主题 下一主题

u boot引导操作系统的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-12-06 13:08 |只看该作者 |倒序浏览
CPU: s3c2410
编译环境:Linux + gcc
问题条件:
在以2410为CPU的开发板上用uboot来load OS(Linux或其它),启动方式为从Norflash启动。
问题描述:
在以Norflash启动的时候,Norflash被映射到2410的0开始的地址,而在uboot中在norflash的这个地址处

放的是中断向量表,在中断发生的时候硬件会自动跳转到相应地址处去跳转到相应中断处理函数。可是当

uboot将OS 启动起来之后,整个控制就转到了OS那边,中断处理的时候应该会需要OS中的中断处理函数,

而这个时候Norflash占用的地址0开始的地址区域,所以每次中断发生时都会跳转到uboot所在的中断向量

表,这种情况是怎么跳转到OS的中断处理函数的??

希望哪位大侠能不吝赐教。

论坛徽章:
0
2 [报告]
发表于 2010-12-06 16:50 |只看该作者
OS有自己的IVT,存放在RAM里面0x00000000开始的地方(ARM)

论坛徽章:
0
3 [报告]
发表于 2010-12-06 18:57 |只看该作者
回复 2# garyv


可是RAM一般并不是挂在2410的bank0上面的,它的地址0应该并不是2410的地址0,我想它的IVT应该不能够映射到Norflash所占用的bank0的地址处(因为
Norflash的这个地址被Uboot占着),而ARM的架构好像只能够跳转到BANK0的地址0的IVT上(不确定是否一定这样)。
是不是有可能这样,在2410中有一块4K的内部RAM用于从NAND flash启动时的自动下载数据,OS有没有可能在启动之后将自己的向量表放到了这4K的区间,然后
将这4K的区间映射到了BANK0?这个我也不清楚,希望这个帖子能给一个比较解答,也算抛砖引玉吧。

论坛徽章:
0
4 [报告]
发表于 2010-12-07 12:31 |只看该作者
你忽略了MMU

论坛徽章:
0
5 [报告]
发表于 2010-12-17 16:48 |只看该作者
回复 1# torresliang


    中断矢量表并非一定在 0 地址。在开了mmu 之后,linux的中断矢量表放在了 0xffff0000 的位置上。详情见 arm 的mmu section
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP