1、DSP开发工具与软件设计内容 开发工具 VisualDSP介绍 DSP汇编语言程序设计 DSP高级语言程序设计 汇编与高级语言的接口 链接描述文件 集成开发调试环境(IDDE)开发工具开发工具 硬件开发工具:EZ-ICE(In-Circuit Emulator,硬件仿真器)通过JTAG仿真测试口连接,管理目标处理器EZ-kit lite(工具包)主要包括评估板(通过串口或USB与PC连接) 软件开发工具: VisualDSP使用开发工具的流程(1) 系统框架描述,任务分析及确定,定义目标系统,编写系统结构文件(.ldf,链接描述文件) 产生程序代码C源文件(.C)汇编源文件(.ASM)库文件标
2、准编译器或汇编器工程文件(.dpj)链接器链接描述文件(.ldf)可执行文件(.dxe)使用开发工具的流程(2) 调试程序(软件模拟)在评估板或实验板上,利用软件模拟器进行; 目标系统仿真(硬件仿真)硬件仿真器与目标处理器连接,进行硬件仿真; 完成最终系统(软件+硬件)脱机装载固化程序(EPROM、E2PROM或FLASH等),完成系统测试。VisualDSP介绍介绍 VisualDSP是一个集成的开发、调试环境(Integrated Development and Debugging Environment,简称IDDE),具有图形交互的窗口形式,为DSP应用程序的开发提供了全面灵活的工程式
3、管理。 VisualDSP专门针对ADI公司的系列DSP(浮点和定点)所使用的通用开发平台,可以支持共享存储器的多处理器系统开发。VisualDSP的组成 集成开发环境(Integrated Development Environment) 集成调试环境(Integrated Debugging Environment) VDK核(VisualDSP Kernel)及分析工具 VCSE(VisualDSP Component Software Engineering)专家链接器 高速缓存和指令流水查看器 TCL ScriptsVisualDSP的主要特点 强大的编辑器和灵活的工程管理功能。 对
4、各种SHARC工具的操作非常容易。 调试与多处理器支持。 支持高级语言编程和调试。 强大的统计性能分析。 专家链接器与VCSE。DSP汇编语言程序设计汇编语言程序设计汇编语言能够与硬件紧密结合,其执行效率最高,指令代码最短,占用内存最小。在对运算速度要求很高的场合,使用汇编语言编程具有独特的优势。汇编编程时应注意 充分利用DMA块操作、条件执行、循环寻指、位反序、延迟跳转、并行操作等专门为DSP运算而设计的指令,多数操作都有专门的硬件支持,执行效率高。 充分利用寄存器、Cache、片内RAM等高速运行的片上资源,以提高程序运行速度。 合理安排指令,避免指令的流水冲突。 充分精简指令,合理优化程
5、序。程序设计优化 程序设计优化的目的 程序设计优化的途径 SHARC DSP程序设计优化的基础 程序优化举例程序设计优化的目的 易维护性 可靠性 效率 易理解性程序设计优化的途径 程序结构的优化 数据结构的优化 指令优化SHARC DSP程序设计优化的基础 多总线结构 多运算器结构 指令缓存与程序流水结构 长指令结构 独立的I/O结构 分块的双口RAM结构 SIMD结构汇编程序内容与结构 汇编指令 汇编器命令 预处理器命令汇编表达式、操作符与数据格式 汇编表达式常量表达式、地址表达式 操作符 数据格式二进制、八进制、十进制、十六进制汇编关键字与符号 位段名 汇编指令 汇编器命令DSP高级语言程
6、序设计高级语言程序设计高级语言基本脱离硬件,可读性强,程序的可移植性也很好。利用高级语言开发DSP程序,极大地缩短了DSP软件的开发周期。VisualDSP集成开发环境支持高级语言编程。 C/C+运行时模式 C/C+实时运行库C/C+运行时模式 存储器使用 编译器寄存器 用户寄存器 使用预保留的寄存器 高速暂存寄存器、堆栈寄存器与备用寄存器 堆栈管理C/C+实时运行库函数、宏和类模块的集合。 调用库函数 链接库函数 库头文件汇编语言与高级语言的接口汇编语言与高级语言的接口混合编程 C/C+实时运行库调用汇编函数 汇编程序调用C/C+函数 C+调用汇编类成员函数链接描述文件链接描述文件LDF链接
7、描述文件定义系统的配置、存储器分配、链接器链接的所有目标文件和目标库,以及指定链接器如何处理链接的过程。集成开发调试环境集成开发调试环境 程序开发步骤 Debugger调试工具程序开发步骤程序开发步骤 创建一个新的工程文件 设置工程选项 添加或编辑工程源文件 编译链接Debug版的工程,生成可执行文件 建立Debug Session和加载可执行文件 运行和调试程序 编译链接加载(Release)版本的工程创建一个新的工程文件 在VisualDSP下DSP的所有应用开发都是基于工程的,所以创建一个工程文件是整个软件开发的第一步。 工程文件(.dpj)中存放程序的编译链接信息:源文件列表、文件相关
8、信息和开发工具的选项设置等。 选择ProjectNew,会弹出相应对话框,键入新工程文件名,即可保存这个工程文件。设置工程选项 在给新建立的工程加入文件之前,必须先设置工程选项,选择ProjectProject Options,会弹出相应对话框,对8个选项栏分别予以设置,可完成指定处理器类型及设置工程编译链接等操作。 配置完成后,确定并退出Project Options对话框。添加或编辑工程源文件 一个工程文件一般包括一个或多个C/C+、汇编源文件。当创建了一个工程文件,并在工程选项中指定了所用的处理器类型及设置工程编译链接选项后即可把新的或已存在的源文件加入该工程中。 可以把各种类型的文件添
9、加到工程中去,编译链接时,IDDE能自动选择可识别的文件并对其进行编译链接。 Dependencies描述工程中源文件之间的相关信息,它决定编译链接的顺序。编译链接Debug版的工程,生成可执行文件 创建了一个工程,完成工程选项设置并加入了源文件后,即可创建可执行文件。 确定工程设置中选项正确(设置为Debug)。 通过ProjectBuild Project来编译链接该工程。 在编译链接过程中,输出窗中会显示状态信息。如出错,会显示出错信息。 注意:此时,ProjectProject Options中选择的输出文件类型必须指定为DSP executable file类型(.dxe),才能产生
10、可进行Debug调试的输出文件。建立Debug Session和加载可执行文件 Debug Session可以是软件仿真或硬件模拟两个版本,在Session中指定目标和处理器类型。 可以通过File/Load Program选单加载可执行文件。运行和调试程序 为工程文件指定Debug Session后,即可利用Debugger工具来运行和调试该工程。 该阶段操作在Debug菜单中进行。编译链接加载Release版本的工程 当DSP应用程序完成Debug调试后,即可编译链接一个Release版本(正式版)的工程。 注意:应将工程选项中的原设置(Debug)改为Release类型后,再编译链接这个
11、工程(由ProjectBuild Project 完成)。 这样得到的代码删去了调试用的多种信息,不再用于调试,但性能优化了。 注意:在生成可执行文件时,可生成一个加载文件( .ldr,在ProjectProject Options中选择生成文件的类型为Loader File)。Debugger调试工具调试工具 Debugging Sessions 程序执行操作 程序性能分析操作 设置断点和观察点 仿真硬件环境 寄存器窗口操作 存储器窗口操作 其他窗口操作 PlotDebugging Sessions Debug target(选择系列,并选择simulation或emulation) Pla
12、tform(在Debug target中选择具体平台) Processor(选择处理器类型) 一次可运行一个或几个调试会话窗口(单处理器或多处理器)程序执行操作从Debug选单运行程序,执行命令。 Run Halt Run to Cursor Step over Step into Step out of Reset Restart程序性能分析操作VisualDSP中提供了3个命令来分析程序的执行情况(位于Tools 菜单中): Traces(跟踪,对程序指令的跟踪,结果显示程序如何执行到某一步) Profile(评估,用来分析程序的运行时间特性) Statistical Profiling(
13、统计评估,可统计指令执行时占用的时间)设置断点 断点(Break Point)和观察点(Watch Point )功能相似,程序执行到断点将停止,而观察点可以设置观察条件来停止程序的执行,如寄存器的读写、存储器的读写、硬件堆栈的使用等。 它们均在Settings中设置。仿真硬件环境VisualDSP中提供了3个命令来仿真硬件环境(Settings中设置): Interrupts(仿真程序执行过程中产生随机外部中断) Streams(仿真数据流通过DSP的I/O管脚进行传送) Load Sim Loader(仿真DSP通过PROM或主机模式进行加载)寄存器窗口操作在寄存器窗口中,可以改变寄存器内
14、容显示的数据格式和修改寄存器内容。存储器窗口操作存储器窗口不仅可以象寄存窗口一样提供数据格式和编辑操作,还可提供以下功能: Go To(跳至某一地址) Fill(填充) Dump(导出) New Tracking(在某一存储器窗口中输入一个表达式来进行跟踪) Plot(对存储器内容作图,ViewDebug WindowsPlot中设置)其他窗口操作 反汇编窗口操作 源文件窗口操作 Locals窗口操作(ViewDebug Windows Locals,Locals 窗口中会显示程序中的所有局部变量和它的值) Expressions窗口操作(ViewDebug WindowsExpressions,在Expressions窗口中允许写入一个表达式并显示其值)Plot 利用Plot功能可以将存储区中某一段内容以图形方式画出来,可直观地观察存储区中的数据,也可用相应处理算法进行处理(可转换为分贝、并作FFT等),并具有多种画图类型(ViewDebug WindowsPlot中设置)。