VisualDSP++5.0中文手册之一(一)开发工具及其特点1.开发工具概述VisualDSP++是ADI公司针对ADI公司的DSP器件而专门开发的一种使用方便的开发平台,它支持ADI公司所有系列的DSP处理器,包括Blackfin系列和ADSP-21XX系列定点处理器、SHARC系列和TigerSHARC系列的浮点处理器的各种型号处理器。VisualDSP++通过图形窗口的方式与用户进行信息交换。VisualDSP++采用直观的、易于使用的用户界面,针对处理器进行操作。ViSualDSP++集成了两大部分:集成的开发环境(IntegratedDevelopmentEnvironment,IDE)和调试器(Debugger),称为IDDE(IntegratedDevelopmentandDebuggingEnvironment),提供了更强大的程序开发和调试功能。VisualDSP++具有灵活的管理体系,为处理器应用程序和项目的开发提供了一整套工具。VisualDSP++包含生成和管理处理器项目必须的所有工具。VisualDSP++从推出至今已经经历了1.0、2.0、3.0、3.5、4.0、4.5及5.0七种版本,相应的DSP开发和调试功能也不断增强。下面以常用的VisualDSP++的4.5版本进行介绍。VisualDSP++开发工具包中集成了开发DSP程序所需要的各种工具组件,根据用户所购买的软件,VisualDSP++包含下列组件中的一个或多个组件。·与VisualDSP++一体化的集成开发和调试环境(IDDE)·带有实时运行库的C/C++语言最优化编译器·汇编程序、链接器、预处理器和档案库·程序加载器、分割器·模拟器·EZ—KITLite评估系统(必须单独购买)·仿真器(必须单独购买,推荐安诺电子的AN系列ADIDSP仿真器:)·程序实例以下是VisualDSP++的基本特点。(1)源文件编辑特点VisualDSP++简化了源文件的操作任务,可以非常容易地实现创建^查看、打印、移动和信息定位等相关文件操作。·编辑文本文件。创建和修改源文件,查看由代码开发工具生成的文件。源代码文件是DSP工程开发的重要组成部分,可以采用C/C++语言或汇编语言进行编写。如果DSP开发工程的源代码文件采用汇编程序进行编写,那么DSP开发工程中还应当包含链接描述文件(.LDF文件)和一些相关的数据文件,而如果DSP开发工程的源代码文件采用C/C++语言进行编写,那么相应的工程则可不必包含链接描述文件。·编辑窗口。VisualDSP++编辑器是一个完整的代码书写工具,用于编辑文本文件。查看和编辑多个编辑窗口的相关文件,也可为一个文件打开多个编辑窗口。·为专用语法配置颜色。为文本编辑窗中相关关键词、引用、注释等采用不同的颜色进行表示,这一特点提高了查看和搜索文本的效率。·与上下文相关的表达式评价。将鼠标指示移至一个变量上j在一定范围内可以查看变量的值。·状态图标。用于指明断点,书签和处理器当前执行程序指令的在源代码文件中的位置。·查看错误信息和违规代码。通过突出显示错误代码(如cc0251等)或按F1键,可以在输出窗口的生成视图中看到错误的详细信息,而且双击错误行可跳至编辑窗口中的违规代码。(2)工程管理特点VisualDSP++为处理器应用程序的开发提供了灵活的工程管理,包括创建、定义和编译等处理器项目所必须的操作。·定义和管理工程。管理用户工程编译时所需的相关的文件和相关的开发工具。对工程的定义只需一次即可,在开发的过程中用户可以根据需要对工程灵活地进行修改。·查看和管理代码开发工具。配置选项中确定了代码开发工具如何处理输人文件和生成输出文件。对于代码开发工具,工具设置类似于命令行转换。工程的配置选项可以在工程定义的时候进行设置,也可以在工程开发的过程中进行修改。·查看工程编译结果。在进行工程编译的过程中可以随时查看编译状态,并且根据用户需要,用户可以随时停止工程的编译过程。查看工程编译结果时,如果工程编译存在错误,那么用户在输出窗口中双击错误信息则可以查看造成错误的源代码,或者重复错误信息。·管理源代码文件。根据工程窗口内管理项目中的源文件和文件的依赖项,可以依次显示文件之间的关系。VisualDSP++使用代码开发工具处理工程和生成处理器所需的程序。它也提供了源代码控制(SCC)界面,使得用户可以直接在IDDE环境下完成源代码的控制操作。(3)调试特点在调试一些工程的过程中,VisualDSP++提供了以下一些工具和功能为用户服务。·查看C/C++语言和汇编语言的联合编程的源代码文件。在汇编源代码中,行数和符号信息有利于用户在源文件上查看和调试汇编代码。·运行命令行脚本。通过使用脚本,用户可以使用它制定调试过程中的主要参数和特性。·使用存储器表达式。使用存储器相关的表达式。·利用断点查看寄存器和存储器。可以快速添加和移除断点,使能和使断点失灵。·设置模拟观察点。对堆栈、寄存器、存储器和图标设置观察点可以停止程序的执行,方便调试过程中观察相关信息。·统计描述目标处理器的指令执行数(该功能仅用于JTAG的仿真调试目标)。用户可以随意设置统计过程的取样,并将统计结果采用图形显示,根据统计结果可以轻松地观察到程序中最耗时的指令部分。·线性描述目标处理器的指令执行数(该功能仅适用VisualDSP++的模拟调试目标)。对每个DSP的PC寄存器进行取样,统计它们的执行情况,并将结果采用图形显示。该功能与统计描述目标处理器的指令执行数功能类似,只不过该功能只能在VisualDSP++模拟下使用,而统计描述目标处理器的指令执行数功能在JTAG仿真器方式下使用。·模拟I/O端口数据流、中断产生。通过该工具可以模拟串口或存储映射I/O进行数据流传输和模拟处理器通用中断的产生。·创建用户自定义的寄存器窗口。配置一个自定义的寄存器窗口来显示指定的寄存器组。·根据处理器存储器中的数值进行绘图。该工具将处理器存储器中的数据以图像的形式进行显示,并且用户可以根据自己的需要选择多样的绘图风格、典型数据处理功能和外观显示方式。·跟踪程序运行历史,跟踪用户程序,可以获得用户程序是如何达到用户设置的特定的程序点,并显示读、写和符号名称等相关信息。·查看汇编指令的流水线深度。通过流水线界面可以查看目标处理器流水线的阶段。(4)VDK特点VisualDSP++核(VDK)是一种可扩展的软件执行程序,专门用于高效开发ADI公司DSP处理器的操作。VisualDSP++软件集成了VisualDSP++核。VDK能够方便用户从软件中获取硬件实现的详细信息,使得用户可以更加专心的完成处理算法的实现。VDK为所有处理器应用开发过程阶段提供了基本模块,它们的性能描述如下:·自动化。VisualDSP++可以根据用户指定的语言自动生成源代码框架。·确定性。VisualDSP++明确指明VDK应用程序接口执行时间的确定性。·多任务处理。VDK的任务问(线程)是相互独立的,并且每个线程都有自己的栈。·模块化。VDK包含各种组件,并且在以后的版本中将会提供更多的功能。·方便移植性。大部分的核组件可以用ANSI标准的C或C++语言编写,这将方便地实现代码在不同处理器之间的移植o·优先性。VDK的优先级的调度表可以使高优先级的线程无需等待信号运行,随时可以执行。·原型化。VDK和VisualDSP++包含模板文件,可以方便用户创建原始文件,且整个应用程序是原型化的,需要用户根据需要进行测试和修改。·可靠性。VDK提供实时运行过程中的错误检查。·可扩展性。如果某个项目不包括该属性,那么目标系统中将不包含其相关的代码支持。VisualDSP++中文手册之二(二)DSP程序开发方法利用VisualDSP++集成环境开发流程如图5-1所示。DSP程序开发有三个阶段:·Simulation——利用VisualDSP提供的软件环境进行软模拟,不需要硬件;·Evaluation——利用EZ-KIT板对程序进行测试和评估;·Emulation——利用JTAG口对用户的目标系统进行仿真调试。(1)模拟(Simulation)阶段工程师开发新硬件时,项目开发通常以模拟环境为开始,模拟系统存储器和I/O,允许查看部分目标系统的硬件行为。模拟器是一种软件,用于模拟处理器的操作。由VisualDSP++可以生成一个模拟目标(无物理处理器)运行、编辑和调试用户的程序。(2)评估(Evaluation)阶段在项目设计的初期,使用ADI公司的EZ.KITLite评估系统确定处理器和验证用户设计的程序的部分功能,并进行评估。(3)仿真(Emulation)阶段用户目标系统的硬件设备准备完成后,用户可以通过JTAG仿真器将PC与用户的处理器目标板进行链接。仿真器为PC与实际处理器目标板之间提供了快捷通信,在VisualDSP++环境下通过仿真器可以将用户的程序下载到处理器内部,然后让程序在用户目标系统的处理器上运行。采用仿真器进行调试,处理器实际上是工作在用户的目标系统中,PC和仿真只是起到控制和监视作用,因此通过仿真器在用户目标系统上调试的程序基本上是符合用户目标系统在实际工作中的程序的。在完成仿真阶段的程序设计和调试后,DSP程序的开发基本上完成了,剩下的工作,用户只需要将开发的程序生成加载文件提供给用户的目标系统,用户的目标系统按照设计的加载方式对处理器进行加载,那么处理器就能够按照用户设计的程序运行了。DSP程序开发的过程示意图如图5-2所示在程序开发过程中,VishalDSP++集成开发和调试环境中可利用的调试工具见表5-1。VisualDSP++中文手册之三利用集成开发和调试环境IDDE进行DSP程序开发VisualDSP++的集成开发和调试程序界面主要由工程管理窗口、文本编辑窗口、反汇编窗口、输出窗口和一些辅助菜单组成,如图5-3所示。集成开发和调试环境支持对DSP应用程序开发的整个过程,在IDDE的应用程序的开发一般都要经过如下几步:第1步,创建一个新的工程。第2步,设置工程选项。第3步,编辑或添加工程源文件。第4步,设置工程编译链接选项。第5步,编译链接Debug版的工程,生成可执行文件。第6步,建立DebugSession和加载可执行文件。第7步,运行和调试(Debug)程序。第8步,编译链接加载(Release)版本的工程。通过以上这8步,就可以方便地完成整个DSP的应用开发,下面分别做介绍。第1步创建一个新的工程文件在VisualDSP++中,DSP的所有应用开发都是基于工程的,所以创建一个工程文件是整个软件开发的第一步。工程文件(术.dpj)中存放程序的编译链接信息:源文件列表、其关联关系信息和开发工具的选项设置等。1)打开IDDE:选中WINDOWS’中的开始菜单“Start\Programs\AnalogDevices\VisualDSP++4.5\VisualDSP++Enviroment”,弹出IDDE主界面o。2)单击“File”下拉菜单中的“new”一“Project”,VisualDSP++将启动新建工程向导,帮助用户逐步建立新工程。新建工程向导主要包含两个部分:“常规(General)”和“输出类型(OutputType)”。新建工程向导的常规信息窗口如图5.4所示在新建工程向导中主要包含了所建工程的名称、路径和工程类型等。工程的名称和路径由用户自己设置,工程的类型有四种,分别为:“Standardapplication”、“Library”、“Muhi—threadedapplicatonusingVDK”和“TCP/IPStackapplicationusingLwIPandVDK”四种,用户根据自己需要进行选择,系统默认为“Standardapplication”,本书也将按照“Standardapplication”进行讲解。在将工程名称、路径和类型设置完成后,单击“NEXT”