您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 企业文化 > 第三章 DSP集成开发环境
14.2DSP集成开发环境—CCS及DSP/BIOS的原理与应用CCS:codecomposerstudio23.1CCS的功能特点与安装3.2基于CCS开发DSP软件3.3利用CCS调试应用程序3.4CCS高级工具的使用3.5DSP/BIOS的功能3.6DSP/BIOS的高级应用3.7基于CCS的DSP片级支持库3概述TMS320C6000DSP有一套完整的开发系统•C/C++compiler:.c.asm将ANSIC或C++语言编写的程序转换为面向DSP的汇编代码直接利用高级语言实现DSP软件的初步设计,缩短开发周期•Assemblycompiler:.sa.asm允许开发者编写线性汇编代码而无需考虑流水线结构和寄存器分配,它可以自动分配寄存器以及利用循环优化将线性汇编转化为利用软件流水线的高度并行汇编代码•Assembler:.asm.obj将汇编代码翻译成DSP可以执行的机器语言•Linker:.obj.out将目标文件组合成一个单独的可执行目标模块。当它创建可执行模块时,分配段到目标系统所配置的内存,重新分配符号和段到最终地址,并且解决未定义符号的外部引用的问题。4•Cdebugger是一种先进的编程接口协助编程者开发、测试C6x的C程序以及汇编程序,也是C6xsimulator和emulator的接口。调试器通过图形界面直观地将代码、数据和命令分开显示。动态的性能分析工具提供了对代码执行进行统计的手段,可以直接反馈程序的性能进而确定和解决代码瓶颈。•Simulator通过模拟DSP硬件对代码的执行,方便用户进行软件的开发和调试。用户可以在没有目标板的情况下编写软件,有限的模拟一些硬件功能。•Emulator基于边界扫描协议的系统仿真工具,用于系统集成阶段的软件和硬件联调。通过JTAG接口,可以访问DSP器件的全部内存和寄存器,方便有效的硬件对软件执行的调试工作。•DSK入门开发套件(DSK)代码开发工具,包括基于TMS320C6000DSPs的板卡,软硬件仿真环境可以与PC通信,很适合初步接触DSP的学习者入门和进一步熟悉提高5CCS(CodeComposerStudio)功能简介•CCS是一个基于Windows的DSP集成开发环境;加速和提高程序员创建与测试实时嵌入式信号处理系统的开发过程•CCS是一个完整的DSP集成开发环境;也是目前最优秀、最流行的DSP开发软件之一•CCS为TIDSP家族的C2000(版本2.2以上)、C5000和C6000系列DSP提供DSP/BIOS功能,而在C3x中是没有DSP/BIOS功能的•CCS具有实时、多任务、可视化的软件开发特点,已经成为TIDSP家族的程序设计、制作、调试、优化的利器6(1)集成可视化代码编辑界面,可直接编写C、汇编、.h文件、.cmd文件(2)集成代码生成工具,包括编辑器、优化C编译器、连接器等(3)基本调试工具,如装入执行代码(.out文件),查看寄存器、存储器、反汇编、变量窗口等,支持C源代码级调试。(4)支持多DSP调试(5)断点工具,包括硬件断点、数据空间读/写断点、条件断点等(6)探针(Probe)工具,可用于算法仿真、数据监视等。(7)剖析(Profile)工具,可用于评估代码执行的时钟数•CCS主要包含了以下功能7•数据的图形显示工具,可绘制时域/频域波形、眼图、星座图、图象等,并可自动刷新•提供GEL工具,用户可以编写自己的控制面板/菜单,方便直观地修改变量,配置参数等•支持RTDX技术,可在不中断目标系统运行的情况下,实现DSP与其他应用程序的数据交换•开放式的Plug-in技术,支持其他第三方的ActiveX插件,支持包括软仿真在内的各种仿真器(只需安装相应的驱动程序)•提供DSP/BIOS工具,增强对代码的实时分析能力(如分析代码执行的效率)、调度程序执行的优先级、方便管理或使用系统资源(代码/数据占用空间、中断服务程序的调用、定时器使用等),从而减少开发人员对硬件资源熟悉程度的依赖性8CCS是运行在一系列仿真设备(软仿真器Simulator、硬仿真器Emulator、DSP入门套件DSK、DSP评估板EVM)上的一个集成的开发环境。任一种仿真设备可形象地将其看做计算机主板上的扩展设备,在它们正常工作之前都需要在操作系统中为其安装驱动程序。2.为CCS安装设备驱动程序彭启琮管庆等编著DSP集成开发环境-CCS及DSP/BIOS的原理与应用电子工业出版社2005年910113.2基于CCS开发DSP软件•基于CCS开发DSP软件是一个软件工程,需要先建立一个工程文件(*.pjt),所有有关该项目的信息都会存储在这个工程文件中。即包含源代码文件(C、C++、ASM)、头文件、支持库、用户库、内存定位文件(.cmd)以及DSP/BIOS配置文件(.cdb)。•若用C开发,需将C的标准支持库rts6700.lib(用于64KB以内的程序调用)或rts6700e.lib(用于大于64KB、使用FCALL指令的函数调用)。•内存定位文件(.cmd)定义了各代码段或数据段在存储器中的位置。将内存定位文件(.cmd)添加到工程文件。•“Buildall”(完成编译和连接)“Load”(将生成的.out文件装入DSP的片内或片外扩展存储器)进行调试、分析和统计工作12实例1.CCS的基本操作-开发一个简单的程序(1)准备工作(2)先建立一个工程文件(*.pjt):以volume为例(3)向工程添加各类型文件:源文件、cmd文件和库文件(4)查阅代码(5)建造(build)和运行(run)程序(6)改变建造选项和修改语法错误(7)使用断点和观察窗13(1)准备工作:8个需要复制的文件需要复制的文件文件说明Volume.c实验用源文件(C主函数)Load.asm实验用源文件(汇编子函数)Vectors.asm实验用源文件(中断向量表)Volume.hC主函数使用的头文件Volume.cmd内存定位文件Sine.dat实验用数据文件Volume.gel实验用GEL控制文件Rts6700.libC程序的运行支持库提示:在使用CCS进行DSP软件项目开发时,都要养成为每个项目建立一个目录的习惯。此例:项目volume在目录C:\ti\myprojects\volume1下14(2)先建立一个工程文件:ProjectNewProjectcreation15•(3-1)添加源文件:.c,.asmProjectAddFilestoProject选择文件类型在“volume.pjt”上单击鼠标右键AddFiles…•(3-2)添加内存定位文件.cmd该文件定义了各代码段或数据段在存储器中的位置添加方法同“添加源文件”在添加文件对话框的“文件类型”下拉列表中要选择“LinkerCommandFile(*.cmd)•(3-3)若源文件是基于C语言编写的,需向工程里添加运行支持库文件(rts6700.lib)该文件存放在CCS的安装目录“/c6000/cgtools/lib”下在添加文件对话框的“文件类型”下拉列表中要选择“ObjectandLibraryFiles(*.o*,*.l*)•(3-4)添加头文件在工程名上单击鼠标右键,选择“ScanAllDependencies”,这样.c文件包含的头文件“volume.h”将出现在“Include”文件夹中(3)向工程添加各类型文件1617展开工程文件列表Vectors.asm是中断向量表,包含了汇编指令代码,用于在系统产生“RESET”中断时,跳转到C程序的入口点“c_int00”在编写更为复杂的用户程序时,可以在Vectors.asm文件里自行定义合适的中断向量表,或者使用DSP/BIOS自动产生中断向量表头文件实际上不用人工添加,在建造(Build)工程时,CCS本身可以自动完成相关扫描18(4)查阅代码:在文件名上双击鼠标,即可在CCS编辑窗内看到源代码19主函数进入一个无限循环,在循环内部调用了2个函数dataIO()与processing()函数processing()对输入缓冲区的每个采样值乘以一个增益值“gain”,并将结果存放到缓冲区中。该函数同时调用汇编程序load(),该函数会根据processing()传递过来的参数processingLoad来消耗指令周期,模拟复杂信号处理算法在时间上的消耗。函数dataIO()不做任何实际操作而直接返回20(5)建造(build)和运行(run)程序•Building:compiling,assembling,linking三个独立步骤按顺序联合运行。•在CCS中:(1)主菜单:Project“rebuildall”(2)工具条图标:(rebuildall)•建造完毕,CCS生成一个“.out”文件,该文件默认存放在所建工程目录下的“debug”目录内•装载该“.out”文件:File“loadprogram””所建的工程目录”“debug”“volume.out”打开•CCS装载完毕该.out文件后,会自动弹出disassembly窗口,显示构成源代码的反汇编指令。21建造完毕的CCS窗口及.out文件的装载“.out”文件的存放目录22装载完毕后自动弹出的反汇编窗口:显示构成源代码的反汇编指令显示程序在运行时的输出信息23•运行(run)程序:(1)Debug“gomain”:程序从主函数开始,停留在main()处,并会有一个黄色的箭头标记在当前要执行的C语言代码(2)ViewMixedsource/ASM:同时看到C语言代码和对应编译生成的汇编代码,并且有一个绿色的箭头标记在当前要执行的汇编代码。Page20(3)Debug“run”,或,工具条图标(run):让程序全速执行。底部的“Stdout”标准输出窗口给出程序运行的输出信息。“volumeexamplestarted”证明程序能够正常运行24黄色的箭头标记在当前要执行的C语言代码绿色的箭头标记在当前要执行的汇编代码混合观察源文件与反汇编时,CCS禁止编辑单击鼠标后,按F1键可以得到指令的帮助信息预处理命令“#ifdef”和“endif”包含的代码段并没被执行,因为没有定义符号“FILEIO”25CCS设置预处理符号ProjectBuildoptionCompilerProcessorDefineSymbols_DEBUG;FILEIOTab键编译命令中会新增一个-d“FILEIO”“RebuildAll”之后,改变的选项才会生效26使用断点与观察窗:检查某个变量在程序运行中的取值变化情况或F9:出现红点来标记ViewWatchWindow:CCS弹出一个独立的区域,用于显示运行时所观察的变量值27显示当前执行的函数的所有局部变量Watch1Name列的表达式图标输入要观察的变量名回车观察窗口观察dataIO的值观察结构变量str28利用CCS调试应用程序•程序的调试过程和优化过程一般会占用整个开发周期60%以上的时间•调试有非常多的技巧和手段,但都必须要有良好的工具才能实现•CCS除了提供大多数通用开发环境都具备的基本调试工具(存储器与寄存器的查看与修改、断点、性能分析)外,还提供在嵌入式开发中非常游泳的事件检测、探针等工具,以及在信号处理类应用能够中非常实用的图形化工具•为了调试应用程序,首先必须将程序加载到目标系统中29程序调试的基本操作•使用反汇编窗口:Viewdisassembly•使用存储器窗口:Viewmemory•观察CPU寄存器:Viewregistor•加载COFF文件•单步执行•运行•复位处理器:DebugresetCPU•内存操作•变量操作•编辑命令行•观察调用堆栈:Viewcallstack•保存和恢复工作空间30存储器/变量的查看与修改•调试工具的最基本功能之一•查看和修改寄存器、程序存储器、数据存储器、I/O存储器1.CPU寄存器的查看与修改①debughalt:停止程序运行②vie
本文标题:第三章 DSP集成开发环境
链接地址:https://www.777doc.com/doc-921646 .html