DSP开发环境和流程的简单例程.doc





《DSP开发环境和流程的简单例程.doc》由会员分享,可在线阅读,更多相关《DSP开发环境和流程的简单例程.doc(37页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、目录1概述11.1 CCS简介11.2 CCS基本结构12 CCS开发环境62.1 CCS一般操作流程62.2 CCS的窗口,主菜单和工具条62.3 建造和运行程序72.4 改变建造选项和修改语法错误82.5 使用断点与观察窗92.6 利用图形窗口分析数据112.7测算DSP/BIOS代码执行时间142.8 增加探针断点152.9 显示图形172.10 执行程序和绘制图形182.11 调节增益192.12 观察范围外变量192.13 使用GEL文件212.14 调节和测试processing函数223 用CCS分析FFT25附录 分析FFT源程序371概述1.1 CCS简介CCS(Code C
2、omposer Studio)是美国德州TI公司推出的DSP系统的一种开发软件,它提供了环境配置、源文件编译、程序调试、跟踪、分析等工具,可以帮助用户在一个软件环境下完成编辑、编译、连接、调试和数据分析等工作,和其他DSP软件相比,利用CCS软件能够加快软件开发进程,提高工作效率。Code Composer Studio 包含一整套用于开发和调试嵌入式应用的工具。它包含适用于每个 TI 器件系列的编译器、源码编辑器、项目构建环境、调试器、描述器、仿真器以及多种其它功能。CCS IDE 提供了单个用户界面,可帮助您完成应用开发流程的每个步骤。借助于精密的高效工具,用户能够利用熟悉的工具和界面快速
3、上手并将功能添加至他们的应用。CCS提供了基本的代码生成工具,它们具有一系列的调试、分析能力。CCS支持如下所示的开发周期的所有阶段。图1-1 CCS开发周期1.2 CCS基本结构1.2.1 CCS构成及接口 CCS包括如下各部分:CCS代码生成工具、CCS集成开发环境(IDE)、DSP/BIOS插件程序和API、RTDX插件、主机接口和API。CCS构成及接口见图1-2。图1-2 CCS构成及接口1.2.2代码生成工具代码生成工具奠定了CCS所提供的开发环境的基础。图2是一个典型的软件开发流程图3,图中阴影部分表示通常的C语言开发途径,其它部分是为了强化开发过程而设置的附加功能。图3描述的工
4、具如下:C编译器(C compiler) 产生汇编语言源代码,其细节参见TMS320C54x最优化C编译器用户指南。汇编器(assembler)把汇编语言源文件翻译成机器语言目标文件,机器语言格式为公用目标格式(COFF),其细节参见TMS320C54x汇编语言工具用户指南。连接器(linker)把多个目标文件组合成单个可执行目标模块。它一边创建可执行模块,一边完成重定位以及决定外部参考。连接器的输入是可重定位的目标文件和目标库文件,有关连接器的细节参见TMS320C54x最优化C编译器用户指南和汇编语言工具用户指南。归档器(archiver)允许你把一组文件收集到一个归档文件中。归档器也允许
5、你通过删除、替换、提取或添加文件来调整库,其细节参见TMS320C54x汇编语言工具用户指南。助记符到代数汇编语言转换公用程序(mnimonic_to_algebric assembly translator utility)把含有助记符指令的汇编语言源文件转换成含有代数指令的汇编语言源文件,其细节参见TMS320C54x汇编语言工具用户指南。可以利用建库程序(library_build utility)建立满足你自己要求的“运行支持库”,其细节参见TMS320C54x最优化C编译器用户指南。运行支持库(run_time_support libraries) 它包括C编译器所支持的ANSI标准
6、运行支持函数、编译器公用程序函数、浮点运算函数和C编译器支持的I/O函数,其细节参见TMS320C54x最优化C编译器用户指南。十六进制转换公用程序(hex conversion utility) 它把COFF目标文件转换成TI-Tagged、ASCII-hex、 Intel、 Motorola-S、或 Tektronix 等目标格式,可以把转换好的文件下载到EPROM编程器中,其细节参见TMS320C54x汇编语言工具用户指南。交叉引用列表器(cross_reference lister)它用目标文件产生参照列表文件,可显示符号及其定义,以及符号所在的源文件,其细节参见TMS320C54x汇
7、编语言工具用户指南。绝对列表器(absolute lister)它输入目标文件,输出.abs文件,通过汇编.abs文件可产生含有绝对地址的列表文件。如果没有绝对列表器,这些操作将需要冗长乏味的手工操作才能完成。图1-3 典型的软件开发流程图1.2.3 硬件仿真和实时数据交换TI DSPs提供在片仿真支持,它使得CCS能够控制程序的执行,实时监视程序运行。增强型JTAG连接提供了对在片仿真的支持,它是一种可与任意DSP系统相连的低侵扰式的连接。仿真接口提供主机一侧的JTAG连接,如TI XSD510。为方便起见,评估板提供在板JTAG仿真接口。在片仿真硬件提供多种功能:DSP的启动、停止或复位功
8、能向DSP下载代码或数据检查DSP的寄存器或存储器硬件指令或依赖于数据的断点包括周期的精确计算在内的多种记数能力主机和DSP之间的实时数据交换(RTDX)CCS提供在片能力的嵌入式支持;另外,RTDX通过主机和DSPAPIs提供主机和DSP之间的双向实时数据交换,它能够使开发者实时连续地观察到DSP应用的实际工作方式。在目标系统应用程序运行时,RTDX也允许开发者在主机和DSP设备之间传送数据,而且这些数据可以在使用自动OLE的客户机上实时显示和分析,从而缩短研发时间。RTDX由目标系统和主机两部分组成。小的RTDX库函数在目标系统DSP上运行。开发者通过调用RTDX软件库的API函数将数据输
9、入或输出目标系统的DSP,库函数通过在片仿真硬件和增强型JTAG接口将数据输入或输出主机平台,数据在DSP应用程序运行时实时传送给主机。图1-4RTDX系统组成在主机平台上,RTDX库函数与CCS一道协同工作。显示和分析工具可以通过COM API与RTDX通信,从而获取目标系统数据,或将数据发送给DSP应用例程。开发者可以使用标准的显示软件包,诸如National Instruments LabVIEW,Quinn-Curtis Real-Time Graphics Tools,或Microsoft Excel。同时,开发者也可研制他们自己的Visual Basic或Visual C+应用程序
10、。图1-5RTDX实例RTDX能够记录实时数据,并可将其回放用于非实时分析。下述样本由National Instruments LabVIEW 软件产生。在目标系统上,一个原始信号通过FIR滤波器,然后与原始信号一起通过RTDX发送给主机。在主机上,LabVIEW显示屏通过RTDX COM API获取数据,并将它们显示在显示屏的左边。利用信号的功率谱可以检验目标系统中FIR滤波器是否正常工作。处理后的信号通过LabVIEW,将其功率谱显示在右上部分;目标系统的原始信号通过LabVIEW的FIR滤波器,再将其功率谱显示在右下部分。比较这两个功率谱便可确认目标系统的滤波器是否正常工作。RTDX适合
11、于各种控制、伺服和音频应用。例如,无线电通信产品可以通过RTDX捕捉语音合成算法的输出以检验语音应用程序的执行情况;嵌入式系统也可从RTDX获益;硬磁盘驱动设计者可以利用RTDX测试他们的应用软件,不会因不正确的信号加到伺服马达上而与驱动发生冲突;引擎控制器设计者可以利用RTDX在控制程序运行的同时分析随环境条件而变化的系数。对于这些应用,用户都可以使用可视化工具,而且可以根据需要选择信息显示方式。未来的 TI DSPs 将增加RTDX的带宽,为更多的应用提供更强的系统可视性。关于RTDX的详细资料,请参见CCS中RTDX在线帮助。2 CCS开发环境2.1 CCS一般操作流程利用CCS集成开发
12、环境,可以在一个开发环境下完成工程的定义、程序编辑、编译、链接、调试和数据分析等工作环节。使用CCS开发应用程序的一般步骤为: (1)开发或创建一个工程文件。工程文件中包括源程序、目标文件、库文件、连接命令文件和包含文件。 (2)使用CC3集成编译环境,编译各类文件。如头文件(.h 文件)、命令文件(.cmd文件)和源程序.c,.asm文件)等。 (3)对工程进行编译。如有语法错误,将在构建窗口中显示出来。用户可以根据显示的错误信息定位错误位置,更改错误。 (4)排除语法错误之后,用户可以对计算结果/输出数据进行分析,评估算法性能。CCS提供了探针、图形显示、性能测试等工具来分析数据,评估性能
13、。2.2 CCS的窗口,主菜单和工具条 CCS应用窗口。整个窗口由主菜单、工具条、工程窗口、编辑窗口、图形显示窗口、内存单元显示窗口和寄存器显示窗口等构成,如图3所示。工程窗口用来组织用户的若干程序构成一个项目,用户可以从工程列表中选中需要编译和调试的特定程序。在源程序编译调试窗口中用户既可以编译程序又可以设置断点、探针,调试程序。反汇编窗口可以帮助用户查看机器指令,查找错误。内存和寄存器显示窗口可以查看、编辑内存单元和寄存器。图形显示窗口可以根据用户需要直接或经过处理后显示数据。用户可以通过主菜单Windows条目来管理窗口。图2-1 CCS应用窗口示例2.3 建造和运行程序建造(Build
14、ing)在这里指编译(Compiling)、汇编(Assembling)、链接(Linking)三个独立步骤按顺序联合运行。在DOS命令行下,这些步骤需要手工分步执行,而在CCS集成开发环境里,一个“Building”命令即可自动完成上述三个独立步骤。在主菜单中单击“Project”,选择“Rebuild All”,或者单击工具条图标 (Rebuild All),CCS将重新对工程中所有文件进行编译、汇编和连接,并同步在底部窗口中显示编译连接信息。连接完毕,CCS生成一个“out”文件,默认存放在“debug”目录内。建造完毕之后,再完成装载程序的步骤:在主菜单中单击“File”,选择“Loa
15、d Program”,如图2-2所示。在弹出的对话框中,在CCS的安装目录下,选择“.out”文件并打开。CCS装载完毕该.out文件到目标DSP之后,会自动弹出“Disassembly”窗口,显示构成源代码的反汇编指令,如图2-3所示。同时,CCS还会在底部窗口弹出“stdout”栏,用于显示程序在运行时的输出信息。图2-2 装载程序图2-3反汇编(Disassembly) 窗口现在可以开始运行我们的程序:在主菜单中单击“Debug”,选择“Go Main”,让程序从主函数开始执行。程序会停在main()处,并会有一个黄色的箭头标记当前要执行的C语言代码。如果希望同时看到C语言代码和对应编译
16、生成的汇编代码,在主菜单中单击“View”,选择“Mixed Source/ASM”,此时会有一个绿色的箭头量标记当前要执行的汇编代码,如图2-4所示。此时,在浅灰色显示的汇编指令上单击鼠标,然后按F1键,CCS会对该汇编指令进行搜索并弹出帮助窗进行解释。可以利用该功能来了解不熟悉的汇编指令。在主菜单中单击“Debug”,选择“Run”,或单击工具条图标 (Run),让程序全速执行。在主菜单中单击“Debug”,选择“Halt”,或单击工具条 (Halt),让程序退出运行。 图2-4 同时观察C语言与对应的汇编代码2.4 改变建造选项和修改语法错误改变建造(Building)选项和修改语法错误
17、:需要注意的是,改变了建造选项后,只有“Rebuild All”之后,改变的选项才会生效。单击“确定”按钮后,在主菜单中单击“Project”,选择“Rebuild All”,或者单击工具条图标(Rebuild All)。这时在底部窗口会出现建造消息,指示程序包含着编译错误。单击“Build”标签,向上滑动,找到有“error”信息的行,如图2-5所示。 图2-5 编译错误的提示 这实际上是一个语法错误,CCS用红色的编译错误给出了出错的位置“line 68”。双击这个错误提示,CCS会打开源文件,并将光标停在错误语句行处。阅读上面一行语句,会发现少了一个“;”,改为“puts(“begin
18、processing”);”。如果发现编辑不起作用,修改不了源文件,是因为混合观察源文件与反汇编时,CCS禁止编辑。在主菜单中单击“View”,选择“Mixed SourceASM”,将“M1xed Source/ASM”前的对勾去掉即可。修改后,在编辑窗的标题栏的文件名后面会出现一个“*”的标记,指示本文件被修改过。在主菜单中单击“File”,选择“Save”,或使用快捷键Ctrl+S,保存源文件。存储后,“*”标记就会消失。在主菜单中单击“Project”,选择“Build,或单击工具条 (1ncremental Build),这个建造选项会只编译更新过的文件,而并不重新编译所有的工程文件
19、。然后在主菜单中单击“Fi1e”,选择“Load Program”,装载刚生成的“.out”文件。我们也可以通过配置CCS的工程环境,让CCS自动在建造后装载程序。方法是在主菜单中单击“Option”,选择下面选项“Customize”,在弹出的对话框中单击“Program Load Options”标签,选中第二个复选框“Load Program After Build Option”即可。在主菜单中单击“Debug”,选择“Go Main”,让程序从主函数开始执行;再在“Debug”菜单中选择“Run”,或单击工具条(Run),观察运行输出结果,如图2-6所示。 图2-6 修改后的运行结果
20、再在“Debug”菜单中选择“Halt”,或单击工具条图标 (Halt),让程序退出运行。2.5 使用断点与观察窗使用断点与观察窗:在程序的开发与测试中,我们经常要检查某个变量在程序运行中的取值变化情况,这就需要用到断点与观察窗。在主菜单中单击“File”,选择“Reload Program”,在源文件中找到语句行“dataIO();”,并让光标停在该行。单击工具图标(Toggle Breakpoint)插入断点,或F9键。在“选择区”可以看到在这一行出现了一个红点,标记本行设置了断点。在主菜单中单击“View”,选择“Watch Window”,CCS会弹出一个独立的区域,用于显示运行时所观
21、察的变量值。默认的情况下观察窗显示“Watch Locals”标签,在其中显示当前执行的函数的所有局部变量,如图9所示。如果在观察窗中没有任何变量显示,在主菜单中单击“Debug”, 选择“Go Main”,让程序进入主函数。单击工具条图标(Run),让程序执行到刚才设置的断点处,然后在观察窗中选择“Watch1”标签,单击“name”列的表达式图标,输入“dataIO”作为所观察的变量名,按Enter键后,dataIO 的值会立即出现在“Value”列中,如图2-8所示。图2-7 观察窗口图2-8 观察dataIO的值单击工具条图标(Single Step),或按F8键,让程序单步执行,这样
22、可以跟踪到dataIO函数内部观察程序执行情况。或者单击工具条图标 (Step Over),等同于按F10键,CCS会把datalO函数当做一条语句执行,而不进入其内部。顺便说明,工具条图标 (Step out)或Shlft+F7组合键,其作用是当程序通过单步或断点等方式运行进入函数内部时,Step out可以令程序执行完毕这个函数,然后退回到调用处。工具条图标(Run To Cursor)或Ctrl+10组合键,其作用是令程序执行到光标处。上述四种程序运行方式是基本而有效的调试手段。观察窗除了观察简单变量之外,还可以观察结构型变量。在工程浏览窗中打开头文件,找到语句行“struct PARM
23、S”,这是一个全局声明的结构类型,类型名为“PARMS”。volume.c文件使用该类型声明了一个全局变量“str”,我们现在就来观察这个结构型变量。方法是在观察窗中选择“Watchl”标签,单击“name”列的表达式图标,输入“str”作为所观察的变量名,然后单击str左边的“+”号,CCS就会展开这一行并列出该结构变量的所有成员与它们的值,如图2-9所示。图2-9 观察结构变量在观察窗中的“Value”栏,双击任一变量的值,就可对这个值进行编辑,按Enter键后,修改的值会生效,并用红色的值回显,表示该值有所变化。如果要取消观察某个变量,单击该变量,然后按Delete键即可。如果要取消所有
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DSP 开发 环境 流程 简单 例程

限制150内