TRACE32调试技巧
来源:互联网 发布:mac蓝牙鼠标连接方法 编辑:程序博客网 时间:2024/06/03 09:27
1.调试步骤
l 连接好TRACE32-ICD和目标板,注意不要带电插拔JTAG,容易损坏TRACE32或目标板,然后依次打开TRACE32-ICD和目标板的电源。
l 开启调试软件TRACE32
l 设置CPU类型,状态等,可以通过命令或菜单,命令如下:
sys.reset
sys.CPU ARM7TDMI;这里设置CPU类型
sys.up ;启动调试,如果正常的话,状态为system.ready;否则会报错,需要检查CPU设置是否正确,TRACE32和目标板的连接和电源是否正常
如果调试正常启动后,就可以下载编译好的文件(可以是.elf、.binary等文件)到RAM或FLASH中调试了
l 下载编译文件,命令如下:
data.load.elfE:/source/test.elf /PATH E:/source
这里的/PATH选项是用来指明源代码的路径,在调试时TRACE就可以查找到源代码了。这里TRACE会根据.elf文件里包含的目标代码起始地址加载到RAM的对应地址上,也可以指定加载到RAM的地址,但须和编译时的设置一致,否则程序不能正常运行。
注:TRACE也可以把编译目标文件烧录到flash中进行调试,需要使用flash烧录相关命令,这里就不详述了。
l 然后就可以设置断点进行调试了,如:
break.set 0x0c008000
TRACE32的断点有两种,一种是硬件断点(在FLASH中的断点),另一种是软断点(在RAM中的断点);硬件断点需要CPU的支持,如ARM7最多只支持2个硬件断点,如果使用了软断点的话,就只能使用一个硬断点了;而软断点没有限制,可以设置很多个。
注:在TRACE32中,如果要使用硬件断点,需要先设置好FLASH内存映射范围,如下命令:
Map.bonchip0x0000--0xfffff ;具体范围根据目标板FLASH的范围设置
l 设置好断点就可以正常调试了。
2. 源代码调试
在编译源码的时候,编译成(加-g选项)debug版本的目标文件(可以是axf/elf等格式),用TRACE32就可以直接进行源代码调试了。TRACE32几乎支持所有的编译器的编译文件,具体格式参见TRACE32的帮助。axf/elf等编译文件也叫符号文件,即在文件中把源码的符号表(函数/变量等)保存下来了,供调试时使用,但里面的符号表只是起定位作用,在调试时还需要有目标源代码,否则只能进行汇编级调试,TRACE32支持把机器码反汇编成汇编语言进行调试,而且不需要目标文件支持,TRACE32可以自动从FLASH/RAM中读取机器码,然后反汇编成汇编代码。
通过data.load命令把符号表文件(.elf等)下载到目标机器上,指定源代码路径,就可以进行代码调试。
data.load.elfE:/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的状态为“systemdown”,然后通过“data.load”命令下载符号表文件(.elf等),由于system状态为down,TRACE32会提示没有符号表文件没有下载成功,不用管它,因为虽然没有下载到问题机器的RAM上,但符号表文件已经下载到TRACE32上了;然后再通过sys.attach命令让TRACE32和问题机器关联上,这样就可以进行源码级调试了。
- TRACE32调试技巧
- [转] TRACE32调试技巧
- TRACE32调试技巧
- TRACE32 调试技巧
- TRACE32调试技巧
- qcom8660 trace32 调试经验
- 使用trace32调试跟踪android lk代码的一点小技巧
- 使用 trace32 调试 Linux 内核
- trace32调试android kernel (AP)
- Trace32
- about Trace32
- Trace32相关
- 高通平台的常用的调试tool: QPST, QRCT, QXDM, Trace32(use JTAG)
- 调试技巧
- 调试技巧
- 调试技巧
- 调试技巧
- 调试技巧
- isos系统工作笔记3
- 字符类型转换
- 萬惡淫為首,百善孝為先
- isos系统工作笔记4
- Clear all data in DB table
- TRACE32调试技巧
- treeview 數據保存後的更新
- oralce 存储过程
- NHibernate+Oracle10g搭建一个项目架构全程解析(一)
- ASP.NET系统用户权限设计与实现
- isos系统工作笔记5
- 关于Base64编码
- isos系统工作笔记6
- 教程:VB6写的32位dll插件升级支持64位Inventor