DSP器件原理与应用02_TMS320C6000系列DSP开发工具_第1页
DSP器件原理与应用02_TMS320C6000系列DSP开发工具_第2页
DSP器件原理与应用02_TMS320C6000系列DSP开发工具_第3页
DSP器件原理与应用02_TMS320C6000系列DSP开发工具_第4页
DSP器件原理与应用02_TMS320C6000系列DSP开发工具_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 第2章TMS320C6000系列DSP开发工具随着DSP应用的日益广泛深入和市场竞争的日趋激烈,如何降低开发难度,缩短开发周期成了开发者关心的焦点问题。对于DSP厂商,其DSP产品的开发环境如何,开发工具是否完备,学习和使用是否方便是产品推广的重要因素。TI公司的TMS320C6000系列DSP采用独特的VLIW结构,芯片强大的硬件功能是否能充分发挥在很大程度上取决于代码的效率,即取决于代码生成工具的好坏。为此,TI公司推出了世界上第一个效率可达70%80%的汇编语言级C编译器,它产生的代码的平均效率是其他DSP编译器的3倍。另外,C6000独有的汇编优化器使开发者可以采用线性汇编语言(串行

2、汇编语言)得到近似标准汇编的性能,因而降低了开发难度。2.1.CCS组件在CCS(CodeComposerStudio)推出之前,DSP软件开发的过程是分立的,开发者要自行使用单独的代码编辑器、代码生成工具以及软件或硬件仿真工具。CCS出现后,上述操作都隐藏在CCS集成环境下。CCS扩展了基本的代码生成工具,集成了了调试和实时分析功能。开发者的一切开发过程,包括工程的建立、源程序的编辑以及程序的编译和调试等,都在CCS集成环境下进行。CCS包括:TMS320C6000代码生成工具集成开发环境DSP/BIOS插件RTDX插件,主机接口和应用程序接口2.2.代码生成工具图2-1是C6000软件开发

