ADS中Image$$RO$$Limit之类的数是怎么算的?

最近在看优龙270的bootloader——boot270,这个bootloader只能既能boot wince也能boot linux,是英特尔自己写的,优龙修改的。

boot270里面跟uboot一样也要进行内存搬移,搬移的时候就需要用到Image$$RO$$Limit之类的数据。

带$$的变量是ADS的保留变量,在ADS link guide中能够看到,在源文件中是没有的,好像在link的时候产生的。
看了网上讲的关于Image$$RO$$Limit怎么算的文章:

http://z86k.blog.163.com/blog/static/90796156201002511040829/

网上大部分是这个版本

 

说是:

|Image$$RO$$Base| = Image entry point = 0x0c100000 ;表示程序代码存放的起始地址 |Image$$RO$$Limit|=程序代码起始地址+代码长度+1=0x0c100000+Tatal RO size+1

 

我的Image entry point = 0xA000 0000

 

代码编译情况:

      Code    RO Data    RW Data    ZI Data      Debug  

     57960     155433       4722       9699     250684   Grand Totals

======================================================

    Total RO  Size(Code + RO Data)               213393 ( 208.39kB)
    Total RW  Size(RW Data + ZI Data)             14421 (  14.08kB)
    Total ROM Size(Code + RO Data + RW Data)     218115 ( 213.00kB)

======================================================

 

按上面的方法计算的话应该是(218115d = 0x35403):

0xA000 0000+0x3 5403+1=0x0xA003 5404

 

但是我在工程的输出Image Symbol Table中看到:

    Global Symbols

    Symbol Name               Value            Ov Type        Size  Object(Section)

    Image$$RO$$Limit        0xa00341b4   Number         0      anon$$obj.o ABSOLUTE
    Image$$RW$$Base       0xa2000000   Number         0       anon$$obj.o ABSOLUTE

 

说明Image$$RO$$Limit=0xa00341b4,这与上面计算的结果不符合,不知道到底哪个正确?

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值