软件开发工具CCS的使.ppt
第五章 软件开发工具CCS的使用,一、CCS集成开发环境简介,CCS(Code Composer Studio)是一个完整的DSP集成开发环境,是目前最优秀、最流行的DSP开发软件之一。现在TI所有的DSP都可以使用该软件工具进行开发,只有C5000和C6000的CCS中才提供DSPBIOS功能,而在C2000和C3X的中是没有DSPBIOS功能的。所以有时也将用于C2000和C3X开发的集成开发环境称为 cc(Code Composer),以示区别。CCS支持软仿真器、各种型号硬件仿真器、各种DSK和EVM板,需要向相应的生产厂家索取驱动程序,然后在CCS中安装即可。,CCS的功能介绍,集成可视化代码编辑界面,可直接编写c、汇编、.H文件、.cmd文件等。集成代码生成工具,包括汇编器、优化c编译器、链接器等等。基本调试工具,如装入执行代码(.OUT文件),查看寄存器窗口,存储器窗口,反汇编窗口,变量窗口等,支持c源代码级调试。支持多DSP调试。断点工具,包括硬件断点、数据空间读写断点,条件断点(使用GEL编写表达式)等等。探针工具(probe points),可用于算法仿真,数据监视等。剖析工具(profile points),可用于评估代码执行的时钟数。,数据的图形显示工具,可绘制时域频域波形、眼图、星座图、图象等,并可自动刷新(使用Animate命令运行)。提供GEL工具,令用户可以编写自己的控制面板菜单,从而方便直观地修改变量,配置参数等。支持RTDX(Real Time Data exchange)技术,利用该技术可在不中断目标系统运行的情况下,实现DSP与其他应用程序(OLE)实现数据交换。开放式的plugins技术,支持其它第三方的ActiveX插件,支持各种仿真器包括软仿真(只需安装相应的驱动程序)。提供DSPBIOS工具,利用该工具可增强对代码的实时分析能力,如分析代码执行的效率,调度程序执行的优先级,方便管理或使用系统资源(代码数据占用空间,中断服务程序的调用,定时器使用等等),从而减小开发人员对硬件资源熟悉程度的依赖性。,二、CCS的安装及使用概述,包括以下内容:CCS的安装与设置。CCS的使用概述,1.CCS的安装,将CCS安装光盘放入CDROM驱动器中,运行光盘根目录下的setup.exe,按照安装向导的提示将CCS安装到硬盘中,默认安装目录为c:ti。安装完成后,在计算机桌面上创建“CCS 2(C5000)”“Setup CCS 2(C5000)”两个图标。,CCS安装完成之后,在第一次运行CCS软件之前必须运行CCS设置程序。CCS是一个开放的环境,通过设置不同的驱动完成对不同环境的支持。CCS中集成了TI DSP的Simulator和Emulator的驱动程序,用户可以根据需要有选择的进行设置。当使用其它公司的DSP产品时,需要索取并安装相应的驱动程序。,2.CCS的文件组织,CCS安装完成之后,将在ccs安装目录下建立以下子目录:bin:应用程序目录c5400cgtools:ti代码产生工具目录c5400example:源代码例子目录c5400rtdx:实时数据交换文件目录c5400tutorial:ccs程序使用教程目录ccbin:ccs环境的程序文件目录ccgel:ccs中使用的gel文件目录docs:存放ccs的相关说明文档myprojects:可以存放用户的工程设计文档,3.CCS中的文件类型,project.mak:CCS1.2中使用的工程文件project.pjt:CCS2.0之后使用的工程文件program.c:c程序源文件program.asm:asm源文件filename.h:c程序和DSP/BIOS API头文件filename.lib:库文件project.cmd:链接命令文件program.obj:编译或汇编产生的目标文件program.out:可执行的程序文件program.wks:用于保存环境设置的工作文件program.cdb:配置数据库文件,4.CCS的启动,双击桌面上的CCS 2(C5000)图标,运行CCS程序。如果在CCS中有多项配置,将会出现并行调试管理器窗口(Parallel Debug Manager),在Open下拉菜单下,选择程序。,打开配置窗口,添加自己的配置,复位目标板,5.CCS的使用,使用CCS开发程序的一般步骤:(1)打开或创建一个工程文件,包括源程序、目标文件、库文件、链接命令文件和头文件。(2)编辑各类文件,如头文件、命令文件和源程序。(3)对工程文件进行编译,如有错误则需要改正。(4)对程序进行调试,对计算结果、输出数据进行分析,评估算法性能。,创建、打开和关闭工程,ProjectNew:用于创建一个新的工程文件ProjectOpen:用于打开一个已有的工程文件ProjectClose:用于关闭当前的工程文件,在工程中添加/删除文件,用命令Project Add File to Project,在对话窗口中选择需要的源程序和需要的文件在工程视图窗口单击鼠标右键,在弹出的菜单中选择Add File to Project在工程视图窗口单击鼠标右键,在弹出的菜单中选择Move from Project,可以从工程中删除文件源文件、链接命令文件、库文件需要用户指定加入,头文件可以通过扫描相关性(Scan All Dependencies)自动加入到工程中,扫描相关联性文件,使用命令Project Show Dependecies或Project Scan All Dependecies创建相关文件在源文件中以“#include”、“.include”、“.copy”、“.h”标识的文件被自动加入到工程中,编辑源程序,File New Source File:弹出编辑窗口进行编辑CCS下可以编辑任何文本文件,可以打开多个窗口可以在其它的编辑环境下先对源程序或链接命令文件进行编辑,构建工程,当工程所需文件完成之后,就可以对工程进行编译链接,生成可执行文件,为调试作准备构建工程有4条命令:编译文件:Project Compile File构建:Project Build重新构建:Project Rebuild停止构建:Project Stop Build上述四条命令也可以通过单击工程工具条的相应按钮来实现编译器所用参数可以通过Project Option菜单设置,程序调试,一般调试步骤:调入编译成功的可执行程序在程序需要的地方设置断点执行程序停在断点处,查看寄存器或内存单元的值,对中间数据进行分析如果需要的话,对程序进行修改反复上述过程,直至程序达到预期的功能,调入可执行程序,使用命令File Load Program载入编译链接好的可执行程序(.out文件)也可以修改“Program Load”属性,使构建工程后自动装入可执行程序。设置方法为选择命令Option Program Load,使用反汇编工具,使用反汇编工具查看汇编级的程序当源程序是C代码时,可以选择使用c和asm的混合显示或纯汇编代码的显示模式方法:View Mixed Source/Asm,程序的执行控制复位目标板,复位目标板的方法Reset DSP:Debug Reset CPU 初始化所有的寄存器内容,并暂停程序的运行。Restart:Debug Restart 将pc恢复到当前载入程序的入口地址。Go Main:DebugGo Main PC指向主程序入口。,执行程序的4种命令:Debug Run:运行程序,直到遇到断点为止Debug Halt:暂停程序的执行Debug Animate:动画执行程序Debug Run Free:全速运行程序,禁止所有断点注意:在仿真器中,Run Free 命令无效4种单步执行命令:单步进入:Debug Step Into(快捷键F8)单步执行:Debug Step Over(快捷键F10)单步跳出:Debug Step Out(SHIFT+F7)执行到当前光标处:Debug Run to Cursor(快捷键Ctrl+F10),程序的执行控制执行程序,程序的执行控制 断点操作,软件断点设置 使用断点对话框:使用命令 Debug Break points 弹出对话框 采用工程工具条:将光标移到需设置断点的语句上,单击设置断点按钮设置断点断点删除在设置断点对话框中选中列表中一个断点,单击Delete按钮可删除断点。允许和禁止断点在设置断点对话框中单击Enable all 或Disable all 将允许或禁止所有断点。硬件断点:用于在Rom存储器中设置断点或读写内存时产生中断,程序的执行控制内存、寄存器和变量操作,内存块操作:包括拷贝数据块和填充数据块,主要用于数据初始化。查看编辑内存:View memory查看CPU寄存器:View CPU Register编辑变量:Edit Edit Variable通过观察窗口查看变量。删除观察变量。观察数组或结构变量。,变量显示格式数据输入与结果分析装入保存数据文件输入/输出数据文件格式利用图形窗口分析数据评估代码性能测量时钟,程序的执行控制其他操作,三、DSP集成开发环境Code Composer Studio开发指南,主要内容,(一)、CCS的初步使用1、打开一个已有的工程,并进行编译、链接和执行。2、新工程的建立、设置、编译链接和执行。3、工程的基本调试。(二)、CCS的高级使用 断点和观察窗口的使用、探针与文件I/O的使用、图形显示窗口的使用以及代码的执行统计。,(三)、Code Composer Studio 开发例程。,(四)、Code Composer Studio深入学习和使用,(一)、CCS的初步使用,ProjectOpen:打开工程tutorialhello1hello.pjt。在工程窗口中,展开source项,双击hello.c察看源文件内容。ProjectRebuild All对当前工程进行编译,编译结果应该是0 Errors,0 Warnings,0 Remarks。,1、打开已有的工程并进行编译链接和运行,FileLoad Program打开装载程序窗口,装入tutorialhello1debughello.out可执行文件。DebugGo main 将程序指针指向main函数入口。DebugRun(或按F5键)运行程序,在stdout 输出窗口应显示hello world!DebugRestart 重新将程序指针指向main函数入口,并运行程序。,2.建立新工程,并设置、编译链接和执行,在myproject目录下,使用project-new建立一个新的工程hello.pjt,键入工程名称,生成相应名称的子目录及工程文件。将tutorialhello1 目录下的文件除了hello.pjt工程文件之外全部拷贝到目录myprojecthello 下面。往工程中添加文件在工程栏中,在工程的名字上单击鼠标右键,或在工程project菜单中,选中 Add Files to Project,往工程中添加文件。,一般地,需要往工程中手动添加以下几种文件:.cC程序源文件.asm汇编程序源文件.lib库文件.cmd链接命令文件.h头文件使用projectScan All File Dependencies 由CCS集成开发环境自动添加.H头文件,但需要在编译选项中正确设置include搜索路径。设置编译链接选项(Build Options):在工程栏中,在工程的名字上单击鼠标右键,或在工程project菜单中,选中 Build Options,设置编译链接选项。,Build Options主要需要设置几个地方:CompilerPreprocessorInclude Search Path,include 文件搜索路径,可以使用绝对路径,也可以使用相对路径来进行定义。假设一个自定义工程在myproject目录下,则文件搜索路径可定义为.c5400dsk5402include。LinkBasicInclude Libraries(-l)定义链接库文件,输入rts.lib(运行时链接库)即可。根据需要设置其它选项,例如.out文件和.map文件的输出路径和名称。,Rebuid All 对工程进行编译链接,产生用于调试执行的.out文件在Build窗口中提示编译链接的过程、错误和结果,如果有错误则需要改正错误之后重新对工程进行编译链接。双击错误提示可以自动进行错误定位。当Build窗口中提示0 Errors,0 Warnings,0 Remarks 时,说明工程已经成功进行了编译链接。装载程序(load program)myprojecthellodebughello.out,DebugGo Main 将程序指针指向main函数入口DebugRun(或按F5键)运行程序。DebugHalt暂停程序运行。DebugRestart 重新将程序指针指向main函数入口,并运行程序。,3.工程的调试,Load Program,装载程序将工程正确Build后,需要把.out 文件装入DSP目标板进行调试 DebugGo Main 将程序指针指向main函数入口Debug Run(或按F5键)断点运行程序Debug Run Free全速运行程序Debug Animate动画运行程序Debug Halt停止运行程序,单步运行程序Step Into、Step Out、Step Over。断点(Breakpoints)的设置与使用 快捷图标。变量察看(ViewWatch Window)。遇到断点程序停止执行后,可以使用变量观察窗口察看变量。,(二)、CCS的高级使用,包括以下内容:1、各种观察窗口的使用2、探针与文件I/O的使用3、图形显示窗口的使用4、代码的执行统计,打开工程tutorialvolume1volume.pjt进行编译链接(Build All)装载程序(Load Program)DebugGo Main指向main函数的入口,1.准备工作,2.各种观察窗口的使用,ViewDisassembly反汇编察看窗口。ViewMemory程序存储器、数据存储器、I/O空间数据观察窗口。ViewRegistersCpu Registerscpu寄存器观察窗口。ViewRegistersPeripheral Reg片上外设寄存器观察窗口。ViewGraphTime/Frequency时域/频域图形观察窗口。ViewMixed Source/ASM察看源程序/汇编程序混合显示窗口。,CCS的各种观察窗口,3.探测点(探针)与文件I/O的使用,探测点(Probe point)与文件I/O的关系。文件I/O使用探测点来停止当前程序的执行。设置程序探测点时注意以下两点:不要将探测点设置在任何延迟分支或调用指令的地方。不要将探测点设置在重复的块指令倒数1、2行指令的地方。文件I/O不支持实时数据交换。如果要进行实时数据交换,应使用RTDX功能。,探测点的设置与删除将光标移动到需要设置探测点的代码行。单击图标 设置探测点,在代码行前出现蓝色小菱形。将光标移动到需要删除探测点的代码行。单击图标 探测点将被删除。利用探测点来观察CPU寄存器的值。设置探测点。在Break/Probe point 窗口中Probe point选项下的Connect栏中选择C54X Registers 选项,然后单击确定按钮。View Cpu Registers,I/O文件的格式CCS数据文件格式:头信息+数据。头信息:MagicNumber Format StartingAddress PageNum LengthMagicNumber:固定为1651。Format:1-4,数据存储格式,是十六进制数、整数、长整数、浮点数中的一种。StartingAddress:数据存放的起始地址。PageNum:页码,指明数据所在的数据页。Length:数据的长度,以word来表示。头信息一般缺省为1651 1 0 0 0。这时,可以在弹出的文件I/O对话框中输入起始地址和数据长度,输入的信息将自动替换数据文件的头信息。,数据文件举例sine.dat:,1651 1 0 1 0 0 x00000 x000f0 x001e0 x002d0 x003a0 x00460 x00500 x0059,设置PC数据文件与探测点相关联设置探测点。执行File File I/O菜单命令。在File I/O对话框中,在文件输入栏单击 按钮打开sine.dat。在Address栏中输入inp_buffer,在length栏中输入0 x100。单击 按钮。首先在probe point栏中选中要关联的探测点。其次在Connect栏,从列表中选择sine.dat文件。单击Replace按钮,Probe Point列表中显示探测点与文件sine.dat相关联。,观察时域波形:ViewGraphTime/Frequency弹出Graph Property对话框。可以更改图形显示的标题、起始地址、缓冲区大小、显示数据大小、DSP数据类型等选项。单击OK,出现波形的图形窗口。在图形窗口中单击鼠标右键,在弹出菜单中选择Clear Display,清除已有的图形。在图形窗口中可同时显示输入输出信号的时域波形显示类型为Dual Time,除了起始地址不同外,其它参数均相同。,4.设置图形显示窗口,在代码行设置探测点。同时在代码行设置断点,该行同时有红色小圆点和蓝色小菱形。这可以使程序暂停执行一次的情况下进行两种操作:传输数据和更新图形窗口显示。单击Animate图标或按F12键动画执行程序。当程序执行遇到断点后会临时中断程序的运行,更新图形窗口的显示,并继续执行程序。可以将Animate命令理解为:运行中断继续运行。,5.程序的动画执行,ViewWatch Window,6.改变增益,察看变量的值,7.从文件读入数据到内存,直接将PC机数据文件装载到DSP目标系统的内存:FileDataLoad,打开文件sine.dat。弹出Load File Into Memory对话框,修改Address栏、Length栏、Page栏,单击OK按钮。ViewMemory 观察内存中inp_buffer中的数据。DataSave,可将程序运行的结果保存到文件。,(三)Code Composer Studio开发例程,适用对象:,CCS 初学者,在CCS IDE 中开发一个简单的应用程序。,功能:,目标:学习如何建立一个工程学习基本调试技术,工程名称:tutorialtargetvolume1volume1,学习内容,新建一个工程(project),向工程中添加文件,浏览代码,编译和运行程序,利用编译选项对话框改变编译选项,使用编译器确定并改正代码错误,基本调试技术,断点(breakpoints),观察窗口(watch windows),文件I/O,新建一个新工程,1、在CCS中的Project 菜单,选择 New。,新建一个新工程(续),6.将c:titutorialvolume1拷贝到c:timyprojectsvolume1。,3.在Project Name域中,键入工程名称volume1,CCS自动在 c:timyprojects中建立文件夹 volume1以及volume1.pjt文件,2在Location域中,浏览并确定建立工程所使用的文件夹。,4在Project Type域中,选择Executable(.out)。,5在Target域中,选择CCS配置的目标,并单击完成。,向工程中添加文件,1、从Project Add Files to Project,在Files of type对话框中,选择C Source Files(*.c;*.ccc)。选择 volume.c,单击 Open。(或右击Project View图标,选择Add Files to Project),2选择Project Add Files to Project,在Files of type对话框中,选择Asm Source Files(*.a*,*.s*)。选择vectors.asm 和 load.asm,单击Open。,3选择 Project Add Files to Project,在Files of type 对话框中选择 Linker Command File(*.cmd),选择volume.cmd,单击Open。,4选择ProjectAdd Files to Project,定位到编译器的库文件夹(C:tic5400cgtoolslib),在Files of type对话框中选择Object and Library Files(*.o*,*.lib)。选择DSP 运行时支持库文件rts.lib,单击Open。,5、Project View窗口,右键单击volume1.pjt,选择Scan All Dependencies.volume.h将出现在Project View窗口中的Libraries文件夹。,6、单击 volume1.pjt上的+号,展开工程列表。这个列表称为工程视图(Project View).,Project view,查看源程序代码,双击Project View中 volume.c文件,CCS窗口的右半窗中出现C源代码。,volume.c 简介:主程序打印一个信息,然后进入无限循环。在这个循环中,调用dataIO和处理函数。在输入缓冲区中,处理函数将每个值乘以增益,并将结果放到输出缓冲区。它也调用汇编装载程序,此程序消耗了传递到子程序的processingLoad个指令周期。例子中的dataIO函数不作任何处理,仅仅返回。文件I/O功能不使用C代码完成,而是使用CCS中的探测点(Probe Point),从主机的文件中读取数据到 inp_buffer缓冲区。,编译与运行程序,选择Project Rebuild All或单击(Rebuild All)菜单条按钮,CCS重新进行编译、汇编、链接工程里的所有文件。处理结果在窗口底部一个小框里显示。,默认时,.out文件编译到当前工程文件夹中的调试(debug)子目录中;也可以通过CCS工具条选择一个存储目录。,选择File Load Program装载程序,选中volume1.out,并按Open。(c:timyprojectsvolume1Debug 文件夹中)CCS将程序装载到目标DSP上,并打开Disassembly窗口显示程序反汇编指令。,选择View/Mixed Source/ASM.可以同时查看C源程序和对应的汇编代码。,在混合窗口单击汇编指令(单击实际的指令,而不是指令的地址或指令所在的区域),按下F1键可以寻找此指令的帮助。,选择Debug Go Main。程序指向main函数的入口。,选择Debug Run或单击(Run)按钮运行程序。,选择Debug Halt,退出程序运行。,.从View菜单,选择Mixed Source/ASM。这样就可以看到没有汇编指令的C代码。,更改程序选择,定位语法错误,本节学习使用CCS设置预处理器选择,并纠正语法错误。,选择Project Build Options.,在Build Options窗口的Compiler上,选择Category列表的Preprocessor,在Define Symbols区域键入FILEIO,按Tab键。,单击OK,保存设置。,Build Options for Volume1.pjt,.选择Project Rebuild All或单击(Rebuild All)按钮。只要工程选项更改,则必须重新编译所有的文件。,.编译信息显示,程序包含编译错误。单击Build,你可以看见语法错误信息。,6.双击描述语法错误位置的红色文字(第68行)注意volume.c源程序已打开,且光标定位于下面的行:processing(input,output);,7.语法错误位于光标位置的上一行(分号丢失),如:puts(begin processing);,8注意,Edit窗口标题栏中的文件名附近出现星号(*),指示 源程序已经被修改,文件保存后,星号消失。,9选择File Save,或按Ctrl+S,将更改保存到volume.c.,10选择Project Build,或(Incremental Build)单击工具条,CCS重新编译已经修改的文件。,11选择File Load Program,选中volume1.out装载程序。,12选择Debug Go Main,程序指向main函数的入口。执行暂停在主程序,并且由 符号标识。,13选择Debug Run或单击(Run)菜单条运行程序。,14选择 Debug Halt,退出程序运行。,使用断点和观察窗口,程序执行时常常需要检查变量的值,1.File Reload Program.重新装载程序。,2、双击Project View 窗中的volume.c观察源程序代码。可以将窗口变大,看到更多的源代码。,3、将光标放在 dataIO()程序行。,4、单击(Toggle Breakpoint)工具条,或按F9设置断点。代码左侧空白区的红色图标指示断点已经设置。,5选择View Watch Window打开变量观察窗口,用于观察程序运行时变量的值。缺省时选中Watch Locals,显示正在执行的函数的局部变量。,6.如果不在主程序的入口,选择Debug Go Main.,8.选择Watch1,9.单击Name栏中表达式图标,键入要观察的变量名dataIO。,10.单击观察窗口中的白色区域,保存更改。这个值将立即出现在下面的例子中。,7选择Debug/Run,或按F5,或单击图标 运行程序。,11.单击(Step Over)或按F10,跨过对dataIO()的调用。,Step Into(F8)Step Over(F10)Step Out(Shift F7)Run to Cursor(Ctrl F10),12.完成后,单击 移除所有的断点,再继续下面的学习。,使用带结构的观察窗口,除了观察简单变量的值,也可以观察一个结构变量的值。,1.选择Watch1。,2.单击Name栏中的表达式图标,键入要观察表达式名称str。,3.单击观察窗口中的白色空间,保存更改。数值将立即出现在下面的例子中。,4.重新浏览源代码volume.c,在其中声明并初始化了全局结构变量PARMS。在volume.h中定义了PARMS的结构类型。,5.单击str上的+号,CCS将显示结构中的所有元素和元素值。,双击结构中元素的Value,编辑元素的值。,6.在观察窗口的Value栏,改变变量的值。注意,观察窗口的变量值更改后,数值也变为红色,表示已经手动修改。,7.选择Watch Window 中str变量,按Delete 键删除。同样可删 除其它变量。,8.选择Debug Breakpoints。在Breakpoints中,单击Delete All删除所有断点,然后单击OK。,为了文件I/O添加探针Probe Point,探针(Probe Point)用于与PC机中的文件交换数据。探针是算法开发的有利工具。,探针的使用方式:,将主计算机文件中的输入数据,传递到算法所使用的目标缓冲器中;,将目标缓冲器中的输出数据,传递到PC机的文件中;,用数据更新窗口,例如图形窗口。,使用探针将PC文件中的内容作为测试数据传递到目标DSP。,1.选择File Load Program,选中volume1.out,单击Open。,2.双击Project View中的 volume.c。,3.将光标放到主程序中dataIO()程序行;,4.单击(Toggle Probe Point)。空白区域用兰色图标指示探针已经设置,如果禁止了空白 区(Option Customize Editor Properties),此行将高亮为兰色。,5.从File菜单,选择File I/O。出现File I/O对话框,可以继续选择输入、输出文件。,探针的使用,6.在File Input栏,单击Add File。,7.浏览volume1工程文件夹,选中sine.dat,单击Open。sine.dat 文件是正弦波的十六进制数据文件。,出现sine.dat文件的控制窗口。当以后运行程序时,可以在数据文件中使用此窗口启动、停止、返回、或快进。,8.在File I/O对话框,更改Address 为inp_buffer,Length为100,在Wrap Around中可以添加选中符号。,Address指定从文件中来的数据将放在什么地方。inp_buffer 在volume.c中声明为大小为BUFSIZE的整型数组。,Length指定每次到达探测点时从数据文件中读取多少样点。这里取100,因为volume.h中设置BUFSIZE常量为0 x64。,Wrap Around选项使CCS到达文件末尾时,重新从文件开始处读取数据。这允许数据文件成为连续的数据流。,9.单击Add Probe Point。出现 Break/Probe Points对话框中的 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 对话框显示文件sine.dat现在连接到Probe Point。,14.单击OK,关闭File I/O对话框。,显示图形,在这个例子中,可以查看关于时间的信号图形。,1.选择View Graph Time/Frequency。,2.在 Graph Property Dialog对话框,更改Graph Title,Start Address,Acquisition Buffer Size,Display Data Size,DSP Data Type,Autoscale,和 Maximum Y-value属性,下拉或重新拉大对话框,查看所有属性。,3.单击OK。出现Input Buffer的Input图形窗口。,4.右击Input graph窗口,从下拉菜单中选择Clear Display。,5.再次选择View Graph Time/Frequency。,6.这次更改Graph Title为Output,Start Address 为out_buffer,所有其他设置都不变。,7.单击OK,显示输出图形Output graph窗口,右击Output graph 窗口,从下拉菜单中选择Clear Display。,程序的动画执行,至此,已经放置断点,将主机中的数据传递到目标DSP;可暂停或继续目标DSP 的应用程序。但是,Probe Point不修改图形。本节使用断点和探针,配合 Animate命令,使程序遇到断点后继续自动执行,同时动态更新图形显示窗口。,1.在volume.c窗口,将光标放在调用dataIO的行上。,2.单击(Toggle Breakpoint)或按F9,在空白区域显示红色图标代表断点。,在同一行设置探测点Probe Point,这样传递数据和修改图形时目标程序只需暂停一次。,3.调整窗口,使两个窗口都可以看见。,5.每遇到探测点Probe Point一次,CCS就从sine.dat文件获得100个数值,并将它们写入inp_buffer地址。,4.单击(Animate),或按F12运行程序。Animate=Runhalt continue,增益Gain=1,注意:目标DSP 在探测点暂停。CCS遇到探测点时,暂停目标。因此,如果使用探测点,目标应用程序不能满足实时要求。在开发阶段,你可以检测算法,然后可以使用RTDX和DSP/BIOS分析实时特性。,6.选择Debug/Halt,退出程序运行。,调整增益Gain,处理函数将输入缓冲区中的每个值乘以增益,并将结果放在输出缓冲区。在while循环中执行下面的语句。,*output+=*input+*gain;,这个语句将inp_buffer中的数值乘以增益,并将结果放在out_buffer中相应的位置。增益初始化设置在定义在头文件volume.h中的MINGAIN符号常量。,如果修改输出,则需要修改增益。方法之一是使用观察变量。,1.选择View/Watch Window,选中Watch1。,2.单击Name栏中的表达式图标,键入gain,作为观察的变量。,3.单击观察窗口中的白色空间,保存更改。在下面的例子中将立即出现这个数值。,5.从Debug菜单,选中Halt。,6.在观察窗口,选中增益值(1),将其改为10。,4.如果程序已经暂停,单击(Animate),重新启动程序,观察前面建立的输入输出图形。,7.从Debug菜单,选中 Animate。注意更改 Output graph 中信号幅度,在反映在下面的例子中的增益。,增益Gain=10,8.从Debug菜单,选择Halt。,9.从Project菜单,选择Close。,10.关闭所有的其他窗口和图形。,至此,开发一个简单的程序全部结束。,