4.3 启动脚本配置
在启动前,一定要加上链接用脚本。
脚本请联系飞腾FAE获取。
Trace32的命令在软件的安装完目录下是有一系列指导手册的,在“pdf”文件夹下。
举例几个参考文件:
training_practice.pdf Training PRACTICE
practice_user.pdf PRACTICE Script Language User’s Guide
practice_ref.pdf PRACTICE Script Language Reference Guide 命令查询手册
general_ref_a.pdf 以a字母开头的命令手册
4.4 启动调试
脚本添加后,点击“start”,trace32会自动执行脚本进行链接、执行。
Start后界面结果如下:
5 Trace32操作介绍
5.1 工作区介绍
下面对trace32的操作界面进行介绍:
红圈中的“system down”指示目标板己经供电,如果目标板电源电压低或没有的话,红
圈的区域会显示“POWER DOWN”。TRACE-ICP通过JTAG接口的1脚检测目标板电压,电压范围应该在1.8到3.3伏之间。
调试界面分成五个区域,从上到下依次是主菜单区、快捷按钮区、工作区、行命令输入区、行命令软件区、状态显示区。主菜单区是各种菜单命令的入口区域。快捷按钮区是各种常用命令的快捷使用按钮。用户可以自定义主菜单和快捷按钮。工作区是各种对话框窗口的显示区域。行命令输入区是各种命令通过手动输入执行的区域。行命令软键区是协助用户输入行命令的区域,它提供所有行命令的软键输入方法。状态显示区指示当前的调试状态。
如果在前面配置中没有引入脚本.cmm文件,也可以通过从主菜单区点击“File->Run Batchfile…”打开脚本文件选择对话框,选择执行。
5.2 观察/修改寄存器
从主菜单区点击“CPU->CPU Registers”,打开内核寄存器窗口,如下图所示。
从Pic12所示的内核寄存器窗口,用户能够观察处理器内核寄存器的值。如果用户想
修改某一个寄存器的值,只要双击寄存器名右边的值,在行命令输入区就会出现相应寄存器值修改的命令,紧接着输入十六进制的值(如,0x12345678)并回车就可以了。
下图是以修改寄存器R2的值为例,在行命令输入区出现的命令。
5.3 设备寄存器观察菜单
如上图所示的设备寄存器窗口在调试不同的处理器时是不同的。如果用户要修改某个
寄存器的值,双击该寄存器的值,在行命令输入区就会出现相应的设备寄存器修改命令,在命令后面输入要修改的值回车即可。
5.4 观察/修改存储器
从主菜单区点击“View->Dump…”,打开存储器观察窗口,如下图所示。
在地址输入框中输入要观察的地址,地址也可以用符号方式输入。输入地址之后点击
“OK”按钮,打开存储器显示窗口,如下图所示。
用鼠标双击某一个存储单元的内容,在命令行就会出现存储器数据修改命令提示,用户
只要填入要修改的数据回车即可。
5.5 观察符号表
如下图所示,点击“View->Symbols->Browse”打开符号表对话框。
在符号表对话框中可以通过单选钮“Symbols'”选择要观察函数或是变量等符号。在符
号表对话框中双击变量符号会打开变量观察对话框,双击函数名会打开程序列表窗口。
5.6 全速运行程序
在命令行输入“GO”命令,程序从当前P℃开始实时全速运行。要全速运行程序,用
户也可以通过主菜单点击“Rm>Go”来实现。或者,用户可以按F7来全速运行程序。程序全速运行时,在状态显示区会有“Running”指示。用户也可以在主菜单或程序列表窗口点击下图所示的红框中的按钮,也可以实现全速运行程序。
5.7 停止运行程序
用户从命令行输入“Brea”命令,或者按快捷键F8,都可以停止运行程序。用户也可
以从主菜单下选择“Run->Break”,停止运行程序。用户也可以在主菜单或程序列表窗
口单击下图中所示红框中的按钮来停止运行程序。
6 与linux内核联调简述
与linux内核联调的方式可以参考B站上劳德巴赫的官方视频:
使用TRACE32®调试Linux内核模块和用户进程_哔哩哔哩_bilibili
与内核联调需要加上vmlinux,参考网页说明
Trace32 simulator调试以及简单实用命令介绍 - 代码天地 (codetd.com) https://www.codetd.com/article/4940929 data.load.elf ../../vmlinux 0x1488800000 /nocode
加载elf文件命令,把指定的elf文件加载到目标设备或者仿真设备的0x1488800000地址上去。elf文件在编译时会把源文件的路径加入到elf文件中,我们后面加上/nocode代表没有对应的sourcecode,trace32就不会去对应目录去查找源文件了。当然我们也可以通过/path来指定sourcecode目录。比如: data.load.elf ../../vmlinux 0x1488800000 /path /home/xie/linux-4.4/
加载elf文件到指定地址,并且指定了和该elf对应的source code目录。 |
找系统供应商要来和板卡运行系统镜像一致的vmlinux(需要elf格式的),放置到pc机目录下。使用data.load命令,加载vmliux镜像,脚本为:
data.load elf C:\vmlinux /NOCODE (C:\vmlinux为vmlinux保存目录)
加入脚本,在启动调试后,再进入view->list source之后就可以看到一些注释文件了。因为系统供应商,比如麒麟给的vmlinux是没有源码的,所以没有办法通过list看到高级语言的函数,只能看到一些汇编的标记。
举例带源程序的混合显示程序列表窗口。通过点击程序列表窗口上的“Moe”按钮可以切换混合和源码显示方式。
如果用户没有通过data.load命令加载符号文件或者所加载的符号文件包含的调试信息不足,用户将会看不到源码,所得到的程序列表窗口可能如下图所示(这种比麒麟给的vmlinux的指示信息更少,只能看到汇编代码)。