《第13章系统开发.ppt》由会员分享,可在线阅读,更多相关《第13章系统开发.ppt(51页珍藏版)》请在三一文库上搜索。
1、第13章 TMS320LF240x的系统开发 13.1 系统开发过程,DSP系统开发过程: (1)明确开发任务,确定技术指标 采样速度、精度、存储量、控制信号形式、实时性要求 (2)总体方案 系统组成、算法设计、核心元件选择、软硬件分工 (3)硬件实现 硬件需求分析、元件选择、原理图设计、PCB图设计、硬件调试 (4)软件实现 软件需求分析、算法仿真、编码、软件调试 (5)系统集成和测试 软硬件联合调试、系统测试,硬件实现:,考虑的问题: (1)处理器控制器:单片机、DSP、ARM等。考虑公司、产品系列、工作频率、工作电压、工作温度等; (2)A/D:采样频率、精度。考虑片上是否自带采样保持器
2、、多路器、基准电源等; (3)D/A:信号频率、精度。考虑是否有片上基准电源、多路器、输出运放等; (4)存储器:包括SRAM、EPROM、SDRAM、FIFO等。考虑工作频率、存储容量、字长、接口方式、工作电压等;,(5)逻辑控制:CPLD、FPGA。考虑公司、产品系列、片内资源、I/O资源、工作速度; (6)通信接口:根据速率和距离决定采用何种通信方式,并进一步选择通信接口芯片; (7)总线接口:PCI、CPCI、CAN、VXI、PXI等。考虑使用的场合、数传速率(总线宽度、频率高低、同步方式等)进行选择; (8)信号调理:运算放大器、比较器、多路器等。考虑带宽、输入信号范围、输出信号范围
3、、响应速度(信号建立时间)等;,(9)人机接口:键盘、LED、数码管、液晶屏等; (10)电源:电压的高低和电流容量的大小。电压高低要匹配,电流容量要足够。 原理图设计中关键部分要进行:软件仿真、硬件仿真。 PCB图设计要综合考虑设备结构特点和数模混合电路布线工艺。 硬件调试主要进行硬件基本功能调试,确定可以满足功能和技术指标要求。,软件实现: (1)软件需求分析 (2)算法仿真,高级语言编程 (3)编码:可读性 (4)软件调试、测试:代码效率、执行效率 系统集成与系统测试: 软硬件联合调试,调整时序关系,完成系统实现。按照系统功能指标要求进行系统测试和各种环境实验。,13.2 DSP系统的仿
4、真调试工具 (1)标准评估模块(EVM) (2)DSP入门套件(DSK) (3)硬件仿真器(Emulator/XDS) (4)软件仿真器(Simulator) (5)DSP软件开发平台(CCS),13.2.1 标准评估模块 标准评估模块(EVM,Evaluation Module)是TI或第三方为DSP的使用者设计和生产的的一种评估平台,它的运行环境和资源较为完善,可用于某种型号DSP的器件评估、程序调试与检查以及系统的调试。 EVM提供了一套完整的DSP系统,包括A/D、D/A、外部程序数据存储器、外部I/O等,用户可用EVM来进行DSP的实验、编写和运行实时的源代码,对代码进行评估,并且可
5、以用来调试用户自己的系统。,此TMS320LF2407 EVM板的性能指标如下: TMS320LF2407运行速度30MIPS 64K程序存储器和64K数据存储器 4路的DAC7625数模转换 UART接口,符合RS232标准 32K片上FLASH CAN总线标准接口 用户开关和测试指示灯 数据、地址、I/O、控制扩展接口,具有IEEE1149.1兼容的逻辑扫描电路,该电路用于测试和仿真 +5V电源输入,内部3.3V电源管理,13.2.2 DSK入门套件 DSP入门套件(DSK,DSP Starter Kit)是TI公司为TMS320 DSP的初学者设计和生产的一种评价DSP平台的廉价开发工具
6、板。 在PC机环境下,用户可以使用DSK来做系统实验和应用,可以进行诸如自动控制系统、语音处理等应用;也可以编写和运行实时的代码;还可用来建立和调试用户自己的系统。 DSK套件包括一块TMS320 DSP芯片为基础的电路板、配套的电源和电缆、专用的C编译器、汇编器链接器以及相应的,调试软件和文档。DSK电路板上除了DSP之外,一般还带有一定的存储器,并配有通信接口(并口或串口,用来和PC机通信)、电源插口、模拟信号I/O接口、扬声器接口等。 可很容易地实现一个简单的控制系统或语音系统,为初学者学习DSP开发提供了一个良好的平台。,13.2.3 DSP硬件仿真器 TI公司的DSP硬件仿真器(Em
7、ulator)是基于边界扫描(Boundary Scan)的在线系统仿真技术。 它用于系统集成阶段的原理样机软硬件联合调试。 扫描式仿真是一种独特的、非插入式的系统仿真与系统调试方法,程序可以从片外或片内的目标存储器实时执行,在任何时钟速度下都不会引入额外的等待状态。,硬件仿真器的主机是PC或工作站。主机通过仿真器与目标板的JTAG接口相连,控制目标板上的DSP。 目标板上的DSP本身带有仿真功能,硬件仿真器本身只是一个控制器,它通过DSP芯片内部的串行扫描路径对处理器进行控制,完成实时测试和调试。,仿真器与目标系统的接口是利用一个标准的14针接口(JTAG接口)来实现的 (JTAG-IEEE
8、1149.1标准),仿真器与PC机的连接有多种形式: PCI接口:仿真器作为一个插卡插在主机中。早期多采用这种方式,现在已很少见了; 并口:仿真器通过打印机接口与主机连接。由于计算机并口采用39针连接器进行连接,并口仿真器体积相对也较大; USB接口:USB接口以其高速数传和热插拔的特性,且可以方便地与计算机连接,并且具有很好的连通性能。发展迅速,已经成为目前最常见的仿真器。,13.2.4 DSP软件仿真器 软件仿真器是一个软件程序,使用主机的处理器和存储器来仿真TMS320 DSP的微处理器和微计算机模式,从而进行软件开发和非实时的程序验证。在PC机上,典型的软仿真速度是每秒几百条指令。 主
9、要功能和性能有: 在主机上执行用户的DSP程序 修改和检查寄存器 显示和修改数据和程序存储器 仿真外设、高速缓存和流水时序 提取指令周期时序,用以分析器件的表现,设置断点,添加指令,读写内存、数据总线或程序总线上的数据 跟踪累加器、程序计数器、辅助寄存器等 单步执行指令 在用户指定的时间产生中断 对非法操作码和无效数据输入等提供出错信息 执行批处理文件中的命令 用文件的方式快速存储和调用仿真参数 反汇编能力,以便对语句作编辑和重汇编,存储器的内容可以同时显示为十六进制的16位值和汇编后的源代码 多种执行模式(单个多个指令计数、单个多个周期计数、until条件、while条件循环计数、无限制地运
10、行键入的halt等) 跟踪表达式的值、cache和指令流水线,以便优化代码 周期计数 在单步执行或运行的模式下显示时钟周期数,早期的软件仿真器与其他开发工具(如代码生成工具)是分离的,使用起来不太方便。 现在软件仿真器已作为CCS(Code Composer Studio)的一个标准插件,已经被广泛地应用于DSP的开发中。,13.2.5 软件开发平台 常见的DSP软件开发平台主要有CCS(Code Composer Studio)。主要包含了DSP代码生成过程中所必需的C编译器、汇编器和链接器。 C编译器(C Compiler) 将C语言源代码程序自动地编译成DSP汇编语言源代码程序; 汇编器
11、(assembler) 将汇编语言源代码文件汇编成机器语言COFF目标文件,在源文件中包含了汇编指令、宏命令及指令等;,链接器(linker) 把汇编生成的可重定位的COFF目标模块组合成一个可执行的COFF目标模块。它能调整并解决外部符号引用。 链接器的输入:是可重定位的COFF目标文件和目标库文件,它也可以接收来自文档管理器中的目标文件以及链接以前运行时所产生的输出模块。,13.3 DSP系统开发环境 C高级语言编程(或C和汇编的混合编程)、C优化编译和集成的软硬件开发环境-CCS(Code Composer Studio) CCS包含源代码编辑工具、代码调试工具、可执行代码生成工具和实时
12、分析工具,并支持设计和开发的整个流程。,13.3.1 CCS的主要特性 完全集成的开发环境 高度集成的源代码编辑器 支持编译和调试的后台编辑 对C语言源文件和DSP汇编语言文件的目标管理 支持探针在算法中通过文件提取或加入信号和数据 可以在后台执行DOS程序 图形分析功能 方便的代数分解窗口 有在任何算法点观察信号的图形窗口探针 有状态观察窗口,13.3.2 CCS开发软件的主要流程,DSP开发工具 : C编译器(C Compiler) 汇编器(assembler) 链接器(linker) 档案管理器(achiever) 助记符到代数语言的转换程序 运行支持库公用程序(runtime-supp
13、ort utility) 运行支持库(runtime-support library) 十六进制转换公用程序(Hex conversion utility),13.3.3 公共目标文件格式 (COFF) CCS的汇编器输出的目标文件和链接器输出的可执行文件都是公共目标文件格式(COFF, Common Object File Format)。 由于COFF在编写程序时采用代码和数据块的形式,因此有利于模块化编程。代码块和数据块-称为段。 段(sections) 是指连续地占有存储空间的一个数据块或代码块。在编写程序时,程序按段组织。段是目标文件中可重新定位的最小单元,一个目标程序中的每个段通常
14、是分开的和不同的。,COFF目标文件至少包含以下3个默认的段: (1).txt 文本段,通常包含可执行代码 (2).data 数据段,通常包含初始化的数据 (3).bss 保留空间段,通常为没有初始化的变量保 留空间 此外,还有命名段。汇编器和链接器可用来产生、命名和链接命名段,这些段的使用和.data,.text和.bss段相同。 段有两种基本类型:初始化段和未初始化段。 初始化段包含数据或代码,包括:.text段、.data段以及由汇编器伪指令.sect产生的命名段;,未初始化段为没有初始化的数据保留存储空间,包括:.bss段和由汇编器伪指令.sect产生的命名段。 链接器的功能之一是将段
15、重新定位到目标系统的存储器空间中,该功能称为定位或分配(allocate)。因为大多数系统中包含有几种存储器,所以使用段可使目标存储器的使用更为有效。,所有的段都是独立可重新定位的,可将任何段放入目标存储器的任何位置。 例如,可以定义一个包含有初始化程序的段,然后将它分配到包含ROM的存储器空间中去。,13.3.4 CCS软件界面,CCS主菜单各项功能 File(文件):文件管理,载入执行程序、符号及数据,文件输入输出等 Edit(编辑):文件及变量编辑,如剪贴、撤消、字符串查找等 View(查看):工具条显示设置,内存、寄存器和图形显示等 Project(工程):工程管理(新建、打开、关闭及
16、添加文件等)、编译、构建工程等Debug(调试):断点、探针设置,单步执行、复位等 Profiler(性能):性能菜单,包括时钟和性能断点设置等,GEL(扩展功能):利用通用扩展语言设置扩展功能 Option(选项):选项设置,设置字体、颜色、键盘属性、动画速度、内存映射等 Tools(工具):包括管脚连接、端口连接、命令窗口、连接设置等 DSP/BIOS(实时分析工具):用来辅助CCS环境实现程序实时调试 Windows(窗口):窗口管理,包括窗口排列、窗口列表等 Help(帮助):CCS在线帮助菜单,包括用户手册、入门指南等,13.3.5 CCS工程组成 (1).pjt文件:CCS工程文件
17、。 (2).lib文件:CCS运行支持库。 (3).h文件:头文件。 (4).c文件:C源文件。 (5).asm文件:汇编语言源文件。 (6).cmd文件:链接命令文件。 (7).obj文件:目标文件,COFF格式。 (8).out文件:可执行文件,COFF格式。,13.3.6 头文件 CCS工程中的头文件和其它基于C语言的开发环境中的头文件基本相同,主要是用来定义工程中的常量和数据结构。 在实际工程应用中,为提高DSP系统的开发效率,将DSP片内的控制寄存器定义写成一个头文件,这样在各个基于相同型号DSP的开发中,可以共享这个定义控制寄存器的头文件。,/*/ /* 文件名: 2407c.h*
18、/ /* 描述: 2407 寄存器定义*/ /*/ /* 2407 CPU core registers */ unsigned int *IMR = (unsigned int *)0x0004; /* Interrupt Mask Register*/ unsigned int *IFR = (unsigned int *)0x0006; /* Interrupt Flag Register*/ ,13.3.7 中断向量定义 与单片机类似,DSP的中断也可以采用查询和回调两种方式。如用回调方式处理,其实现方式是在中断向量地址处放置一个跳转语句,跳转到相应的中断处理函数。在CCS中,需要编写
19、一个.asm文件,定义所有的中断向量。,.ref _gptime1,_c_int0 sect “.vectors“ RSVECT B _c_int0 ; Reset Vector INT1 B PHANTOM ; Interrupt Level 1 INT2 B _gptime1 ; Interrupt Level 2 INT3 B GISR3 ; Interrupt Level 3 INT4 B GISR4 ; Interrupt Level 4 INT5 B GISR5 ; Interrupt Level 5 INT6 B GISR6 ; Interrupt Level 6 ,13.3.8
20、 链接命令文件 CCS的链接器也可以有很多选项,如-l、-stack、-o等,另外在链接器选项中还应该将开发中的逻辑段与目标系统存储器物理地址的对应关系定义清楚。 这些链接器选项的实现有三种方式: (1)利用命令行实现:即在命令行中link命令后面将所有的链接选项写明,使链接器按照选项设定去工作。 (2)利用工程选项菜单实现:在CCS菜单ProjectBuild OptionsLinker页面中可以对链接器选项进行设置。 (3)利用链接命令文件实现:即编写一个链接命令文件,,将所有链接选项写在文件中,并将此文件加入工程。链接命令文件实际上就是一个ASCII码文件,扩展名是.cmd。推荐使用工程
21、选项菜单和链接命令文件的方式来实现链接器选项的设置。链接器对命令文件名的大小写是敏感的,空格和空行是没有意义的,但可以用作定界符。 链接器命令文件主要包含以下3部分内容: (1)输入文件名。就是链接的目标文件和文档库文件或者是其他的命令文件,可以没有。 (2)链接器选项。 如-l、-stack、-o等,这些选项可以用在链接命令行,也可以用在命令文件中。,(3)MEMORY和SECTIONS都是链接命令: MEMORY命令定义目标存储器的配置; SECTIONS命令定义逻辑段与目标存储器的对应关系。,a.obj b.obj -stack 200 -l rts2xx.lib MEMORY /* 定
22、义存储器空间 */ PAGE 0 : VECS : origin = 0h , length = 040h /* 中断向量表 */ PROG : origin = 40h , length = 0FFC0h /* 程序存储器空间 */ PAGE 1 : MMRS : origin = 0h , length = 060h /* 存储器映射寄存器空间 */ B2 : origin = 0060h , length = 020h /* DARAM B2 */ B1 : origin = 0200h , length = 0200h /* DARAM B1*/ DATA : origin = 800
23、0h , length = 8000h /* 外部数据存储器空间*/ SECTIONS /* 确定输出各段位置 */ .vectors : VECS PAGE 0 /*中断向量表 */ .text : PROG PAGE 0 /* 代码 */ .data : PROG PAGE 0 /* 初始化数据 */ .mmrs : MMRS PAGE 1 /*存储器映射寄存器*/ .bss : DATA PAGE 1 /* B2块 */ ,13.4 控制程序开发语言的选择 DSP控制程序的开发可采用三种语言:汇编语言、C语言和C语言与汇编语言混合编程。 1.汇编语言编程 优点: (1)包含大量的高效指令
24、,可实现很高的代码效率和实时性; (2)具有灵活的寻址方式,底层控制灵活性好; (3)执行效率高,指令周期明确,保证系统的实时性。,不足: (1)TI的DSP汇编指令集庞大,掌握困难,需要长期的实践积累; (2)流程控制不便,开发周期长; (3)程序可读性差,修改升级困难; (4)不同系列DSP间的汇编指令不尽相同,开发程序的可移植性差。 总结:主要适用于一些运算量大、时序要求严格或实时性要求高的场合。,2.C语言编程 优点: (1)开发者熟悉程度好,不用花费精力对开发语言进行深入学习,上手快; (2)对DSP底层不要求有非常深入的了解,C编译器会解决诸如辅助寄存器、现场保护等底层工作; (3
25、)流程控制灵活,开发周期短; (4)DSP开发厂商和第三方在不断优化C编译器,目前在某些应用中C语言优化编译的结果可以达到手工编写的汇编语言效率的90%以上;,(5)程序可移植性好,不同应用可以共享相同的程序代码; (6)程序可读性好,修改升级容易。 不足: (1)某些底层硬件控制能力不如汇编语言灵活; (2)程序运行时间难以掌握,实时性不好。 总结:适用于一些运算量不大、实时性要求不高或流程控制非常复杂的场合。,3.C语言和汇编语言混合编程 汇编语言编程和C语言编程各有优势和不足。 汇编语言编程效率高、实时性好、底层控制灵活,而C语言编程流程控制方便、程序具有较好的可读性和可移植性。 二者的有很多互补之处,因此可以考虑混合应用两种编程语言实现DSP控制程序的开发,可充分地利用两种编程语言的优势,更好地实现DSP应用系统的开发。 利用两种语言进行混合编程时,通常利用C语言实现程序总体流程的控制;而在C语言难以满足要求的高速数据处理、大数,据量运算、严格时序要求、高实时性要求的核心程序部分,则可以利用汇编语言来实现。这样汇编语言占有程序比重不大,仍然可以保证比较短的开发周期。 利用两种语言进行混合编程主要有以下四种方式: (1)C程序调用汇编函数; (2)C程序内嵌汇编语句; (3)C程序访问汇编程序变量; (4)修改C编译器输出。 结束,
链接地址:https://www.31doc.com/p-2908155.html