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

[复制链接]
 楼主| luocolor 发表于 2007-1-18 00:33 | 显示全部楼层 |阅读模式
查过资料后,大概理解了scatter文件,以及执行域,加载域的知识。但又出现了一个问题:<br /><br />在scatter文件中,有<br /><br /><br />ROM_LOAD&nbsp;0x7F000000<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;ROM&nbsp;+0<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;init.o&nbsp;(Init,&nbsp;+First)&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;......<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;RAM&nbsp;0x0<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vectors.o(Vect,&nbsp;+First)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;......<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />}<br /><br />另外,在init.s中需要完成flash和sdram的remap,remap后flash地址为0x7F000000,而sdram是0x0.在<br /><br />remap之前,flash是0x0.<br />问题就来了,linker生成一个.bin的文件,这个文件的加载域从0x7F000000开始,而这个地址在开始运行<br /><br />init.s之前又不是flash的地址.这中间似乎有一个是先有**还是先有蛋的问题!<br /><br />即:在开始运行init.s后地址0x7F000000才有效,而在这之前,又需要这个地址来定位init.s生成的init.o<br /><br />我应该是哪里没有理解清楚,多谢各位dx指点.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

40

主题

105

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部

40

主题

105

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部