Trace32-ICD使用说明
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Trace32-ICD使用说明
作者:***
日期:2008-8-11
版本:V-1.0
一、编写目的
通过对该文档的阅读,能够掌握Trace32-ICD的软、硬件安装,使用Trace32-ICD进行flash擦除,程序下载,并熟悉在线调试。
二、T RACE32硬件的连接
Trace32的硬件连接如下图所示:
图2.1
注意事项:
电源打开/关闭时的正确顺序:
打开:先调试器,再目标机。
关闭:先目标机,再调试器。
三、TRACE32软件的安装
3.1 TRACE32-ICD软件包安装
1、首先获取安装软件包,包括:Trace32安装包和USB Driver。
2、安装Trace软件包,运行..\ trace32\setup.bat批处理文件或..\trace32\bin\setup\setup.exe文件,系统自动安装,在安装过程中进行如下选择。
图 3.1 图3.2
图3.3
其他选项基本默认。
3.2 USB驱动安装
正确连接Trace后,系统会自动提示发现硬件需要进行驱动。此时选择驱动程序所在目录。路径为..\ trace32\bin。如图3.4所示。
图3.4
四、Flash的擦除与下载程序
由于手机在下载版本过程中死机或掉电造成手机无法正常启动,并且使用我们单位的ZXPST与QPST都无法进行版本下载,并且QXDM和ZXPST通过COM1接口也无法找到手机,于是无法下载。在这种情况下我们可以使用Trace32-ICD进行Flash的擦除和程序下载。
4.1 设置环境
CPU环境设置在SYStem窗口,SYStem窗口提供所有CPU特定的设置。使用CPU菜单中的System Settings…打开SYStem窗口如图4.1所示。
需要配置主要包括CPU、时钟和UP加电,CPU选择ARM926EJ,时钟JtagClock选择
Ttck,然后进行加电UP,如果连接一切都正常,设置这几项就可以了。如图4.1所示:
图4.1
注意事项:如果UP不上出现如下错误emulation debug port fail,说明硬件连接不正确。
4.2 Flash的擦除
TRACE32扩展工具的全部命令,程序执行命令,条件命令和输入/输出命令都可以作为批处理文件命令。批处理文件的默认扩展名是“.cmm”。
使用CMM文件擦除Flash,菜单选择File---Run Batchfile 然后打开CMM文件,如:erasechip_TRACE32.cmm执行批处理文件进行擦除。如图4.2所示。
图4.2
注意事项:1、并不是所有下载程序前都需要擦除Flash。
2、如果擦除后还不能正确下载程序,请多次擦除再进行下载。
4.3 下载程序
执行CMM文件如jflash.cmm文件,然后选择要下载程序的版本,这里可以是elf文件和bin文件,如果选择Edit BatchFile,可以通过在行前加入注释符“;”来决定选择那种文件。如下设置就是选择.elf文件,如图4.3所示。
;d.load.binary ..\..\build\ms\bin\&filename\all.mbn
d.load.elf ..\..\build\ms\&filenam
e.elf /include
图4.3
注意事项:在擦除Flash后下载程序,如果下载程序不是全版本可能出现下载程序后仍然不能开机,请再下载全版本的Bin进行试验或下载nv。
五、调试程序
5.1 load elf文件
首先把与手机中相同版本的.elf文件load到Trace32中,操作如图5.1所示。
图5.1
5.2快速定位到函数
执行操作View----Symbols----BrowseFunctions。如图5.2所示。
图5.2
在弹出的窗体中输入要定位的函数如WMSAPP_FileInit,就能快速定位到该函数,通过窗口中Mode按钮,在混合(MIX)和高级语言(HLL )调试模式之间切换,WMSAPP_FileInit 所在文件源程序如图5.3所示。
图5.3
注意事项:如果无法显示源文件内容,说明没有正确指定源程序所在路径,在命令行输入如下命令:y.spath.setRecursedir e:\code 其中e:\code为源程序所作路径。
5.3断点设置
在默认情况下ICD调试器使用软件断点。当一个软断点被设到一条指令,一条特殊的指令将代替地址上的代码。例如:TRAP,它停止实时执行并返回控制到片上调试系统。这种方法要求断点位置在RAM中,如果您的程序运行在RAM上,软件断点的数目将没有限制。
大多数处理器类型(除6833x and 6834x)都提供一些片上(onchip)断点。即使程序不能运行在RAM上,TRACE32-ICD也可以使用这些断点对程序进行程序断点和侦察断点的设置。而我们的手机程序都不是运行在RAM上,而是运行在FLASH中。所以不能直接使用软件断点。我们只能设置片上断点。
返回到程序窗口,双击您要设置的一个程序断点所在的代码行。设置了程序断点的所有的代码行有一个小黑杠作为标记。
因为调试器在默认情况下使用软件断点,但您必须告诉调试器该使用片上断点。我们
通过命令MAP.Bonchip指定断点为片上断点,或者通过Break---Implementation进入配置窗体,在Program中选择Onchiip,一个程序或是侦察断点被设置在确定的地址范围内的时候,调试器应该使用一个片上断点。
我们最多只能设置两个onchip断点,当设置的断点数目超过处理器能够提供的片上断点数目时,将发生错误。通过Break----List可以查看当前已经设置的断点。如图5.4所示。
图5.4
5.4程序调试跟踪
调试跟踪主要包括如下几个方面:Step、Step Over Call、Go Next、Go Return、Go Up、Go Till、Go、Break。如图5.5所示。
Step:单步执行程序。
Step Over Call:跳出调用函数。
Go Next:执行下一条语句,主要用来跳出循环。
Go Return:执行到函数的最后一条语句。
Go Up:返回到调用它的函数。
Go Till:程序将开始执行。当程序运行到所选择的代码行,它将停止。
Break:退出。
如果程序运行在RAM上或是CPU提供片上断点,Go Next, Go Return 和Go Up这些命令才可使用。