值得注意的是,在每次重新编译的时候,由于VisalDSP++会使用到预编译器,因此在每次编译后,剖析窗口中的数值都会发生变化。另外,如果对剖析窗 VI中的数值不采用清除操作,那么剖析的结果将一直进行累计。所以在实际运用过程中,无论是程序重新编译还是重新执行程序,都应当先将剖析窗口中原有的数值清除后再运行程序进行分析,否则分析出来的数据有可能不准确。
清除剖析窗口中原有数值的方法非常简单,在剖析窗口中单击鼠标右键,选择菜单中的Clear Profiling即可。 4.4 设置观察点
观察点(Watch Point)与断点(Break Point)功能非常相似,断点可以在程序的任意位置上设置,使程序暂时停止执行。而观察点可以设置某种条件,当满足条件时才暂停程序的执行,如存储器读写、堆栈弹出等。
通过下列步骤来设置观察点。
1)选择VisualDSP++主界面下拉菜单Settings中的Watch points,会出现一个Watch points对话框,如图5-38所示。
2)该窗口用于设置使程序停止的条件,使程序停止运行进行判断的方式有三种:寄存器(Registers)、硬件堆栈(Hardware Stacks)和存储器(Memory)。下面以寄存器页面为例进行说明,在寄存器类型中主要包括如下一些设置:
Register一列出了所有寄存器,提供给用户用于选择需要的寄存器进行条件设置。 Watch For Read——当指定寄存器的读操作满足条件,就暂停程序的执行。读取到数值判断有四种:读到任意值(Any Read)、读入特定值(Read value)、读入值作为某种计算的操作数(Read in computation)和读入未定义的值(Read uninitial)。
Watcn For WIite——当指定寄存器的写操作满足条件,就暂停程序的执行。条件判断有四种:写任意值(Any write)、或者写指定的值(Write vaIue)、写的值作为某种计算的操作数(Write in computation)、写未定义的值(Write uninitial)。 Value——读或者写操作的指定值。
Format——读或者写的指定值的格式,可以选择二进制、整数、浮点数等。
Add、Edit、Delete——对观察点列表进行添加、删除、编辑等管理操作。
3)对观察点判断条件设置完毕后,单击Add按钮,将所指定的观察点加入到观察点列表中。利用Add按钮可以加入多个观察点到列表中。 4)单击OK按钮,完成设置。
5)运行程序,当程序运行时,满足所设置的任意一个条件时,VisualDSP++将自动停止运行程序。
4.5 模拟硬件环境
为了方便用户在模拟器环境下更好的调试用户所编写的程序,VisualDSP++的调试器提供了3种硬件环境的方式模拟:
Interrupts——中断,模拟在程序的执行过程中产生外部随机中断。 Streams——数据流,模拟处理器通过外部端口进行数据传输。’
Load Sim Loader——模拟处理器通过EPROM或主机等方式的加载过程。 上面三种硬件模拟均在VisualDSP++主界面的Settings下拉菜单中,用户通过单击Setting按钮就可以对其进行设置,下面分别介绍。 1.中断(Interrupts)模拟
中断模拟用于模拟程序在执行过程中处理器外部产生随机中断,这对调试中断服务程序是非常有用的,其设置窗口如图5—39所示。
该窗口中的主要选项意义如下:
External interrupts——外部中断类型,用于设置外部中断的类型,包括FLAG中断、IRQ中断、定时器中断等,具体的中断类型与用户选择的处理器型号有关,不同的处理器所包含的外部中断类型也有所不同o
Min cycles——中断信号产生的最小指令周期间隔o Max cycles——中断信号产生的最大指令周期间隔。 Offset cycles——在第一次中断发生之前的指令周期数。 Interrupts——显示设置完成的模拟中断及其参数。 、
Add、Remove、Remove All——用于对设置完成的模拟中断进行添加、删除的管理操作。
在对模拟断设置完毕后,直接运行程序即可,那么中断模拟器将会按照所设置的方式产生中断。 .
值得注意的是,无论是重新执行程序、重新编译链接工程还是重新加载已编译过的程序,模拟中断都并不会取消,只有在模拟中断设置窗口中,将其删除,那么才能停止产生模拟的中断。当然如果重新启动VisualDSP++是可以关闭模拟中断的。 2.数据流(Streams)模拟和DMA模拟传输
相关推荐: