找回密码
 注册
搜索
查看: 481|回复: 2

scatter映射:加载域时的数据搬移?

[复制链接]
发表于 2010-3-7 16:56:56 | 显示全部楼层 |阅读模式
  平日里对scatter映射也就是了解个大概意思,简单的应付一些项目需求是够用了,但是往细里分析,就不灵了,在这里向这方面有深刻见解的TX请教一下,我这里有一个疑问:

  以NORFlash+PSRAM的配置为例,已知的是,加载(load)时RO+RW都是存放在ROM中的,运行(run)时,RW被拷贝到PSRAM中,scatter文件就具体的反映出了运行(run)时RO、RW的实际存放位置。而我想了解的是加载(load)时RO、RW的存放次序是如何的?比如说,我可以用scatter文件来限定运行(run)时RO、RW的具体存放地址,

  ROM

  A.o(+RO)

  B.o(+RO)

  RAM

  A.o(+RW)

  B.o(+RW)

  那么,加载(load)时RO、RW的存放地址是不是存在两种可能:

  第一种情况:

  ROM

  A.o(+RO)

  B.o(+RO)

  A.o(+RW)

  B.o(+RW)

  第二种情况:

  ROM

  A.o(+RO)

  A.o(+RW)

  B.o(+RO)

  B.o(+RW)

  我对加载(load)时的理解是bin下载到NORflash中但是系统尚未启动前的状态,如果加载(load)时的存放地址如同第一种情况所示,那么运行(run)时ROM中的RO数据就无需搬移了,而如果是第二种情况所示,那么运行(run)时ROM中的RO数据还需要再搬移一次,将B.o的RO数据搬移到A.o的RW数据的地址处,因为要满足运行(run)时A.o和B.o的RO数据相连续的定义。

  以上就是我的理解和疑问,运行(run)时RO、RW的数据存放地址可以由SCATTER文件来定义,加载(load)时RO、RW的数据存放地址是如何决定的呢?

  嗨,半瓶子醋的我也不知说没说清楚,还请TX不吝赐教,谢谢!

  
发表于 2010-3-9 19:56:06 | 显示全部楼层
关注ing
点评回复

使用道具 举报

发表于 2010-5-13 18:09:05 | 显示全部楼层
第一,第二种情况都不需要搬移。不会有连续性,如果a.o调用了b.o,将会地址跳转过去执行的。
点评回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

Archiver|手机版|小黑屋|52RD我爱研发网 ( 沪ICP备2022007804号-2 )

GMT+8, 2024-10-7 17:26 , Processed in 0.045879 second(s), 16 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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