打印

【求助】请教一个关于ro-base 和 rw-base的问题

[复制链接]
2864|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
weicz|  楼主 | 2011-3-22 14:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我用开发板FL2440 自带bootloader,启动后加载自己编写的应用程序,每次都是按照bootloader参数设置,加载到SDRAM,0x32000000地址处。
不论我在编写自己应用程序时ro-base设置成什么值,都是加载到0x32000000地址,而且,根据手册0x30000000~0x34000000处就是SDRAM
是不是ro-base在这里就不起作用了呢?

如果是这种由bootloader加载程序的运行的形式,是不是ro-base和rw-base的设置就没有意义了?

反过来也就是说ro-base,rw-base的设置是针对没有bootloader或没有操作系统的情况呢?

我主要是想跟清楚的了解一下ro-base,rw-base是怎么在程序加载运行中体现出来的。

谢谢指教!

相关帖子

沙发
xinzha| | 2011-3-22 17:22 | 只看该作者
ro-base和rw-base主要是解决加载域和执行域这些问题的,详细的可以到网上去搜RealView Compilation Tools的Linker and Utilities Guide,其中第五章Using Scatter-loading Description Files对你的问题有非常详细的解答。
ro-base和rw-base都是在使用简单链接模式时用到的命令行参数,而在使用分散加载文件的时候就彻底失去意义,你在程序中自己指定这些值是没用的,只能在链接时修改参数来指定。ARM的链接器在链接后产生的相应变量名分别是Image$$RW$$Base和Image$$RO$$Base 。

使用特权

评论回复
板凳
weicz|  楼主 | 2011-3-22 21:09 | 只看该作者
2# xinzha

好的,非常感谢

使用特权

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

本版积分规则

8

主题

69

帖子

0

粉丝