第四章DSP的开发环境与工具本章内容•DSP的开发环境与工具•C优化编译器•汇编器(Assembler)•连接器(Linker)•归档器(Archiver)•交叉引用列表器(Cross-ReferenceLister)•十六进制转换公用程序(HexConversionUtility)•系统集成与调试工具本章内容•C/汇编源代码调试(C/Assemblysourcedebugger)•代码分析器(CodeProfile)•软仿真器(Simulator)•DSP入门套件(DSK,DSPStarterKit)•评估模块(EVM,EvaluationModule)•TMS320硬件仿真器(Emulators)•集成化的DSP开发环境CodeComposerStudio•DSP的操作系统一般估计,一个嵌入式系统,开发的80%的努力,以及系统的80%的复杂程度,取决于软件。因此,设计人员在为实时系统选择处理器时,都极为看重先进的、易于使用的开发环境与工具。DSP的开发环境与工具DSP的开发环境和工具大致可以分为以下几类:◎代码生成工具◎系统集成及调试环境与工具◎实时操作系统DSP的开发环境与工具C优化编译器TI为其TMS320系列DSP提供了系列的C编译器。将标准C源文件编译成为相应片种的汇编语言源代码文件,进而汇编和连接,产生可执行的目标文件。这些C编译器符合ANSIC标准;有运行支持库;一个外壳程序(shellprogram)可以一步将C源代码翻译成为TMS320的目标代码。C优化编译器主要特点◎完全符合ANSIC标准;◎带有一个完整的运行支持库,包括字符串操作,动态存储器分配,数据转换,三角、指数和双曲线函数等。可以对运行支持函数库和用户定义函数库作扩展。C优化编译器主要特点◎使用多种先进技术,来从C源代码产生高效汇编代码。◎通用优化可用于任何C代码,而对各片种的专门优化更适应该片种的结构特点。◎通过简化循环、重新安排语句和表达式、将变量放入寄存器等方法,来改善执行速度,减小C程序的大小。C优化编译器主要特点◎包含一个外壳程序(ShellProgram),只用一个命令,就可以编译、汇编、和连接,直接从C原文件产生COFF文件。◎多种列表文件:(1)汇编语言源文件,可以有选择地包括内部列表、C源代码及使用寄存器的信息;(2)预处理输出文件;(3)带有行号和操作码的汇编列表文件。C编译器的优化C编译器的效率取决于所作的优化的范围和数量。TMS320的C编译器能作很宽范围的多种优化,从而改善其编译所得代码的效率。TMS320的C编译器所作的优化分为适用于所有处理器的通用优化和针对特定片种的专门优化。通用优化◎改变表达式,字符简化,常数合并:将表达式简化成为较少指令和较少寄存器的等价形式:(a+b)-(c+d)--((a+b)-c)-d)a=(b+4)-(c+1)--a=b-c+3通用优化◎数据流优化:使用较少代价的表达式,检测出并去除不必要的赋值,避免再次计算已经计算过的值。◎优化转移/简化控制流:分析程序的转移情况,重新安排操作顺序,消去转移或多余的条件。通用优化◎优化循环相关变量:把为数组元素设置下标的代码,改为指针增量的代码;将用计数器控制的循环写成块循环,或使用高效的增/减量转移指令;在循环中,将总是计算同样值的表达式移到循环外面;针对特定片种的专门优化◎将地址寄存器作为指针来使用:当数组下标结构成为循环变量时,这种优化特别有效。◎以省时为基础的寄存器配置:根据变量的类型、使用的情况和频率,将寄存器配置存放变量和暂时使用的值;循环中使用的变量的优先级高于其他变量;不再重复使用的变量可以配置到同一个寄存器。针对特定片种的专门优化◎通过使用块循环指令RPTB来支持零开销循环◎使用寄存器来传递函数的自变量汇编语言工具TMS320的汇编语言工具是一个软件包,其中包括:◎汇编器◎连接器◎归档器◎交叉引用列表器◎十六进制转换公用程序汇编器(Assembler)将汇编语言的源程序文件汇编成为机器语言的目标程序文件,其格式为COFF(公用目标文件格式)。汇编语言源程序可以包括:◎汇编语言指令(instruction)◎汇编指令(assemblerdirectives)◎宏指令(macrodirectives)连接器(Linker)连接器的基本任务是将目标文件连接在一起,产生可执行模块。连接器可以接受的输入文件包括:◎汇编器产生的COFF目标文件◎命令文件◎库文件◎已部分连接好了的文件它所产生的可执行COFF目标模块可以装入各种开发工具,或由TMS320器件来执行。归档器(Archiver)归档器允许用户将一组文件归入一个档案文件(库)。例如,将若干个宏归入一个宏库,汇编器将搜索这个库,并调用源文件中使用的宏。也可以用归档器将一组目标文件收入一个目标文件库,连接器将连接库内的成员,并解决外部引用。交叉引用列表器(Cross-ReferenceLister)交叉引用列表器是一个查错的工具。它接受已经连接好的目标文件作为输入,产生一个交叉引用列表作为输出。它列出符号、符号的定义、以及它们在已经连接的源文件中的引用。十六进制转换公用程序(HexConversionUtility)将COFF目标文件转换成为若干种标准的文件格式:◎ASCII-十六进制◎ExtendedTektronix◎IntelMCS-86◎MotorolaExorciser◎TISDSMAC系统集成与调试工具TI公司为TMS320系统的集成与调试所提供的工具包括:◎C/汇编源代码调试器(C/Assemblysourcedebugger)◎软仿真器(Simulator)◎DSP入门套件(DSK,DSPStarterKit)◎标准评估模块(EVM)◎扩展开发系统XDS(eXtendedDevelopmentSystem)C/汇编源代码调试(C/Assemblysourcedebugger)◎为嵌入式系统的开发提供了丰富的功能与灵活性。该调试器是下面要讨论的软仿真器、评估模块、在线仿真器等的标准接口。◎该调试器可以运行在PC平台上,对用C或汇编语言写的程序提供完全的控制。其代码分析功能通过快速确认最费时的程序段,提示应该将开发时间集中在什么地方。Debugger的性能◎支持多操作,增强并行处理能力(多处理器、断点、单步);◎对C代码和汇编代码单独调试或同时调试;◎灵活配置窗口界面;◎灵活的命令输入方式(鼠标、功能键、下拉菜单、批处理文件);◎全屏编辑,连续更新。代码分析器(CODEPROFILE)◎分别或同时分析C代码和汇编代码;◎针对全局变量、模块、函数,可以在各种层次上建立代码分析区域;◎广泛的统计功能,向用户提供代码中瓶颈问题的各种信息(代码的总执行时间、调用子程序的时间等)。软仿真器(Simulator)◎TMS320软件仿真器是一个软件程序,利用主机的处理器和存储器,来仿真TMS320DSP的微处理器和微计算机模式,从而进行软件开发和非实时的程序验证。◎在PC机上,典型的仿真速度为每秒几百条指令。软仿真器的性能◎在主机上执行用户的DSP程序◎修改和检查寄存器◎显示和修改数据及程序存储器◎外设、cache、pipeline的时序仿真◎设置断点◎跟踪ACC、PC、AR、表达式的值◎单步执行软仿真器的性能◎产生中断◎对非法操作码和无效数据输入等提供出错信息◎执行批处理文件中的命令◎以文件方式快速存储和调用仿真参数◎反汇编◎周期计数并显示DSP入门套件(DSK,DSPStarterKit)◎为初学者设计和生产的,它是一种用以评价DSP平台的廉价的开发工具。◎在PC机的DOS或Windows下,用户可以使用DSK来作DSP的实验,进行诸如控制系统、语音处理等应用;也可以用来编写和运行实时源代码,并对其作评估;还可以用来调试用户自己的系统。TMS320C5xDSKTMS320C5xDSK评估模块(EVM,EvaluationModule)◎TMS320的评估模块(EVM)是廉价的开发板,用于器件评估、标准程序检查、以及有限的系统调试。◎EVM是一个PC插件,包括目标处理器、一个小容量的存储器、和有限的外设。◎EVM可以用来实时运行代码,并与外部系统接口。TMS320EVMTMS320C62EVMTMS320C40PPDSTMS320硬件仿真器(Emulators)◎扩展开发系统(XDS,extendeddevelopmentsystem)是功能强大的全速仿真器,用以作系统级的集成与调试。◎扫描式仿真(Scan-BasedEmulator)是一种独特的、非插入式的系统仿真、集成、调试方法。◎使用这种方法,程序可以从片内或片外的目标存储器实时执行,在任何时钟速度下都不会引入额外的等待状态。TMS320边界扫描式仿真器TMS320边界扫描式仿真器集成化的DSP开发环境CodeComposerStudio◎为TI的C2000,C5000和C6000而设计◎将编辑、调试、项目管理、分析和探测集成在一个环境里◎代码生成器(C编译器、汇编器与连接器)◎指令集仿真器◎实时的基础软件◎主机和目标机之间的实时数据交换(RTDX)◎实时分析和数据可视化◎目前可用于WIN2000/XP/WIN7等基于WIN的图形化界面集成式开发环境的结构实时数据交换(RTDX)从探测点注入和提取信号多目标调试CodeComposerStudio◎开放的、具有强大集成能力的开发环境;◎由先进开发工具组成的直观的系统,可以大大缩短DSP的编程时间;◎高级的编码工具,可提供第三方工具接入的开放式结构;◎开发人员可以采用特定的工具自定义环境,满足特殊的设计需要。DSP的操作系统◎对于简单的DSP任务,用前面介绍的开发工具已能满足开发任务的需要,往往不需要操作系统就可以进行;◎但当DSP的任务增加和任务的复杂性提高,例如对实时性要求很高的多DSP并行操作的多任务系统,可能就需要某种操作系统来管理系统的资源,安排多任务的执行和任务间的信息交换等。习题•DSP系统的软件设计需要经过哪些步骤才能在硬件电路中运行?•一个完整的工程项目必须包含哪些类型的文件?