《XXXX---实验2CCS使用和调试实验volume.ppt》由会员分享,可在线阅读,更多相关《XXXX---实验2CCS使用和调试实验volume.ppt(41页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 北京交通大学 国家工科电工电子教学基地DSP应用技术1实验2 CCS使用和调试实验一、实验目的一、实验目的1 1掌握利用CCS建立工程、编译与调试代码的基本过程;2 2掌握基本调试技术:如观察窗、图形(断点)、文件I/O(断点)、剖析等。(可直接在simulator下实验)北京交通大学 国家工科电工电子教学基地DSP应用技术2二、实验内容二、实验内容1.建立工程test1.pjt,然后分别建立源程序(test1.c或.asm)、头文件(test1.h)和连接命令文件(test1.cmd)。并编译、下载和运行程序。(此处为了方便起见,直接将C:CCStudio_v3.3tutorialsim5
2、5xxvolume1下的例程volume.c拷贝到test1.c,将volume.h拷贝到test1.h,将volume.cmd拷贝到test1.cmd。向分别工程中添加源程序、头文件、连接命令文件(.cmd)以及库文件(.lib)。北京交通大学 国家工科电工电子教学基地DSP应用技术3二、实验内容二、实验内容同时将C:CCStudio_v3.3C5500cgtoolslib中C55xDSP的C语言运行支持库文件rts55.lib(存储器为SmallMemoryModel,注意不是rts55x.lib。本课程其它工程添加的运行支持库函数均为rts55x.lib,存储器为LargeMemoryM
3、odel)添加到工程中。注意:编译选择中,大存储器模式(-ml)对应rts55x.lib,小存储器模式对应rts55.lib 北京交通大学 国家工科电工电子教学基地DSP应用技术42.利用CCS工具调试程序(1)观察计算结果的数据(2)观察数据的图形(断点)(3)观察存储器中的数据(4)利用断点进行文件I/O,实现外部数据和DSP存储区的交换(5)利用剖析工具分析程序各段执行的时间 北京交通大学 国家工科电工电子教学基地DSP应用技术5 查看源程序代码查看源程序代码 volume.c 简介:简介:主程序打印一个信息,然后进入无限循环。在这个循环中,调用dataIO和进程函数。在输入缓冲区中,处
4、理函数将每个值乘以增益,并将结果放到输出缓冲区。它也调用汇编加载过程,此过程消耗基于将processingLoad值传递到过程的指令周期。例子中的dataIO函数不作任何处理,仅仅返回。除了使用C代码执行I/O,我们将使用CCS中的断点操作,读取主机的文件中数据到inp_buffer区域。北京交通大学 国家工科电工电子教学基地DSP应用技术62.1 编译与运行程序编译与运行程序.选择Project/Rebuild All或单击(RebuildAll)菜单条按钮,CCS重新进行编辑、汇编、连接工程里的所有文件。这个处理的有关信息在窗口底部一个小框里显示。.默认时,.out文件编译到位于当前工程文
5、件夹中的调试(debug)目录中;也可以通过CCS工具条选择一个存储目录。.选择File/Load Program.选中volume1.out,并按Open。(C:CCStudio_v3.3MyProjectsvolume1Debug文件夹中。)CCS将程序装载到目标DSP上,打开显示程序反汇编指令的Disassembly窗口。北京交通大学 国家工科电工电子教学基地DSP应用技术7选择View/Mixed Source/ASM.这样可以同时查看C源程序和产生的汇编代码。在混合窗口单击汇编指令(单击有效指令,而不是指令的地址或指令所传递的区域),单击F1,CCS可以寻找此指令的帮助。这是学习指令
6、的很好的方法。选择Debug/GoMain。从主程序开始执行。选择Debug/Run或单击或单击(Run)按钮。按钮。选择Debug/Halt,退出程序运行。北京交通大学 国家工科电工电子教学基地DSP应用技术8.从View菜单,选择Mixed Source/ASM.。允许无须汇编而查看C代码,所以你可以完成下一个任务:更改程序的选择、定位语法错误。北京交通大学 国家工科电工电子教学基地DSP应用技术92.2 更改程序编译选择,查找语法错误 北京交通大学 国家工科电工电子教学基地DSP应用技术10编译选项(buildoption)的常用设置要对工程进行正确的编译连接,必须对buildoptio
7、n进行正确的设置。单击菜单Project下BuildOption选项,出现编译选择对话框。1.CompilerPreprocessorIncludeSearchPath用来定义include文件的搜索路径,可以使用绝对路径或相对路径来进行自定义。如C:CCStudio_v3.3C5500cgtoolsinclude2.CompilerAdvancedMemoryModel大存储器模式(-ml)对应rts55x.lib,小存储器模式对应rts55.lib 北京交通大学 国家工科电工电子教学基地DSP应用技术11编译选项(buildoption)的常用设置3.LinkerBasicIncludeL
8、ibraries(-l)用来定义链接库文件,如输入rts55x.lib、csl5502x.lib、55xdsp.lib、55ximagex.lib库等。4.LinkerBasicOutputFilename(-o)用来定义规定可执行文件(.out)的路径和名称5.LinkerBasicMapFilename(-m)用来定义规定存储器映射文件(.map)的路径和名称 北京交通大学 国家工科电工电子教学基地DSP应用技术12前面含在预处理器命令中的程序的部分(#ifdef和#endif)没有不执行,因为FILEIO未定义。下面可以使用CCS设置预处理器选择,学会并纠正语法错误。选择菜单Projec
9、t下BuildOptions选项在BuildOptions窗口的Compiler上,选择Category列表的Preprocessor,在DefineSymbols区域键入FILEIO,按按Tab键。键。更改程序编译选择,查找语法错误更改程序编译选择,查找语法错误 北京交通大学 国家工科电工电子教学基地DSP应用技术13BuildOptionsforVolume1.pjt 北京交通大学 国家工科电工电子教学基地DSP应用技术14单击OK,保存新的选择设置。选择Project菜单下Rebuild All选项,或单击选项,或单击(RebuildAll)按钮。只要工程选择更改,则必须重新编译所有的文
10、件。.编译信息显示,程序包含编辑错误。单击Build,可以看见语法错误信息。北京交通大学 国家工科电工电子教学基地DSP应用技术156.双击描述语法错误位置注意volume.c源程序已打开,且光标位于下面的行上:processing(input,output);7.语法错误位于光标位置的上一行(丢了个分号),如:puts(beginprocessing);8注意,Edit窗口标题栏中的文件名附近出现星号(*),指示源程序已经被修改,文件保存后,星号消失。北京交通大学 国家工科电工电子教学基地DSP应用技术16使用断点(Breakpoints)观察窗口(WatchWindow)为了程序执行时常常
11、需要检查变量的值2.3断点和观察窗 北京交通大学 国家工科电工电子教学基地DSP应用技术17 断点和观察窗1.File/Reload Program.2.双击ProjectView窗中的volume.c。可以将窗口变大,看到更多的源代码。3.将光标放在dataIO();4.单击(ToggleBreakpoint)工具条,或按F9。红色图标指示断点已经设置 北京交通大学 国家工科电工电子教学基地DSP应用技术185选择View/Watch Window,在CCS窗口的右下角出现观察窗,显示观察变量的值。缺省时,选中WatchLocals,显示正在执行的函数的本地变量。6.如果不在主程序,选择De
12、bug/Go Main,然后运行程序。7.选择选择Watch1 8.单击Name栏中表达式图标,键入要观察的变量名dataIO。北京交通大学 国家工科电工电子教学基地DSP应用技术199.单击观察窗口中的白色区域,保存更改。这个值将立即出现在下面的例子中。北京交通大学 国家工科电工电子教学基地DSP应用技术2010.单击(StepOver)或按F10,跨过对dataIO()的调用。StepInto(F11)StepOver(F10)StepOut(Shift+F11)RuntoCursor(Ctrl+F10)11.完成后,单击(RemoveAllBreakpoints),再继续下面的学习。北京
13、交通大学 国家工科电工电子教学基地DSP应用技术212.4 使用带结构的使用带结构的Watch Window除了观察简单变量的值,也可以观察一个结构的元素的值。北京交通大学 国家工科电工电子教学基地DSP应用技术221.选择Watch12.单击单击Name栏中的表达式图标,键入要观察表达式名称str。3.单击观察窗口中的白色空间,保存更改。数值将立即出现在下面的例子中。观察步骤:北京交通大学 国家工科电工电子教学基地DSP应用技术235.单击str上的+号,CCS将结构中所有元素和元素值。双击结构中元素的Value,编辑元素的值。6.在Watchwindow中Value栏,更改变量的值。注意,
14、WatchWindow中数值的更改,数值也变为红色,表示已经手动修改。7.选择WatchWindow中str变量,按Delete键。其他变量同理。8.选择Debug/Breakpoints.在Breakpoints中,单击DeleteAll,然后单击OK.北京交通大学 国家工科电工电子教学基地DSP应用技术242.5文件I/O(利用断点)可以利用断点从PC机中的文件向DSP中读数据。北京交通大学 国家工科电工电子教学基地DSP应用技术25断点作用断点可以中断程序执行,更新所有窗口。断点可以从DSP的存储器中将数据传递输到PC文件中;断点可以将PC文件数据读到DSP的存储器中。北京交通大学 国家
15、工科电工电子教学基地DSP应用技术261.选择File/Load Program,选中volume1.out,单击Open。2.双击ProjectView中的volume.c。3.将光标放到主程序中:dataIO();4.单击(ToggleBreakpoint)。出现红点图标表示断点已经设置。5.从Debug菜单,选择Breakpoints。利用断点将外部文件输入到DSP存储器中 北京交通大学 国家工科电工电子教学基地DSP应用技术276.在Breakpoints对话框中,点击“Action”下的内容HaltTarget,在出现的下拉菜单中选中“ReadDatafromFile”。7.在出现的
16、Parameter对话框,选中File栏空白处,浏览volume1工程文件夹,选中sine.dat,单击Open。sine.dat文件是正弦波的十六进制数值 北京交通大学 国家工科电工电子教学基地DSP应用技术28出现sine.dat文件的控制窗口。再后,当运行程序时,可以在数据文件中使用此窗口启动、停止、返回、或快进。8.在WrapAround中选中,即True;更改StartAddress为inp_buffer,PAGE为DATA,Length为100。北京交通大学 国家工科电工电子教学基地DSP应用技术29Address指定从文件中读取的数据将放在什么地方。volume.c申明inp_b
17、uffer为整数矩阵BUFSIZE(volume.h中定义)Length指定每次从数据文件中读多少样本。这里取100,因为volume.h设置常量为BUFSIZE(0 x64)。WrapAround选择引起当其到达文件末尾时,CCS开始从文件开始读。这样允许数据文件被看作为连续的数据流。北京交通大学 国家工科电工电子教学基地DSP应用技术30CCS数据文件格式:头信息+数据头信息:MagicNumberFormatStartingAddressPageNumLength其中:MagicNumber:固定为1651Format:14,数据存储格式,分别对应:十六进制数、整数、长整数、浮点数中的一
18、种StartingAddress:数据存放的起始地址PageNum:页码,指明数据所在的数据页Length:数据的长度,以word来表示头信息一般缺省为16511000。I/O文件的格式(如:sine.dat)北京交通大学 国家工科电工电子教学基地DSP应用技术312.6 观察数值的图形 在这个例子中,可以查看关于时间的信号图形。1.选择View/Graph/Time/Frequency。2.在GraphPropertyDialog对话框,更改GraphTitle,StartAddress,AcquisitionBufferSize,DisplayDataSize,DSPDataType,Au
19、toscale,和MaximumY-value属性,下拉或重新拉大对话框,查看所有属性。北京交通大学 国家工科电工电子教学基地DSP应用技术32GraphPropertyDialog对话框 北京交通大学 国家工科电工电子教学基地DSP应用技术334.右击Inputgraph窗口,从下拉菜单中选择Clear Display。5.再次选择View/Graph/Time/Frequency。6.这次更改Graph Title为为Output,Start Address为out_buffer,所有其他设置都正确。7.单击OK,显示输出图形Outputgraph窗口,右击Outputgraph窗口,从下
20、拉菜单中选择Clear Display。3.单击OK。出现InputBuffer的Input图形窗口。北京交通大学 国家工科电工电子教学基地DSP应用技术342.7 动态执行程序和显示图形 至此,已经放置断点,将PC中的数据传输到目标DSP;可暂停目标DSP,或继续目标DSP应用程序。本节建立断点(breakpoint),修改图形,使用Animate命令,遇到断点后继续自动执行。1.在volume.c窗口,将光标放在调用dataIO的行上。2.单击(ToggleBreakpoint),或按F9,选中空白区域放置红色图标,代表断点。北京交通大学 国家工科电工电子教学基地DSP应用技术353.调整
21、窗口,使得两个窗口都可以看见。5.每遇到断点一次,CCS就从sine.dat文件获得100个数值,并将它们写入inp_buffer地址。4.单击(Animate),或按F5运行程序。Animate=Runhaltcontinue 北京交通大学 国家工科电工电子教学基地DSP应用技术36增益Gain=1 北京交通大学 国家工科电工电子教学基地DSP应用技术372.8 调整增益调整增益Gain 处理函数将输入缓冲器中的每个值乘以增益,并将结果放在输出缓冲器。在while循环中执行下面的语句。1.*output+=*input+*gain;这个语句将inp_buffer中的数值乘以增益,并结果放在o
22、ut_buffer中相应的位置。增益初始化设置在MINGAIN上,在头文件volume.h定义中。如果修改输出,则需要修改增益。办法之一是,修改观查窗的变量数值:北京交通大学 国家工科电工电子教学基地DSP应用技术381.选择菜单View下WatchWindow选项,选中Watch1。2.单击Name栏中的表达式图标,键入观察的变量gain。3.单击观察窗口中的白色空间,保存更改。在下面的例子中将立即出现这个数值。在观察窗中调整增益Gain的步骤:北京交通大学 国家工科电工电子教学基地DSP应用技术395.从Debug菜单,选中Halt。6.在观察窗口,选中增益值(1),将其改为10。4.如果程序已经暂停,单击(Animate),重新启动程序,观察前面建立的输入输出图形。7.从Debug菜单,选中Animate。注意更改Outputgraph中信号幅度,反映在下面的例子中的增益。北京交通大学 国家工科电工电子教学基地DSP应用技术40增益Gain=10 北京交通大学 国家工科电工电子教学基地DSP应用技术41如何利用断点将inp_buffer中的内容输出到文件sineout.dat中?与输入文件sine.dat相比较,内容是否一致?三、实验思考题三、实验思考题