[ZLG-ARM] 请问AXD+HJTAG调试问题

[复制链接]
 楼主| sayhi2008 发表于 2007-8-31 14:08 | 显示全部楼层 |阅读模式
调试2148单片机<br />ADS编译生成的axf文件大于32K,但是bin文件远小于32K,请问这种情况下还可以使用AXD+HJTAG在SRAM(32K)中调试程序吗?
zlgARM 发表于 2007-9-1 16:36 | 显示全部楼层

sayhi2008

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

AXD+HJAG调试问题

谢谢您的答复。<br />我也是这么认为的,可是我编译生成的代码(axf)为40K,scatter定位到SRAM里面,使用AXD+HJTAG确实能调试,编译生成的代码大小见贴图。感觉很是奇怪,怀疑使用AXD&nbsp;Load到SRAM里面的不是全部的axf文件。
zlgARM 发表于 2007-9-4 09:19 | 显示全部楼层

Re

您好:<br />&nbsp;&nbsp;非常抱歉,我没有经过仔细考虑,就说“大于存储器空间的axf文件一定无法调试”。现更正如下:<br />
 楼主| sayhi2008 发表于 2007-9-4 10:28 | 显示全部楼层

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

很详细,谢谢!<br />钦佩您做事情的认真态度
您需要登录后才可以回帖 登录 | 注册

本版积分规则

16

主题

40

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部