3、流程图,其中阴影部分是开发C代码的常规流程,其他功能用于辅助和加速开发过程。aass-mblyAss&mblsr-,Asssamblyoptimizercre+sokrceMacrcC+compilerLibraryof:object*files:Liker-inearsi口urceCCFFfifesRm-time-Library-buidutilitysupport:JbraryUacr?library:Assembly-:optimized:fileTMSa2DC000:EKBxrtable:8FF:nieA-hijp(jinrplootsArohierHskconversionulili

4、ryEPROMprogrammerArchixer图2-1C6000软件开发流程图C/C+编译器C6000的C/C+编译器对C/C+代码进行编译,生成C6000汇编代码。如图2-2所示,C/C+编译器内分为语法分析器(parser)、优化器(optimizer)和代码生成器(codegenerator)。图2-2C6000C/C+编译器(1)语法分析器语法分析器的功能是对C/C+代码进行预处理,进行语言检查,然后生成一个中间文件(.if)作为优化器或代码生成器的输入。语法分析器还对宏、包含文件(#include)、条件编译等进行处理。(2)优化器优化器对语法分析器输出的.if文件进行优化,目的

5、是缩短代码长度和提高代码执行速度,生成.opt文件。所进行的优化包括针对C/C+代码的一般优化和针对C6000的优化,如重新安排语句和表达式,把变量分配给寄存器(寄存器变量),打开循环,模块级优化(若干个文件组成一个模块进行优化)等。(3)代码生成器代码生成器利用语法分析器和优化器产生的中间文件,生成C6000汇编代码(.asm)。代码生成器也可以直接对中间文件(.if)进行处理生成汇编代码。编译过程可以通过编译器的各种选项进行控制。除了C/C+编译选项外,还有控制ANSIC类型检查的选项、与C6000有关的设置选项、语法分析器选项、优化器选项、函数内嵌选项、汇编器选项、文件默认扩展名设置选项

6、、文件目录设置选项、链接器选项等等。下面是一些常用的编译选项:-g,对编译结果没有影响,只是方便调试。作用是在输出文件中加入进行符号调试所需的伪指令。使用-g选项会使得代码生成器完成的某些优化不能进行。选项-g和-o一起使用,编译结果是与符号调试兼容的最优化代码。-k,默认情况下,当汇编过程介绍后,C/C+编译器和汇编优化器产生的临时汇编文件会被自动删除,使用-k选项可以保留这些汇编文件。选项-k在需要查看优化后的程序循环时特别有用。-s,启动交叉列表功能,即把优化器的注释(使用了选项-On)或C/C+语句(没有使用选项-On)与C/C+编译器生成的汇编代码放在一个文件里。选项-s包括了-k的

7、功能。C/C+代码的优化在语法分析之后和代码生成之前进行,通过编译器的优化器选项-o启动,有4个优化级别(-oO,-ol,-o2,-o3,默认为-o2),参见表2-1。表2-1C6000C/C+编译器的优化选项优化选项-oO-o1-o2或-o-o3作用优化寄存器的使用本地优化全局优化文件级优化优化级别除了由优化器完成的优化外,C/C+编译器的代码生成器也完成一些优化工作。这些优化工作不受优化选项的影响。优化器所完成的最重要的优化处理是软件流水(softwarepipeline)。从-o2开始优化器对软件循环进行软件流水处理。软件流水是专门针对循环代码的一种优化技术,利用软件流水可以生成非常紧凑

8、的循环代码,这也是C6000的C/C+编译器能够达到较高编译效率的主要原因。在默认情况下,优化器对每个C/C+文件分别进行优化。在某些情况下,如果能够在整个程序范围内进行优化,则优化的效率还可以提高,此时可以在编译选项内加入-pm,它的作用是把一个程序所包含的所有C/C+文件合成一个模块进行优化处理。注意:在使用C/C+优化选项之前一定要保证程序功能已得到验证。对经过优化的代码进行调试和性能测试有其特殊的地方,建议大家不要对深度优化后的代码进行调试和性能测试。汇编优化器汇编优化器的功能是对用户编写的线性汇编代码(.sa)进行优化。汇编优化器是C6000代码生成工具内极具特色的一部分,它首创了对

9、线性汇编代码自动进行优化的技术,即使对C6000DSP结构了解不多的用户也能方便地开发高度并行的C6000代码。汇编优化器的输入是用户编写的线性汇编.sa文件,生成标准汇编代码的.asm文件作为汇编器的输入。对于性能要求很高的应用,用户需要用线性汇编对关键的C/C+代码进行改写,然后用汇编优化器进行优化,以最大限度地提高代码效率。这个过程的关键是首先使用调试工具中的性能分析工具(profiler)找出需要进行优化的关键代码段。线性汇编语言是为了简化C6000汇编语言程序开发而设计的,它不是一个独立的编程语言。与C6000标准汇编语言相比,米用线性汇编语言编程不需要考虑以下因素:(i)并行指令安

10、排;Gi)指令延迟;(iii)寄存器使用。这些工作均由汇编优化器自动完成,所生成的代码效率可以达到人工编写代码效率的95%100%。汇编器汇编器生成可重定位的机器语言目标文件(.obj)。汇编器输入的汇编语言文件可以是C/C+编译器生成的,也可以是汇编优化器生成的,还可以是文档管理器管理的宏库内的宏。汇编器生成的目标代码是TI的COFF格式。汇编代码内除了C6000机器指令外,还可以有汇编伪指令(assemblerdirective)。汇编伪指令用于宏定义和宏扩展、控制代码段和数据段的内容、预留数据空间、数据初始化、控制优化过程、符号调试等。链接器链接器的输入是可重定位的目标文件(.obj),

11、生成可执行的目标文件(.out)。链接器主要功能是根据用户说明的程序和数据存放地址,把汇编器生成的浮动地址代码和数据映射到用户系统的实际地址空间。把程序和数据的实际地址分配放在链接阶段集中进行,不仅更方便,更容易修改,同时也有利于程序在不同系统之间的移植。假设目标系统的存储器配置如图2-3所示,应该如何分配用户的程序和数据呢?很明显,对于上面的存储器配置,要保证系统的正常操作,用户程序必须存放在EPROM中,而要保证数据的读写,数据必须放在C6000内部RAM或外部SBSRAM中。所有这一切都通过链接命令文件(.cmd)控制。其它工具以及C/C+运行库代码生成工具还包括文档管理器、交叉列表工具

12、、建库工具、十六进制转换工具以及C/C+运行库等。C/C+运行库由C/C+语言头文件(.h)和库文件(rtsxxxx.lib,如rst6201.1ib)组成。C/C+运行库包括标准的运行支持功能,以及浮点函数、C6000内联函数(instrinsics)、访问主机操作系统的I/O函数等。23DSP程序仿真模式C6000程序的调试和仿真有软件仿真和硬件仿真两种模式。软件仿真指程序的执行完全靠主机上的仿真软件模拟,不和任何硬件平台打交道。硬件仿真需要使用目标板(如EVM板),仿真程序把代码下载到目标板的DSP芯片中运行。目标板一般通过仿真器和主机连接。软件仿真的优点时不需要目标板就可以开始软件编程

13、,缺点是仿真速度慢,无法仿真某些外设的功能。硬件仿真的优点是仿真速度快,仿真结果与系统实际一致。2.4.CCS的使用下面以CCS3.3为例,简单介绍一下CCS的使用。首先,运行SetupCodeComposerStudio3.3,对CCS进行配置,如图2-4所示。 AvailableFactoryBusrdsFileEdityiF:=jtiilyFlatformEndi:=lTlTlhee|aiitAllAll7UAEM11-VF0M2430FlatformSimulatorAIJilllEirmilatijr:+:E3:C62Ll1HeviceSimulatorC62xxEirmilatij

14、rbigEO:C62U1DeviceSimulatorC62xxsirTiulatijrlittleE:C62U2DeviceSimulatorCE2xxsimillatorbigl|:C6202DeviceSimulatorC62xxeimulatorlittlel|:C6203DeviceSimulatorC62xxeimul:torbigl|:C6203DeviceSimulatorC62xxEirmilatijrlittle明;C6204DeviceSimulatorC62xxEirmilatijrbigl|:C6204DeviceSimulatorC62xxsirTiulatijrl

15、ittle明:C6205DeviceSimulatorCE2xxsimillatorbigl|:C6205DeviceSimulatorC62xxeimulatorlittlel:C620 xXDS510EmulatorC62xxxds510emu.:+:l:C620 xXDS560EmulatorC62xxxds560emu.:+:E:C6211HeviceCycleAccm-ateSirmilatorC62xxEirmilatijrlittleZ:C6211DeviceCycleAccm-ateSimulatorC62xxsirTiulatijrbig明:C621xXDS51UEmulat

16、orCE2xxxds51Uemu.:+:l|:C621xXDS560EmulatorC62xxxiIeSEiUemu.:+:E:C62xxCFUCycleAccurateSirTiulatcirC62xxeimul:torbig可;CEE盟盟CFUCycleAccurateSirmilatijrC62xxEirmilatijrlittleE3:C6416CompiledHeviceFutlcticmalSirrnil.C64XXEirmilatijrbigEO:C6416CompiledDeviceFutlcticmalSirrnil.C64XXsirTiulatijrlittleB:C64+

17、CFUCycleAccurateSimulatorBig.C64k+simillatorbigZ5|;CE4+CFUCycleAccui-ateSirTiulator,Litt.C64x+eimulatorlittle!|:C64+CycleAccui-ateSirTiulator.,BigEndi:itlC64x+eimul:torbig可;CE4+CycleAccurateSirrnilator,.LittleE.C64x+EirmilatijrlittleB:C6455Simulator(withVCF&TCP)BigE.C64k+Eirmilatijrbiglfl:C6455Simul

18、ator(withVCF&TCP)Little.C64k+sirTiulatijrlittleIQ|:C6455XDS510Enrnl泌鈕)ithICEFICK_CC64k+xds51Uemu.:+:lfl:C6455XDS560EmulatorwithICEPICK_CC64x+xiIeSEiUemu.:+:E:IlM6443CycleAccurateSirTiulatcirC64x+eimul:torlittleSDM6443XDS510EmulatorwithICEFICK_CC64x+xds510emu.littleI#DM6443XDS560EmulatorwithICEFICK_C

