首页 理论教育 如何为I/O文件添加探针断点?

如何为I/O文件添加探针断点?

时间:2023-06-20 理论教育 版权反馈
【摘要】:CCS数据文件为字符格式文件,由文件头和数据两部分构成。CCS提供的数据文件输入/输出功能是和探针断点一起使用的。3)探针可与FILEI/O配合,在目标DSP与PC文件之间传送数据,断点则无此功能。inp_buffer是在volume.c中定义的整型数组,其长度为BUFFSIZE。②Length栏指示的是每次到达探针时从数据文件中读取多少个样点,这里取值为100是因为BUFFSIZE常数已由volume.h设置为10

如何为I/O文件添加探针断点?

CCS允许的数据格式有两种:一种是COFF格式,即二进制的公共目标文件格式,可执行的DSP程序(*.out)即采用COFF格式;另一种是CCS数据文件。CCS数据文件为字符格式文件,由文件头和数据两部分构成。文件头指明文件类型、数据类型、起始地址长度等信息,相邻信息间以空格隔开。紧接文件头后面的为数据,每个数据占一行,数据类型可以为十六进制、整数、长整数和浮点数

CCS数据文件文件头格式如图6-39所示。

978-7-111-35536-6-Chapter06-121.jpg

图6-39 CCS数据文件文件头格式

本例中使用的数据文件sine.dat就是CCS数据文件格式的文件。

CCS允许将数据导入或导出目标DSP,这种方法便于在算法开发阶段验证程序的正确性。CCS提供的数据文件输入/输出功能是和探针断点一起使用的。

探针断点(简称探针)可以从PC的文件中存取数据,它是开发算法的一个有用工具,其使用方法如下:

1)将PC文件中的数据传送到目标DSP的缓冲区中,以供算法使用。

2)将目标DSP的缓冲区中的输出数据传送到PC文件中以供分析。

3)用新的数据更新一个窗口,如由数据绘出的图形窗口。

探针和断点都会中断程序的运行,但探针与断点在以下几个方面不同:

1)探针只是暂时中断程序运行,当程序执行到探针时会更新与之相连接的窗口,然后自动继续执行程序。

2)断点中断程序之后,将更新所有打开的窗口,但只能用人工干预的方法恢复程序运行。

3)探针可与FILEI/O配合,在目标DSP与PC文件之间传送数据,断点则无此功能。

下面介绍如何使用探针将PC文件数据传送到目标DSP中作为测试数据使用。同时使用断点在到达探针时自动更新所有打开的窗口,这些窗口包括输入和输出数据的图形窗口。

在前面已经提到,在CCSv3.3版本的菜单栏工具栏中并没有专门的探针设置命令和按钮,但CCSv3.3版本是有探针功能的,和以前版本不一样的是此版本将探针和断点合并,断点就包含了探针功能,探针功能隐藏了,需要手动设置才能启动探针。具体操作步骤如下。

1)在CCS主界面的菜单栏中选择File→Reload Program命令,重新加载程序volume.out。

2)在菜单栏中选择Debug→Go Main命令,将程序停在volume.c的main函数体开始处,编辑窗口显示volume.c的源代码,也可直接在工程视图窗口中双击volume.c,在右边的编辑窗口中将显示volume.c源代码。(www.xing528.com)

3)将光标放在第61行“dataIO()”上,单击工程工具栏上的Debug:Toggle Breakpoint按钮978-7-111-35536-6-Chapter06-122.jpg、或按〈F9〉键、或双击源程序编辑窗口该行的左侧灰色部分,将在当前光标所在行设置一个普通的断点。下面就要设置该断点使之成为一个探针。

4)在菜单栏中选择Debug→Breakpoints命令或在调试工具栏上单击Breakpoint Manager按钮978-7-111-35536-6-Chapter06-123.jpg,在主界面的下方显示Breakpoint Manager窗口,可以看到刚才设置的断点就在这个Breakpoint Manager里面。在Breakpoint Manager窗口中,单击Action列下的文本,弹出一下拉菜单,如图6-40所示。在此下拉菜单中选择Read Data from File命令,弹出一个Parameter对话框。

978-7-111-35536-6-Chapter06-124.jpg

图6-40 Breakpoint Manager窗口

5)在Parameter对话框中,单击File栏的空白部分,在弹出的对话框中选择工程目录下的sine.dat文件并打开;在Wrap Around栏中单击复选框,使该项变为True;在Start Address栏中输入inp_buffer;在Length栏中填入100,如图6-41所示。

Parameter对话框几部分的含义如下:

①Start Address栏指示的是从文件中读取的数据将要存放的地址。inp_buffer是在volume.c中定义的整型数组,其长度为BUFFSIZE(在volume.h中定义的一个常数)。

②Length栏指示的是每次到达探针时从数据文件中读取多少个样点,这里取值为100是因为BUFFSIZE常数已由volume.h设置为100(0x64),即每次取100个样值存放在输入缓冲中,如果Length超过100则可能导致其他数据丢失。

③Wrap Around复选框选中表明读取数据的循环特性,每次读至文件结尾处后将自动从文件头开始重新读取数据,这样将从数据文件中读取一个连续(周期性)的数据流。

6)Parameter对话框设置好之后,单击OK按钮,此时将弹出一个控制窗口,如图6-42所示。可以在运行程序时使用这个窗口来控制数据文件的开始、停止、前进、后退等操作。

978-7-111-35536-6-Chapter06-125.jpg

图6-41 Parameter对话框设置

978-7-111-35536-6-Chapter06-126.jpg

图6-42 I/O文件控制窗口

7)I/O文件控制窗口的出现表明探针已经与sine.dat文件相关联。在源程序设置断点处,原来用红色圆点表示的断点图标改为探针图标,同时探针显示在Breakpoint Manager窗口中,如图6-43所示。至此为I/O文件成功添加了一个探针断点。

978-7-111-35536-6-Chapter06-127.jpg

图6-43 添加探针后的Breakpoint Manager窗口

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