在Eclipse IDE 环境下使用Lauterbach公司的TRACE32调试工具
当需要使用Trace32软件调试多个Eclipes项目是,可以把选项:“Use this launch for all projects”, 选上,就可以实现多个项目在同一个Trace32应用实例软件内的调试。LauterbachTrace32提供的Eclipse插件同样可以支持对多内核系统的调试, 具体配置请参考文档:
本文引用地址://m.amcfsurvey.com/article/114291.htmhttp://www.lauterbach.com/eclipse/doc/int_eclipse.pdf.
这样通过Lauterbach提供的Trace32 Eclipse插件,就可以扩展许多的新的功能属性,例如:从Eclipse启动配置中启动Trace32调试软件,支持多项目/多核的调试,同步Eclipse IDE 和TRACE32软件中的断点,从Trace32调试软件界面中调用/打开原代码文件或者反之依然等。接下来我们将以实际的项目来介绍
这些方便而强大的功能。
三:使用实例
1. 创建嵌入式系统应用程序
在Eclipse IDE环境下,我们可以很方便的创建各种工程,也可以根据需要选择不同的编译器和连接器。用户可以使用相同的GUI编辑不同的应用程序, 配置完成后,我们只需要点击“build”按钮就可以生成我们所需要的可执行文件。接下来我们要做的就是运行和调试该可执行程序。
2. 运行和调试可执行程序
要运行可执行程序,就需要把可执行程序下载到目标系统上才可以运行和调试. 通常情况下有两种方式,一种是通过LauterbachTrace32硬件连接用户的目标板, 另外一种方式是利用Lauterbach Trace32软件仿真功能. 也可以通过Lauterbach Trace32软件直接连接用户的原型软件,使得用户早期程序开发和芯片设计并行进行.配置完成后,这些操作都可以通过在Eclipse IDE 界面中一键完成.所有这些情况都可以配置成一键操作模式,对用户来讲是完全透明的概念. 只需要执行/点击”Debug”按钮,就可以启动Trace32调试界面.并且跳到用户希望的程序状态.
3. 断点同步机制
Eclipse Trace32插件一个重要的应用就是可以提供同步断点, 该断点同步机制允许用户在Eclipse的编辑窗口中编辑程序的时候设置断点.但因为Eclipse的编辑器只能识别原代码,无法识别内存地址,汇编指令等,所以同步断点限于高级语言程序断点的概念。和Trace32软件类似, 任何设置在没有执行指令的原代码行的断点,都将自动设定到下一带有执行指令的原程序行。例如在如下代码的第一行设置的断点,会自动被转移当第三行代码的地址上。
1: #define DOO 1
2: #define FOO “hello.c”
O 3: int main(int argc, char** argv)
同步断点显然可以为工程师提供了极大的方便,因为工程师可以在自己熟悉的编辑软件环境下,在编写代码的同时在需要的地址上设置断点,并且利用编辑软件的专业属性可以很快捷的找到所需代码或函数/变量的位置。即时在编辑窗口中的修改和调整代码,提高程序调试的效率。 但是在如下两种情况下,当研发人员在Eclips代码编辑窗口中设置断点时,就会出现断点设置或者无法识别符号信息等错误。
1. 目标板系统在被正常初始化完成之前(例如:片选寄存器,时钟,堆栈等)。
2. 符号表信息被加载之前。
针对这些特殊情况的需求,Lauterbach 提供了专用的命令:
setup.breaktransfer [on | off] default: OFF
该命令可以默认是关闭的状态,所以需要在脚本中或手动的输入命令激活该属性,在该属性激活之前,没有断点会被同步转换,但是却也可以在Eclipse的编辑窗口中设置断点,Eclipse IDE会把断点都记录下来,在条件满足的情况下,一旦该属性被打开,立刻就会被同步转换到Trace32调试软件环境中。请参考如下的实例脚本:断点转换的属性一开始是关闭的状态,在经过必要的目标系统初始化和符号表加载之后,再打开断点同步转换的属性。以保证编辑窗口和调试窗口信息的正确结合。
评论