打印
[ZLG-ARM]

请问AXD+HJTAG调试问题

[复制链接]
2486|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
sayhi2008|  楼主 | 2007-8-31 14:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
zlgARM| | 2007-9-1 16:36 | 只看该作者

sayhi2008

您好!
    在ADS下,可执行文件有两种,一种是.axf文件,带有调试信息,可供AXD调试工具使用.另一种是.bin文件,可执行的二进制代码文件。
    bin文件有许多不同含义。比如虚拟光驱使用的镜像文件有bin格式的,单片机生成的目标文件也有bin格式的,BIOS也有用它的。
    以单片机为例,它可以生成BIN格式的目标文件,在这种情况下,BIN文件就是程序的机器码。
    所以,在这里,你要搞清楚bin文件的含义,就需要理解以下知识点:
    1:汇编代码通常(不是全部)就是机器指令的助记符;
    2:所以机器代码和汇编语言源程序几乎一一对应的。 (汇编语言还包括伪指令,伪指令这部分则不一定和机器码一一对应。)
    3:自己动手,深入研究具体细节——用Debug功能调试源程序,观察生成的汇编代码和机器码,再去打开bin文件来对比。
    axf文件即ARM EXECUTABLE FILE。在ADS里,源代码一般就被编译为axf文件进行调试(编译后,会在目标代码文件夹里生成AXF文件)。
    bin文件不能用于调试,而只能用于运行。
    如果axf文件大于SRAM空间,肯定是调不了的;但小于SRAM空间也未必可以调试(若SRAM的大小不能满足代码里变量对内存的需求)。
    
相关链接:http://thns.tsinghua.edu.cn/thnsebooks/Program%20Technology/File%20Format%

使用特权

评论回复
板凳
sayhi2008|  楼主 | 2007-9-3 08:13 | 只看该作者

AXD+HJAG调试问题

谢谢您的答复。
我也是这么认为的,可是我编译生成的代码(axf)为40K,scatter定位到SRAM里面,使用AXD+HJTAG确实能调试,编译生成的代码大小见贴图。感觉很是奇怪,怀疑使用AXD Load到SRAM里面的不是全部的axf文件。

使用特权

评论回复
地板
zlgARM| | 2007-9-4 09:19 | 只看该作者

Re

您好:
  非常抱歉,我没有经过仔细考虑,就说“大于存储器空间的axf文件一定无法调试”。现更正如下:

使用特权

评论回复
5
sayhi2008|  楼主 | 2007-9-4 10:28 | 只看该作者

回复主题:请问AXD HJTAG调试问题

很详细,谢谢!
钦佩您做事情的认真态度

使用特权

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

本版积分规则

16

主题

40

帖子

1

粉丝