免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1247 | 回复: 0
打印 上一主题 下一主题

ADS输出调试信息,Image Map和Symbols [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-12-21 08:41 |只看该作者 |倒序浏览

ADS中输出调试信息
clip_image002

Image Map
Symbol
Section cross-reference
在list file中choose一个文件,比如boot270.txt,可以把信息输出到txt中

下面这个输出是subroutprj_2F_DCD的输出,在arm反汇编.doc里。

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

 

Image Symbol Table

 

    Mapping Symbols

 

    Sym    Value        Execution Region

 

    $a     0x00000000   ER_RO

    $d     0x00000020   ER_RO

 

    Local Symbols

 

    Symbol Name                              Value     Ov Type        Size  Object(Section)

 

    E:\dsparm\pxa270\project\subroutprj_2F_DCD\subrout.s 0x00000000   Number         0  subrout.o ABSOLUTE

    <Anonymous Symbol>                       0x00000000   Data          16  subrout.o(.debug_abbrev)

    <Anonymous Symbol>                       0x00000000   Data         128  subrout.o(.debug_info)

    <Anonymous Symbol>                       0x00000000   Data         108  subrout.o(.debug_line)

    subrout                                  0x00000008   ARM Code      36  subrout.o(subrout)

    start                                    0x00000008   ARM Code       0  subrout.o(subrout)

    stop                                     0x00000014   ARM Code       0  subrout.o(subrout)

    Param1                                   0x00000020   Data           4  subrout.o(subrout)

    Param2                                   0x00000024   Data           4  subrout.o(subrout)

    E:\dsparm\pxa270\project\subroutprj_2F_DCD\fun.s 0x00000000   Number         0  fun.o ABSOLUTE

    <Anonymous Symbol>                       0x00000000   Data          60  fun.o(.debug_frame)

    <Anonymous Symbol>                       0x00000010   Data          16  fun.o(.debug_abbrev)

    fun                                      0x00000000   ARM Code       8  fun.o(fun)

    <Anonymous Symbol>                       0x0000006c   Data          96  fun.o(.debug_line)

    <Anonymous Symbol>                       0x00000080   Data         124  fun.o(.debug_info)

 

    Global Symbols

 

    Symbol Name                              Value     Ov Type        Size  Object(Section)

 

    BuildAttributes$$ARM_ISAv4$M$PE$A:L22$X:L11$S22$~IW$~STKCKD$~SHL$OSPACE 0x00000000   Number         0  anon$$obj.o ABSOLUTE

    doadd                                    0x00000000   ARM Code       8  fun.o(fun)

UE查看bin结果

clip_image004

从bin看到,doadd两条指令放在了bin的最前面,这样

start的值value为0x00000008

fun的值value为0x00000000

startfun都是ARM Code,是代码的标号label,标号的值代表一个地址,所以startfunbin中的地址即为它们的值。

Image Symbol Table中包含两部分,Local Symbol和Global Symbol,前者在只能在定义的文件中引用,后者可以在整个工程中引用。在这个工程中后者只有doadd函数。

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

 

Memory Map of the image

 

  Image Entry point : 0x00000000

 

  Load Region LR_1 (Base: 0x00000000, Size: 0x0000002c, Max: 0xffffffff, ABSOLUTE)

 

    Execution Region ER_RO (Base: 0x00000000, Size: 0x0000002c, Max: 0xffffffff, ABSOLUTE)

 

    Base Addr    Size         Type   Attr  Idx  E Section Name        Object

 

    0x00000000   0x00000008   Code   RO     5   * fun                 fun.o

    0x00000008   0x00000024   Code   RO     1   * subrout             subrout.o

 

 

    Execution Region ER_RW (Base: 0x0000002c, Size: 0x00000000, Max: 0xffffffff, ABSOLUTE)

 

    **** No section assigned to this execution region ****

 

 

    Execution Region ER_ZI (Base: 0x0000002c, Size: 0x00000000, Max: 0xffffffff, ABSOLUTE)

 

    **** No section assigned to this execution region ****

Image Entry point : 0x00000000这句话有点问题??!!

    Base Addr    Size         Type   Attr  Idx  E Section Name        Object

 

    0x00000000   0x00000008   Code   RO     5   * fun                 fun.o

    0x00000008   0x00000024   Code   RO     1   * subrout             subrout.o

上面这些说明了各段的基地址,长度,类型(code,data),属性(RO,RW),段名,存在的目标文件。

在这里fun放在了subrout的前面,由于armlinker在链接input section的时候排序sort是有规则的,先同一属性(RO,RW,RI),然后按名字的字母表顺序,由于funsubrout都是RO,所以按名字fun在前面。

 

上面的工程只有RO,怎么才能产生RWRI呢???还在研究中。。。

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP