TRACE32的常用命令和调试技巧 下载本文

内容发布更新时间 : 2024/11/19 7:26:07星期一 下面是文章的全部内容请认真阅读。

2. 源代码调试

在编译源码的时候,编译成 ( 加 -g 选项 )debug 版本的目标文件(可以是 axf/elf 等格式),用 TRACE32 就可以直接进行源代码调试了。 TRACE32 几乎支持所有的编译器的编译文件,具体格式参见 TRACE32 的帮助。 axf/elf 等编译文件也叫符号文件,即在文件中把源码的符号表(函数 / 变量等)保存下来了,供调试时使用,但里面的符号表只是起定位作用,在调试时还需要有目标源代码,否则只能进行汇编级调试, TRACE32 支持把机器码反汇编成汇编语言进行调试,而且不需要目标文件支持, TRACE32 可以自动从 FLASH/RAM 中读取机器码,然后反汇编成汇编代码。

通过 data.load 命令把符号表文件 (.elf 等 ) 下载到目标机器上,指定源代码路径,就可以进行代码调试。

data.load.elf E:\\source\\test.elf /PATH E:\\source

3. 死机定位方法

在调试产品时会碰到设备死机的情况,如下在调试过程中出现问题,可以很方便的用

TRACE 来查看问题;但如果是设备在正常运行时(没有接 JTAG 调试)出现问题或死机就比较难定位问题了;这里可以通过 TRACE32 的 attach 功能来进行调试,如下: l 把出问题的机器和 TRACE32-ICD 连接好(连接 JTAG ,测试机器需先预留 JTAG 口),然后开启 TRACE32 ,设置好 CPU 类型,使用 sys.attach 命令就可以让 TRACE32 和问题机器连接上了,正常连接后, system 的状态就变成了 running 或 up 。 l 接下来可以就可以直接进行汇编级调试了。

l 但一般情况下,汇编级调试很难定位问题,需要进行源码级调试,可以按如下操作进行:先把 TRACE32-ICD 和一个同问题机器同类型的机器连接好,然后把符号表文件( .elf 文件等)下载(通过 data.load 命令)到好的机器上,然后再把 JTAG 线从好的机器上拔下,连接到问题机器上;然后再用 sys.attach 命令让 TRACE32 和文件机器连上,这样就可以进行源码级调试了。

如果不想这么麻烦,也可以这样操作,连接好 TRACE32-ICD 和问题机器,打开 TRACE32 软件,此时 system 的状态为“ system down ” , 然后通过“ data.load ”命令下载符号表文件 (.elf 等 ) ,由于 system 状态为 down , TRACE32 会提示没有符号表文件没有下载成功,不用管它,因为虽然没有下载到问题机器的 RAM 上,但符号表文件已经下载到 TRACE32 上了;然后再通过 sys.attach 命令让 TRACE32 和问题机器关联上,这样就可以进行源码级调试了