[ZLG-ARM] LPC2214中的分散加载????

[复制链接]
3771|9
 楼主| longwuyi 发表于 2008-1-19 11:01 | 显示全部楼层 |阅读模式
老大,<br /><br />&nbsp;&nbsp;我不明白的是,很多ARM中设置RO&nbsp;Base和RW&nbsp;Base,还有分散加载文件的作用?<br />&nbsp;<br />&nbsp;&nbsp;谢了&nbsp;<br /><br /><br />
everbird 发表于 2008-1-19 11:11 | 显示全部楼层

A

R0是指你的内存地址<br />RW是指你的程序空间地址<br />分散加载是用文件的形式指定这俩东西,还有就是栈顶的位置。你要是用KEIL编辑的话在&nbsp;linker页里有设置,用分散加载就不需要填写R0RW
zlgarm 发表于 2008-1-19 11:41 | 显示全部楼层

回复:LPC2214中的分散加载????

Longwuyi:您好!<br /><br />1、&nbsp;&nbsp;&nbsp;&nbsp;RO&nbsp;Base和RW&nbsp;Base的地址设置是分别提供给ADS编程器,以进行简单的代码链接定位的;而Scatter描述文件,即分散加载文件,是由用户自己来编写的,它提供了映像文件中各种域和段的分组信息和定位信息,从而ADS集成编译环境中所带的链接器将会根据这些信息生成映像文件地址分区。<br />2、&nbsp;&nbsp;&nbsp;&nbsp;如果用户的工程项目,要求提供比较复杂的地址映射关系描述(比如进行用户Boot程序,栈与堆等定位)给链接器,则要使用Scatter文件。此时则不必再配置RO&nbsp;Base和RW&nbsp;Base。<br />3、&nbsp;&nbsp;&nbsp;&nbsp;更多的技术细节,请参考ADS或别的集成开发环境下的英文用户手册。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;By&nbsp;zlgarm_wgg<br />
biao.l 发表于 2008-1-21 15:51 | 显示全部楼层

RE

RO&nbsp;BASE只读代码起始地址<br />RW&nbsp;BASE有初始值变量起始地址<br />分散加载只是把为各项指定一个地址
zlgarm 发表于 2008-1-21 16:02 | 显示全部楼层

longwuyi

您好!<br />&nbsp;&nbsp;&nbsp;&nbsp;在这里需要作解释,一般情况下,我们不会对分散加载相关的问题进行技术支持,敬请谅解。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;By&nbsp;&nbsp;&nbsp;zlgarm_ltt&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
starli21 发表于 2008-1-23 10:44 | 显示全部楼层

分散加载的程序,哪位高手讲解一下

ROM_LOAD&nbsp;0x80000000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;ROM_EXEC&nbsp;0x80000000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Startup.o&nbsp;(vectors,&nbsp;+First)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;(+RO)<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;IRAM&nbsp;0x40000040&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Startup.o&nbsp;(MyStacks)<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;STACKS_BOTTOM&nbsp;+0&nbsp;UNINIT<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Startup.o&nbsp;(StackBottom)<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;STACKS&nbsp;0x40004000&nbsp;UNINIT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Startup.o&nbsp;(Stacks)<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;ERAM&nbsp;0x81000000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;(+RW,+ZI)<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;HEAP&nbsp;+0&nbsp;UNINIT<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Startup.o&nbsp;(Heap)<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Startup.o&nbsp;(HeapTop)<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}
starli21 发表于 2008-1-23 10:47 | 显示全部楼层

这一小段程序看了我两天

快把2214的Datasheet看光了.也没整明白,<br /><br />还时不时的参看汇编手册,<br /><br />完全迷糊,&nbsp;&nbsp;<br /><br />相信周工不提供技术支持一定有他的道理,,&nbsp;<br /><br /><br />&nbsp;如果哪位高手路过就帮忙指点一下吧..给本书名让我看也行啊
dld2 发表于 2008-1-23 11:05 | 显示全部楼层

re:

ARM体系结构与编程<br />网上有下。<br />链接器部分。<br /><br />分散加载文件就是把不同的程序段定位在不同的位置。<br />比如代码放在FLASH里,数据放在RAM里,之类。
definitely 发表于 2009-10-19 17:31 | 显示全部楼层
您好!    在这里需要作解释,一般情况下,我们不会对分散加载相关的问题进行技术支持,敬请谅解。              &nbs ...
zlgarm 发表于 2008-1-21 16:02


不支持啊?难怪!
synics 发表于 2009-10-24 20:05 | 显示全部楼层
呵呵,真是奇怪了。用ARM的却不看基础
您需要登录后才可以回帖 登录 | 注册

本版积分规则

40

主题

61

帖子

0

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