1第4章CCSIDE环境及GEL文件2本章重点重点:CCS环境的设置工程文件的组成断点图形化窗口Graph第4章CCS集成开发环境4.1CCS系统安装与设置4.2CCS菜单和工具栏4.3CCS编译器/汇编器和链接器选项设置4.4用CCS开发简单的程序4.5在CCS中读取数据和数据的图形显示4.6代码执行时间分析4.7GEL文件4.1CCS系统安装与设置4.1.1CCS系统安装4.1.2为CCS安装设备驱动程序返回首页4.1.1CCS系统安装进行CCS系统安装时,先将CCS安装盘插入CD-ROM驱动器中运行光盘根目录下的setup.exe,按照安装向导的提示将CCS安装到硬盘中。安装完成后,将自动在计算机桌面上创建如图4-1所示的“CCS3.3(‟C2000)”,“SetupCCS3.3(„C2000)”等快捷图标。图4-1CCS3.3和SetupCCS3.3快捷图标返回本节4.1.2为CCS安装设备驱动程序在安装CCS后、运行CCS软件之前,首先需要运行CCS设置程序,根据用户所拥有的软、硬件资源对CCS进行适当的配置。启动SetupCCS应用程序,单击Close按钮关闭ImportConfiguration对话框,将显示CodeComposerStudioSetup窗口,如图4-2所示。图4-2CodeCompuserstudioSetup窗口返回本节9选择目标器件和仿真器10保存并退出,同时启动CCS4.2CCS菜单和工具栏4.2.1菜单4.2.2工具栏返回首页图4-4CCS运行主窗口4.2.1菜单1.File菜单表4-1File菜单2.Edit菜单表4-2Edit菜单3.View菜单表4-3View菜单4.Project菜单表4-4Project菜单5.Debug菜单表4-5Debug菜单6.Profiler菜单表4-6Profiler菜单图4-5时钟设置7.Option菜单表4-7Option菜单图4-6MemoryMap对话框8.Tools菜单表4-8Tools菜单返回本节4.2.2工具栏1.StandardToolbarStandard工具栏包括以下常用工具如图4-7所示:图4-7Standard工具栏2.GELToolbarGEL工具栏提供了执行GEL函数的一种快捷方法,如图4-8所示。在工具栏的左侧文本输入框中键入GEL函数名,再单击右侧的执行按钮即可执行相应的函数。如果不使用GEL工具栏,也可以使用Edit菜单下的EditCommandLine命令执行GEL函数。图4-8GEL工具栏3.ProjectToolbarProject工具栏提供了与工程和断点设置有关的命令,Project工具栏提供了以下命令如图4-9所示。图4-9Project工具栏4.DebugToolbarDebug工具栏提供以下常用的调试命令如图4-10所示。图4-10Debug工具栏5.EditToolbarEdit工具栏提供了一些常用的编辑命令及书签命令如图4-11所示。图4-11Edit工具栏6.Plug-inToolbarsPlug-inToolbars包括WatchWindow和DSP/BIOS两个窗口,其中WatchWindow如图4-12所示。图4-12WatchWindow工具栏返回本节4.3CCS中的编译器、汇编器和链接器选项设置4.3.1编译器、汇编器选项4.3.2链接器选项返回首页4.3.1编译器、汇编器选项编译器(Compiler)包括分析器、优化器和代码产生器,它接收C/C++源代码并产生TMS320C54x汇编语言源代码。汇编器(Assembler)的作用就是将汇编语言源程序转换成机器语言目标文件,这些目标文件都是公共目标文件格式(COFF)。如图4-13、表4-9所示。图4-13生成选项窗口——编译器标签表4-9编译器、汇编器常用选项(在Compiler中)返回本节4.3.2链接器选项在汇编程序生成代码中,链接器作用为:(1)根据链接命令文件(.cmd文件)将一个或多个COFF目文件链接起来,生成存储器映象文件(.map)和可执行的输出文件(.out文件)。(2)将段定位于实际系统的存储器中,给段、符号指定实际地址。(3)解决输入文件之间未定义的外部符号引用(如图4-14、表4-10所示)。图4-14生成选项窗口——链接器标签表4-10链接器常用选项(在Linker中)返回本节4.4用CCS开发简单的程序1.创建新的工程文件工程文件中包含着设计中所有的源代码文件、链接器命令文件、库函数、头文件等。(1)在CCS的安装目录的myprojects子目录下创建一个volume1目录。(2)启动CCS,在Project菜单中选择New项,在Project中输入volume1,CCS将创建一个名为volume1.pjt的工程。返回首页2.将文件添加到工程中(1)将文件添加到工程中(2)察看工程的结构(如图4-15所示)。(3)查看代码图4-15工程视窗3.生成和运行程序(1)选择菜单命令Project→RebuildAll,对工程重新编译、汇编和链接,主窗口下方的信息窗口将显示build进行汇编、编译和链接的相关信息。(2)选择菜单命令File→LoadProgram,在当前目录的Debug目录下选择volume1.out并打开,将Build生成的程序加载到DSP中。(3)选择菜单命令Debug→Run或在Debug工具栏上单击Run按钮,运行该程序。4.改变Build选项并修改程序语法错误选择菜单命令Project→BuildOptions,弹出BuildOptions窗口,选择Compiler标签,在类(Category)列表中选择预处理(Preprocessor),如图4-16所示。在DefineSymbols域中键入FILEIO,定义符号FILEIO。此时,在命令输入和显示窗口看到-d“FILEIO”。5.断点和观察窗口的应用(1)选择菜单命令File→ReloadProgram,重新加载程序(即加载volum1.out)。(2)在工程视图中双击volume.c,打开源文件编辑窗口,将光标放在dataIO()行上,并按F9键或工具栏中的设置断点。(3)选择菜单命令View→WatchWindow,弹出Watch窗口(如下图)。图4-16在BuildOptions窗口定义FILEIO图4-17观察窗口观察结构体变量的值返回本节4.5在CCS中读取数据和数据的图形显示4.5.1断点设置及从PC机文件中读取数据4.5.2静态图形显示4.5.3动态图形显示返回首页4.5.1断点的设置及从PC机文件中读取数据(1)选择菜单命令File→LoadProgram,选择sinwave.out并打开。(2)在工程视图中双击sinwave.c,在右边的编辑窗口中将显示源代码。(3)在main函数中的dataIO()那一行上设置断点。(4)单击Run图标运行,程序在断点处停下来。48(5)将光标移至断点所在的行。(7)右击弹出快捷菜单,选择SoftwareBreakpoints,然后单击Edit。注意:CCS2.2和CCS3.1中,观察图形Graph需要在程序中添加探针。CCS3.3取消了探针工具,其功能包含于断点之中。5051(8)在右侧弹出断点属性编辑窗口。52(9)对断点属性进行设置:a.Action:HalttargetReaddatafromfileb.数据文件选择:C:\CCStudio_v3.3\tutorial\dsk2812\sinewave\sine.datc.勾选Warparound,使文件循环读取。d.StartAddress设为:currentBuffer.inpute.Length设为:100其它选项保持默认设置。53数据文件选择:C:\CCStudio_v3.3\tutorial\dsk2812\sinewave\sine.dat设置后的断点属性544.5.2图形Graph显示(1)点击ReplaceBreakpointsProperty按钮,出现播放框。(2)点击ViewGraphTime/Frequency进行设置。(3)单击OK按钮,将出现Input图形窗口。(4)ClearDisplay清除原有显示。(5)添加断点。565758填写信息,然后点击OK。GraphTitle——InputStartAddress——currentBuffer.inputAcquisitionBufferSize——100DSPDataType——16bitsignedinteger单击右键选ClearDisplay,清除已有显示波形。点击菜单项DebugBreakpoints,出现断点管理窗口60点击New,在弹出的编辑框中输入dataIO61新设置的断点如图所示:62点击Run,可以看到运行的效果。634.6代码执行时间分析(1)选择菜单命令File→ReloadProgram,重新加载程序Volume1.out。(2)选择菜单ViewMixedSourceASM,将窗口切换至源程序和汇编程序同时显示的模式。(3)选择DebugGoMain,看到代表源程序的黄色小箭头和代表汇编代码的绿色小箭头都指向main函数的入口处。(4)在main函数内的第一行代码前设置断点。点击DebugGoMain,并设置断点:65点击ProfileClockEnableProfileClockView66Clock单位:CPU时钟周期674.7GEL文件GEL文件的作用GEL及其使用GEL关键字CCS自带的GEL函数684.7.1GEL的作用GEL是CCS功能增强器69GEL的作用在于扩展CCSStudio的功能,可以用gel来调用一些菜单命令,对DSP的存储器进行初始化配置等,但不是必需的。当希望上电后立刻开启或实现某些功能,那么可以在项目中装载GEL文件(由TI提供或用户自行编写)来实现这个目的。对于使用仿真器和DSP功能板的仿真环境用户来说,GEL语言文件没必要加入到配置中。GEL语言的重要性在于针对计算机模拟环境的用户,使用gel可以为其准备一个虚拟的DSP仿真环境,但也不是非用不可的。GEL文件到底需不需要加载?不必要。4.7.2GEL及其使用GEL支持的语句类型GEL函数GEL文件的加载与卸载71GEL(GeneralExtensionLanguage,通用扩展语言)是一个大小写敏感但缺少类型检测的解释性语言,有int类型,在语法上可看作是C语言的一个子集。GEL支持以下类型的语句:函数定义函数参数调用GEL函数返回语句if-else语句whileordowhile语句GEL注释预处理语句(1)GEL文件支持的语句类型(2)GEL函数定义:funcName([para1[,para2…[,paran]]]){statements}实例square(a){returna*a;}73参数类型不需要定义,只要求参数名;参数可以是:a.DSP目标板符号值;b.数字常量;c.字符串常量。程序执行时,传递的自变量决定参数取值74GEL函数的参数函数定义:Initialize(a,filename,b){targVar=b;a=0;GEL_Load(filename);returnb*b;}正确调用:Initialize(targetSymbol,“C:\\CCStudio_v3.3\\...\\gpio.out”,28*4+2.52);75实例:(3)GEL语句返回语句:returnexpression;if-else语句定义:funcName([para1[,para2…[,paran]]]){statements}实例square(a){returna*a;}76(4)GEL函数的加载与卸载77卸载784.7.3GEL关键字hotmenu将GEL函数添加到GEL菜单里。dialog向G