VisualDSP++5.0使用指南 联系客服

发布时间 : 星期二 文章VisualDSP++5.0使用指南更新完毕开始阅读fb1e432e3169a4517723a342

Debugger中的程序执行命令在Debug下拉菜单中,如图5—19所示。这些命令在工具栏中也有相应的快捷按钮。下面简单说明一些常用的执行命令。 (1)运行(Run):

运行程序直到遇到某种条件才停止,程序停止的条件可以是执行到断点或用户干预等。当程序处于停止状态时,在VisualDSP++中所有的已经打开的各种相关窗El的内容都更新为程序运行后的值。 (2)暂停(Halt)

程序在执行过程中,用户可以通过暂停功能来暂停程序的执行。当程序处于暂停状态时,在VisualDSP++中所有已经打开的各种相关窗口的内容都更新为程序运行后的值,且状态条显示为当前程序停止的地址。

(3)执行到光标所在位置(Run To Cursor)

该功能将使程序运行,直到程序执行到光标所在位置时,程序暂停。光标的位置可以在源文件窗或反汇编窗中设置。 (4)执行1行程序(Step over)

仅仅执行1行C语言程序行,仅用于C语言程序。 (5)单步执行程序(Step Into)

单步执行程序。每执行1步,所有已经打开的相关窗口的内容都更新。 (6)单步执行当前函数(Step out of)

单步执行当前函数,直到返回到它的调用程序。仅用于C语言程序。 (7)复位(Reset)

通过VisualDSP++对处理器进行复位,如果当前会话处于模拟器状态,那么VisualDSP++将使模拟器所有状态复位,而如果 VisualDSP++处于硬件会话环境下,那么VisualDSP++将通过仿真器向目标系统上的处理器发送复位信号。在复位后,必须使用加载器将程序重新加载才可以运行。

4.3 程序性能分析操作

VisualDSP++调试器中提供了两个工具来分析程序的执行情况:跟踪(Trace)和线性剖析(Linear Profiling)。这两个命令都位于VisualDSP++的“Tools”下拉菜单中,如图5-32所示。

1.跟踪(Trace)

提供对程序执行指令的跟踪,结果显示程序如何执行到某一地址上,显示程序的读、写和存储器访问。通过如下步骤来设置Trace功能并显示其结果。

1)单击VisualDSP++主界面Tool下拉菜单中的Trace,选择Enable Trace激活跟踪操作;

2)单击VisualDSP++主界面Tool下拉菜单中的Trace,选择Set Trace Depth,然后设置Trace Buffer Depth,如图5—33所示,选择用户定义的跟踪深度或最大跟踪深度,VisualDSP++默认为最大跟踪深度;

3)单击VisualDSP++主界面View下拉菜单中的Debug Windows,选择Trace打开跟踪显示窗口;

4)运行程序,在通过对程序设置断点或者使用Halt命令来停止程序的执行后,通过跟踪窗口可以查看跟踪的执行结果,如图5-34所示。

跟踪的结果含有如下内容: ·访问类型(RD或WR) ·内存类型(PM或DM) ·方括号中的地址([ ]) ·读写的数据值

对于跟踪分析工具的使用需要注意以下几点:

1)对于SHARC及TigerSHARC处理器,系统的虚拟内存限制了深度;

2)对于Blackfin系列处理器,在模拟器中不支持跟踪,但是在仿真器中支持跟踪。 2.剖析(Profiling)

VisualDSP++ 的剖析工具Linear Profile是用来分析程序的运行时间特性,通过线性统计剖析,可以分析出每段程序的耗时量和在整个程序运行中所占用的比例,为用户分析程序的性能、优化程序提供帮助。VisualDSP++4.5提供了线性统计剖析工具,即对运行的程序做统计分析,计算出每条指令占用执行程序中的百分比和运行的周期数,并以统计表的形式给出。

完成一次剖析的基本步骤如下:

1)编译和链接工程完成;

2)单击VisualDsP++主界面Tool下拉菜单中的Linear Profiling,选择New Profiling建立和激活新的剖析;

3)在新建剖析窗VI中的空白处单击鼠标右键,选择Properties…,如图5-35所示。 4)在选择Properties…后,VisualDSP++将弹出剖析参数设置窗口,如图5-36所示。在该窗口中可以对全部程序进行分析,也可以对C/C++子函数进行分析,还可以指定程序的址段进行分析。

5) 在对所需分析的程序段设置后,运行程序,那么在剖析窗口中将显示线性统计剖析的结果,如图5-37所示。剖析窗口中的左半部分为用户所分析的程序段相关的结果,使用鼠标双击相关的函数,那么在窗口的右半部分将显示出对该函数中每条指令进行线性统计的结果。在该窗口中显示的结果默认为每个子程序或者每条程序占整个剖析运行程序段的百分比,通过修改剖析参数,也可以显示每条指令执行的周期数。