用MDK调试AXF文件
//=====================================================================
//TITLE:
// 用MDK调试AXF文件
//AUTHOR:
// norains
//DATE:
// February 21-September-2010
//Environment:
// KEIL MDK 4.0
//=====================================================================
AXF是ARM芯片使用的文件格式,它包含bin代码外,还包括了调试信息。无论是用RVDS,还是MDK,都能够产生该文件。
如果你使用的开发工具是MDK,那么你还能根据生成的AXF和源文件来进行调试。看到这里可能有些朋友应该会觉得奇怪,如果有了源代码,那为何不直接新建一个工程,然后添加这些源文件,直接生成AXF不来得更为简单些么?这种方式也是可以,但前提条件是你知道相应的编译参数以及拥有全部的源代码。打个比方,有个AXF文件,它是由A.CPP和B.CPP生成的,然而别人只给了你B.CPP的源代码,让你调试里面的某个函数,那么这种新建工程进行AXF文件编译的方式就行不通了。
不过,这难不倒我们。只要有了相应的AXF文件,就能调试残缺的源代码。不信?一直往下看吧!
首先,在MDK里面新建一个工程,这个大家都知道了,如图:
接着选择和当前所需要调试的AXF相同的CPU类型,如图所示:
接着,会提示是否添加启动代码,这里主要,要选择“否”,如图:
接着在依次点击Project->Options For Target,然后选择Output这个标签,如图:
接着呢,就点击“Select Folder For Objects…”选择AXF文件所存放的目录。这里有个问题,就是路径不能直接复制然后点击OK,而是要通过对话框上的按钮一步一步来进行选择。也许这个是我所使用的MDK版本的bug,如果各位朋友所用的MDK不存在该问题,直接复制相应的目录即可。该对话框进行选择如图所示:
要调试的AXF文件,我们还需要手动设置。这个需要在“Name Of Execute”方框中输入相应的文件名,如图所示:
一切准备就绪之后,就可以点击Debug按钮开始调试了。如果AFX文件没有任何错误的话,那么就调试时就会出现如下的界面:
不过这里显示的是汇编级的代码,对于习惯于C/C++的朋友而言,可能有点不适应。那么有什么办法可以将AXF文件和CPP文件相关联起来呢?关联的方式很简单,想关联什么文件,就直接点击File->Open进行打开。这时候,再开始调试的时候,就能发现原来汇编下面的空白处,此时已经有对应的CPP文件打开,如图所示:
这时候,我们就能够根据左边寄存器的信息以及源代码来做一定程度上的调试了。