打印

关于scatter文件和系统初始化的问题

[复制链接]
3178|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
luocolor|  楼主 | 2007-1-18 00:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
查过资料后,大概理解了scatter文件,以及执行域,加载域的知识。但又出现了一个问题:

在scatter文件中,有


ROM_LOAD 0x7F000000
{
    ROM +0
    {
        init.o (Init, +First) 
     ......
        
    }
    RAM 0x0
    {
        vectors.o(Vect, +First)
        ......
    }

}

另外,在init.s中需要完成flash和sdram的remap,remap后flash地址为0x7F000000,而sdram是0x0.在

remap之前,flash是0x0.
问题就来了,linker生成一个.bin的文件,这个文件的加载域从0x7F000000开始,而这个地址在开始运行

init.s之前又不是flash的地址.这中间似乎有一个是先有**还是先有蛋的问题!

即:在开始运行init.s后地址0x7F000000才有效,而在这之前,又需要这个地址来定位init.s生成的init.o

我应该是哪里没有理解清楚,多谢各位dx指点.

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

40

主题

105

帖子

0

粉丝