CCS使用和调试实验.ppt

上传人:牧羊曲112 文档编号:5420827 上传时间:2023-07-05 格式:PPT 页数:43 大小:301.50KB
返回 下载 相关 举报
CCS使用和调试实验.ppt_第1页
第1页 / 共43页
CCS使用和调试实验.ppt_第2页
第2页 / 共43页
CCS使用和调试实验.ppt_第3页
第3页 / 共43页
CCS使用和调试实验.ppt_第4页
第4页 / 共43页
CCS使用和调试实验.ppt_第5页
第5页 / 共43页
点击查看更多>>
资源描述

《CCS使用和调试实验.ppt》由会员分享,可在线阅读,更多相关《CCS使用和调试实验.ppt(43页珍藏版)》请在三一办公上搜索。

1、实验2 CCS使用和调试实验,一、实验目的1掌握利用CCS建立工程、编译与调试代码的基本过程;2掌握基本调试技术:如观察窗、图形(断点)、文件I/O(探针)、剖析等;,二、实验内容,1.建立工程test1.pjt,然后分别建立源程序(test1.c或.asm)、头文件(test1.h)和连接命令文件(test1.cmd)。并编译、下载和运行程序。(此处为了方便起见,直接例程volume.c拷贝到test1.c,将volume.h拷贝到test1.h,将volume.cmd拷贝到test1.cmd。向分别工程中添加源程序、头文件、连接命令文件(.cmd)以及库文件(.lib)。,2.利用CCS工

2、具调试程序(1)观察计算结果的数据(2)观察数据的图形(断点)(3)观察存储器中的数据(4)利用文件I/O实现外部数据和DSP存储区的交换(探针)(5)利用剖析工具分析程序各段执行的时间,查看源程序代码,volume.c 简介:主程序打印一个信息,然后进入无限循环。在这个循环中,调用dataIO和进程函数。在输入缓冲区中,处理函数将每个值乘以增益,并将结果放到输出缓冲区。它也调用汇编加载过程,此过程消耗基于将processingLoad值传递到过程的指令周期。例子中的dataIO函数不作任何处理,仅仅返回。除了使用C代码执行I/O,我们将使用CCS中的探针Probe Point,读取主机的文件

3、中数据到 inp_buffer区域。,2.1 编译与运行程序,.选择Project/Rebuild All或单击(Rebuild All)菜单条按钮,CCS重新进行编辑、汇编、连接工程里的所有文件。这个处理的有关信息在窗口底部一个小框里显示。,.默认时,.out文件编译到位于当前工程文件夹中的调试(debug)目录中;也可以通过CCS工具条选择一个存储目录。,.选择File/Load Program.选中volume1.out,并按Open。(c:timyprojectsvolume1Debug 文件夹中。)CCS将程序装载到目标DSP上,打开显示程序反汇编指令的 Disassembly窗口。

4、,选择View/Mixed Source/ASM.这样可以同时查看C源程序和产生的汇编代码。,在混合窗口单击汇编指令(单击有效指令,而不是指令的地址或指令所传递的区域),单击F1,CCS可以寻找此指令的帮助。这是学习指令的很好的方法。,选择Debug/Go Main。从主程序开始执行。,选择Debug/Run或单击(Run)按钮。,选择Debug/Halt,退出程序运行。,.从View菜单,选择Mixed Source/ASM.。允许无须汇编而查看C代码,所以你可以完成下一个任务:更改程序的选择、定位语法错误。,2.2 更改程序编译选择,查找语法错误,编译选项(build option)的常用

5、设置,要对工程进行正确的编译连接,必须对build option进行正确的设置。单击菜单Project下Build Option选项,出现编译选择对话框。1.CompilerPreprocessorInclude Search Path 用来定义include 文件的搜索路径,可以使用绝对路径或相对路径来进行定义。假设一个自定义项目在myproject目录下,则文件搜索路径可定义.c5400dsk5402include,详情见:SPRU102F.pdf TMS320C54x Assembly Language Tools Users Guide,编译选项(build option)的常用设置,

6、2.LinkerBasicInclude Libraries(-l)用来定义链接库文件,如输入rts.lib(运行时间支持库)。3.LinkerBasicOutput Filename(-o)用来定义规定可执行文件(.out)的路径和名称4.LinkerBasicMap Filename(-m)用来定义规定存储器图(.map)的路径和名称,前面含在预处理器命令中的程序的部分(#ifdef 和#endif)没有不执行,因为FILEIO未定义。下面可以使用CCS设置预处理器选择,学会并纠正语法错误。,选择菜单Project下Build Options选项,在Build Options窗口的Comp

7、iler上,选择Category列表的Preprocessor,在Define Symbols区域键入FILEIO,按Tab键。,更改程序编译选择,查找语法错误,Build Options for Volume1.pjt,单击OK,保存新的选择设置。,选择Project菜单下Rebuild All选项,或单击(Rebuild All)按钮。只要工程选择更改,则必须重新编译所有的文件。,.编译信息显示,程序包含编辑错误。单击Build,可以看见语法错误信息。,6.双击描述语法错误位置的红色文字(第68行)注意volume.c源程序已打开,且光标位于下面的行上:processing(input,o

8、utput);,7.语法 错误位于光标位置的上一行(丢了个分号),如:puts(begin processing);,8注意,Edit窗口标题栏中的文件名附近出现星号(*),指示 源程序已经被修改,文件保存后,星号消失。,使用断点(Breakpoints)观察窗口(Watch Window),为了程序执行时常常需要检查变量的值,2.3 断点和观察窗,断点和观察窗,1.File/Reload Program.,2.双击Project View 窗中的volume.c。可以将窗口变大,看到更多的源代码。,3.将光标放在 dataIO();,4.单击(Toggle Breakpoint)工具条,或按

9、F9。红色图标指示断点已经设置,5选择View/Watch Window,在CCS窗口的右下角出现观察窗,显示观察变量的值。缺省时,选中Watch Locals,显示正在执行的函数的本地变量。,6.如果不在主程序,选择Debug/Go Main,然后运行程序。,7.选择Watch1,8.单击Name栏中表达式图标,键入要观察的变量名dataIO。,9.单击观察窗口中的白色区域,保存更改。这个值将立即出现在下面的例子中。,10.单击(Step Over)或按F10,跨过对dataIO()的调用。,Step Into(F8)Step Over(F10)Step Out(Shift F7)Run t

10、o Cursor(Ctrl F10),11.完成后,单击(Remove All Breakpoints),再继续下面的学习。,2.4 使用带结构的Watch Window,除了观察简单变量的值,也可以观察一个结构的元素的值。,1.选择Watch1,2.单击Name栏中的表达式图标,键入要观察表达式名称str。,3.单击观察窗口中的白色空间,保存更改。数值将立即出现在下面的例子中。,观察步骤:,5.单击str上的+号,CCS将结构中所有元素和元素值。,双击结构中元素的Value,编辑元素的值。,6.在Watch window 中Value栏,更改变量的值。注意,Watch Window中数值的更

11、改,数值也变为红色,表示已经手动修改。,7.选择Watch Window 中str变量,按Delete 键。其他变量同理。,8.选择Debug/Breakpoints.在Breakpoints中,单击Delete All,然后单击OK.,2.5 文件I/O(利用探针),可以利用探针(Probe Point),从PC机中的文件读数据。,探针作用,从PC中传递输入数据到算法所使用的DSP目标的 缓冲器中;,从DSP目标的缓冲器中传递输出数据,到主PC中;,用数据修改窗口。,1.选择File/Load Program,选中volume1.out,单击Open。,2.双击Project View中的

12、volume.c。,3.将光标放到主程序中:dataIO();,4.单击(Toggle Probe Point)。出现兰色图标表示探针已经设置,5.从File菜单,选择File I/O。出现File I/O对话框,因此可以选择输入输出文件。,利用探针将外部文件输入到DSP缓冲区,6.在File Input,单击Add File。,7.浏览volume1工程文件夹,选中sine.dat,单击Open。sine.dat 文件是正弦波的十六进制数值,出现sine.dat文件的控制窗口。再后,当运行程序时,可以在数据文件中使用此窗口启动、停止、返回、或快进。,8.在File I/O对话框,更改Addr

13、ess 为inp_buffer,Length为100,在Wrap Around中可以添加选中符号。,Address指定从文件中读取的数据将放在什么地方。volume.c申明 inp_buffer为整数矩阵BUFSIZE(volume.h中定义),Length指定每次使用Probe Point 时从数据文件中读多少样本。这里取100,因为volume.h 设置常量为BUFSIZE(0 x64)。,Wrap Around选择引起当其到达文件末尾时,CCS开始从文件开 始读。这样允许数据文件被看作为连续的数据流。,9.单击Add Probe Point。出现 Break/Probe Points对话

14、框中的 Probe Points,10.在 Probe Point列表中,显亮行为:VOLUME.C line 61-No Connection.,11.在Connect To区域中,单击下箭头,从列表中选中 sine.dat,12.单击 Replace。Probe Point列表改向显示这个Probe Point连接到sine.dat文件。,13.单击OK。File I/O 对话框显示文件现在连接到Probe Point。,14.单击OK,关闭File I/O对话框。,CCS数据文件格式:头信息+数据头信息:MagicNumber Format StartingAddress PageNum

15、 Length其中:MagicNumber:固定为1651Format:14,数据存储格式,分别对应:十六进制数、整数、长整数、浮点数中的一种StartingAddress:数据存放的起始地址PageNum:页码,指明数据所在的数据页Length:数据的长度,以word来表示头信息一般缺省为1651 1 0 0 0。,I/O文件的格式(如:sine.dat),2.6 观察数值的图形,在这个例子中,可以查看关于时间的信号图形。,1.选择View/Graph/Time/Frequency。,2.在 Graph Property Dialog对话框,更改Graph Title,Start Addre

16、ss,Acquisition Buffer Size,Display Data Size,DSP Data Type,Autoscale,和 Maximum Y-value属性,下拉或重新拉大对话框,查看所有属性。,Graph Property Dialog对话框,4.右击Input graph窗口,从下拉菜单中选择Clear Display。,5.再次选择View/Graph/Time/Frequency。,6.这次更改Graph Title为Output,Start Address 为out_buffer,所有其他设置都正确。,7.单击OK,显示输出图形Output graph窗口,右击O

17、utput graph 窗口,从下拉菜单中选择Clear Display。,3.单击OK。出现Input Buffer的Input图形窗口。,2.7 动态执行程序和显示图形,至此,已经放置断点,传递主 PC中的数据,到目标DSP;可暂停目标DSP,或继续目标DSP 应用程序。但是,Probe Point不修改图形。本节建立断点(breakpoint),修改图形,使用 Animate命令,遇到断点后继续自动执行。,1.在volume.c窗口,将光标放在调用dataIO的行上。,2.单击(Toggle Breakpoint),或按F9,选中空白区域放置红色图标,代表断点。,将断点breakpoin

18、和探测点Probe Point放在同一行,这样传递数据和修改图形时目标只须暂停一次。,3.调整窗口,使得两个窗口都可以看见。,5.每遇到探测点Probe Point一次,CCS就从sine.dat文件获得100个数值,并将它们写入inp_buffer地址。,4.单击(Animate),或按F12运行程序。Animate=Runhalt continue,增益Gain=1,2.8 调整增益Gain,处理函数将输入缓冲器中的每个值乘以增益,并将结果放在输出缓冲器。在while循环中执行下面的语句。,1.*output+=*input+*gain;,这个语句将inp_buffer中的数值乘以增益,并

19、结果放在out_buffer中相应的位置。增益初始化设置在MINGAIN上,在头文件volume.h定义中。如果修改输出,则需要修改增益。办法之一是,修改观查窗的变量数值:,1.选择菜单View下Watch Window选项,选中Watch1。,2.单击Name栏中的表达式图标,键入观察的变量gain。,3.单击观察窗口中的白色空间,保存更改。在下面的例子中将立即出现这个数值。,在观察窗中调整增益Gain 的步骤:,5.从Debug菜单,选中Halt。,6.在观察窗口,选中增益值(1),将其改为10。,4.如果程序已经暂停,单击(Animate),重新启动程序,观察前面建立的输入输出图形。,7.从Debug菜单,选中 Animate。注意更改 Output graph 中信号幅度,反映在下面的例子中的增益。,增益Gain=10,1.使用simulator和dsk硬件目标板的程序时,探针设置有什么区别?区别的原因是什么?2.利用文件I/O将inp_buffer中的内容输出到文件sineout.dat中,并与输入文件sine.dat相比较,内容是否一致?输入输出文件能否与同时与同一个探测点相关联?,三、实验思考题,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号