19、C64k+Kds560emu.littlel-l!TlMA-d.-d.A厂市尸Ciinnii-+airti111+A-rp.!lxr+rirti111+Ti-1;+1cFBFactoryEoardm牢CustomBo:=j-dsj命Crea+eB-j:=LrdSaveftQuit|AddJ:i屯亡tHependenc1bhowFrojectDependerLCiShowFileDeperLderLCiScstlAllFileDeperidenciRecentrroiectFlies(c) 冉箸dljiLE?P?帀国疑住I嵌勰I匡基Iulator/DI642-DI642(SiMulator)-C

20、odeCoMposerStudioD:lfhellohello.cFileEditViewFrojectIleliugGELOjitionProfileToolsIlSF/BIOSjVirnlowHelp(3gSB画1一iHALTED:e/wbrt:dkjioirLthelli:i.pjtTDebug三JI辔幽蝸蜃I#inuludevoidmain()printf(Hello,world!);Sour匚e它FilesGELfiles-ErlFrujeels-_5jhello,pjt(Debu;|_IlepernierLtFruje_JDuciutienOlIlSF/BIOSConfig_Gen

21、eraFiles_JInelude”Libr&iies 冉箸D(i)LE?P?帀国疑住I嵌勰I匡基I13凰團国囚画1Imi;E|a4/DI642DeviceCycleAccurateSiulator/DI642-DI642(SiMulator)-CodeCoMposerStudioD:lfhellohello.c它FilesGELfiles-ErlFrujeels-I|_IlepernierLtFrujeIIlijcijjtien口DSF/BIOSConfif_GeneraFilesIInelude-eF1Libr:ii_ies園rt56400.lib一Surn-ce園hellu.c因Irik

22、,emdhello,pjt(DebuFileEditViewFrojectIleliugGELOjitionProfileToolsIlSF/BIOSjVirnlowHelpSourceFilePropertieshelli:i.pjtTDebug三JI辔幽蝸蜃I#inuludevoidmain()printf(Hello,world!);FileN:diTiH|c:CCStudiOv3.3C6000cgtooli1ibrts6400.libFileSire:2410718bytesThured:富November0乙200609:16:46一iHALTED:e/wbrt:dkjioirLt 期丨阳anpjtCorLfiguratiunw.Bui1dOptions.FileSpecificOptiuiiw.Froje

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论