第4章DSP软件开发与C语言编程.ppt
《第4章DSP软件开发与C语言编程.ppt》由会员分享,可在线阅读,更多相关《第4章DSP软件开发与C语言编程.ppt(78页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第4章 DSP的软件开发与C语言编程本章内容:本章内容:4.1 DSP开发工具与软件开发流程开发工具与软件开发流程4.2 集成开发环境集成开发环境CCS4.3 DSP的的C工程文件工程文件 4.4 DSP C语言程序设计基础语言程序设计基础4.5 DSP C程序举例程序举例4/22/20231山东大学控制学院 张东亮 4.1 DSP开发工具与软件开发流程开发工具与软件开发流程1.DSP开发工具开发工具硬件硬件TI XDS510(Extended Development System)硬件仿真器。硬件仿真器。DSK(DSP Starter Kit)初学者开发套件。初学者开发套件。瑞泰瑞泰 ICE
2、TEK-5100PP/USB DSP开发系统。开发系统。评估板。评估板。DSP教学实验系统教学实验系统。开发工具包括硬件、软件两部分。硬件部分主要是仿真开发工具包括硬件、软件两部分。硬件部分主要是仿真器器(Emulator),软件主要是集成开发环境软件主要是集成开发环境CCS(Code Composer Studio)。DSP开发系统开发系统(仿真器仿真器)有有PCI插卡式、并口式、插卡式、并口式、USB接口接口式式,目前多用目前多用USB接口式,即接口式,即DSP开发系统通过开发系统通过USB接口与接口与PC机相连,开发系统通过机相连,开发系统通过JTAG(基于扫描的仿真)接口与用户基于扫描
3、的仿真)接口与用户目标板相连,实现目标板相连,实现DSP软硬件调试与程序烧写。软硬件调试与程序烧写。4/22/20232山东大学控制学院 张东亮 DSP评估板评估板(也称为也称为EVM板、目标板、板、目标板、DEMO板、实验板、实验板等板等),包括基本的,包括基本的DSP芯片及必要的电源、时钟、复位电路芯片及必要的电源、时钟、复位电路外,还经常包括用于程序调试的片外扩展存储器、扩展的外,还经常包括用于程序调试的片外扩展存储器、扩展的A/D、D/A转换器、键盘显示电路、转换器、键盘显示电路、EEPROM、RS232串行接串行接口、口、SPI接口、接口、CAN接口驱动电路、简单应用电路等。接口驱动
4、电路、简单应用电路等。F2812DSP评估板评估板4/22/20233山东大学控制学院 张东亮F2812DSP评估板评估板原理框图原理框图开发系统开发系统与评估板与评估板4/22/20234山东大学控制学院 张东亮2812 EVM板的主要性能指标如下:板的主要性能指标如下:(1)TMS320F2812,运行速度,运行速度150MIPS。(2)片内片内RAM 18K字。字。(3)扩展扩展RAM 64K字。字。(4)片内片内16路路12位位A/D转换器转换器,最大采样速率最大采样速率12.5MSPS。(5)扩展的扩展的4路路12位位D/A转换器转换器DAC7617。(6)两路两路UART串行接口,
5、符合串行接口,符合RS-232C标准。标准。(7)16路路PWM输出。输出。(8)CAN总线标准接口。总线标准接口。(9)用户开关与指示灯。用户开关与指示灯。(10)片内片内128K字字Flash存储器,带存储器,带128位加密位。位加密位。(11)IEEE1149.1兼容的逻辑扫描电路即兼容的逻辑扫描电路即JTAG接口,用于仿真调试。接口,用于仿真调试。(12)+5V电源输入电源输入,板上板上3.3V,1.8V电源管理。电源管理。4/22/20235山东大学控制学院 张东亮4/22/20236山东大学控制学院 张东亮2.软件开发流程软件开发流程软件开发流程框图软件开发流程框图 4/22/20
6、237山东大学控制学院 张东亮 软件开发流程软件开发流程 1)编辑编辑:生成源程序(:生成源程序(*.asm,*.c)、)、头文件头文件(*.h)与命令文件与命令文件(*.cmd)。2)编译与汇编编译与汇编:生成目标文件:生成目标文件(*.obj,公共目标文件公共目标文件COFF格式格式)及列表文件及列表文件(*.lst)。3)连接连接:生成可执行代码文件:生成可执行代码文件(*.out)及映射文件及映射文件(*.map)。4)调试调试:通过:通过JTAG接口下载到目标系统接口下载到目标系统EVM。5)通过通过JTAG接口将程序接口将程序固化固化烧写到烧写到Flash 存储器存储器。4/22/
7、20238山东大学控制学院 张东亮 软件开发工具主要有源程序编辑器软件开发工具主要有源程序编辑器(Editor)、编译、编译器器(Compiler)、汇编器、汇编器(Assembler)、链接器、链接器(Linker)、归档器归档器(Archiver)、运行时支持库、运行时支持库(Run-Time-Support Library)、库建立程序、库建立程序(Library-build Utility)、HEX转换转换程序程序(Hex Conversion Utility)、绝对列表器、绝对列表器(Absolute Lister)和交叉引用列表器和交叉引用列表器(Cross-Reference L
8、ister)、调试、调试工具工具(Debugging tools)、C+名称复原程序名称复原程序(C+Name Demangling Utility)、GEL语言语言(General Extension Language,通用扩展语言,通用扩展语言)、DSP/BIOS等。等。3.软件工具软件工具4/22/20239山东大学控制学院 张东亮 4.2 集成开发环境集成开发环境CCS1.CCS软件安装与设置软件安装与设置CCS2.0 C2000 (CCS3.3)驱动程序设置。驱动程序设置。Simulator:PC模拟软件仿真。模拟软件仿真。Emulator:实时实时DSP硬件仿真。硬件仿真。4/22
9、/202310山东大学控制学院 张东亮CCS运行主窗口运行主窗口 4/22/202311山东大学控制学院 张东亮CCS主要工具主要工具源程序编辑器源程序编辑器(Editor)。C编译器(编译器(C Compiler)。)。汇编器(汇编器(Assembler)。)。连接器(连接器(Linker)。)。调试工具调试工具(Debug)。十六进制转换公用程序十六进制转换公用程序(Hex Conversion Utility)。4/22/202312山东大学控制学院 张东亮2.CCS主要菜单与功能主要菜单与功能 典型的典型的CCS运行界面如图所示。运行界面如图所示。CCS的功能可以通的功能可以通过菜单或
10、工具条按钮实现。主要的菜单项有过菜单或工具条按钮实现。主要的菜单项有File、Edit、View、Project、Debug等。这些菜单的使用与常用的集等。这些菜单的使用与常用的集成开发软件成开发软件Visual C+等使用方法基本一样。等使用方法基本一样。4/22/202313山东大学控制学院 张东亮典型典型CCS运行界面运行界面4/22/202314山东大学控制学院 张东亮Code Composer Studio ComponentsRobust,Easy-to-Use Development EnvironmentHelpHelpCPU CPU WindowWindowMemory wi
11、ndowMemory windowGraph Graph windowwindowProject Manager:Project Manager:Source&object filesSource&object filesFile dependenciesFile dependenciesCompiler,Assembler Compiler,Assembler&Linker build options&Linker build optionsStatus Status windowwindowFull C/C+&Assembly Full C/C+&Assembly Debugging:De
12、bugging:C&ASM SourceC&ASM SourceMixed modeMixed modeDisassembly(patch)Disassembly(patch)Set Break PointsSet Break PointsSet probe PointsSet probe PointsWatch windowWatch windowProductive Editor:Productive Editor:Structure ExpansionStructure ExpansionMenus or IconsMenus or Icons4/22/202315山东大学控制学院 张东
13、亮Real-time DebuggingReal-time DebuggingAllows you to halt in non-critical code for debug while time-critical interrupts continue to be serviced.Access memory and registers without stopping the processor.Implemented in silicon,not by a debug monitor:Easy-to-use,no application resources requiredInterr
14、upt void ISR_1()Main()function()Halt and single step non-time critical codeTime-critical interrupts are still serviced.In Control,If The Processor Stops,The System Can Go Out Of Control4/22/202316山东大学控制学院 张东亮File菜单菜单4/22/202317山东大学控制学院 张东亮Project菜单菜单4/22/202318山东大学控制学院 张东亮View菜单4/22/202319山东大学控制学院 张
15、东亮Debug菜单菜单4/22/202320山东大学控制学院 张东亮3.采用采用CCS开发应用程序的步骤开发应用程序的步骤1)创建一个新的工程。)创建一个新的工程。2)编辑源程序编辑源程序(*.asm,*.c)与连接命令文件与连接命令文件(*.cmd)。3)将文件添加到该工程中将文件添加到该工程中(*.asm,*.c,*.h,*.cmd)。4)编译汇编连接。编译汇编连接。5)装载程序。装载程序。6)调试程序。调试程序。7)程序固化。程序固化。4/22/202321山东大学控制学院 张东亮调试程序调试程序连续运行与单步运行。连续运行与单步运行。设置断点。设置断点。查看与修改存储单元。查看与修改存
16、储单元。查看与修改寄存器内容。查看与修改寄存器内容。观察和编辑变量。观察和编辑变量。程序程序Animate运行和数据图形显示。运行和数据图形显示。4/22/202322山东大学控制学院 张东亮C工程工程(Project)几种基本文件几种基本文件CCS工工程程文文件件(扩扩展展名名为为.pjt)。由由CCS自自动动生生成成。在在CC(Code Composer)软件环境中,扩展名为软件环境中,扩展名为.mak。源程序源程序:汇编语言文件汇编语言文件(*.asm),C文件文件(*.c)。头头文文件件(*.h):定定义义寄寄存存器器映映射射地地址址,用用户户自自定定义义的的常常量量等等。例例如如,头
17、头文文件件DSP28_Adc.h,定定义义了了ADC寄寄存存器器、头文件头文件DSP28_PieVec.h,定义了定义了PIE中断矢量。中断矢量。链接命令文件链接命令文件(*.cmd)。)。库文件库文件(*.lib)。)。运行时支持库运行时支持库rts2800_ml.lib。目标文件目标文件(*.obj):COFF公共目标文件格式。公共目标文件格式。列表文件列表文件(*.lst):汇编生成的文件。汇编生成的文件。映射文件映射文件(*.map):存储器分配。存储器分配。可执行代码文件可执行代码文件(*.out)。4.3 DSP 的的C工程文件工程文件4/22/202323山东大学控制学院 张东亮
18、4.3.1 公共目标文件格式公共目标文件格式COFF 编译、汇编与链接程序建立的目标文件采用共用目标编译、汇编与链接程序建立的目标文件采用共用目标文件格式(文件格式(Common Object File Format,COFF),便于),便于模块化编程、管理代码段和存储器,即不必为程序代码或模块化编程、管理代码段和存储器,即不必为程序代码或变量指定目标地址。变量指定目标地址。汇编器根据命令用适当的段将各部分程序代码和数据汇编器根据命令用适当的段将各部分程序代码和数据连在一起,构成目标文件。链接器分配存储单元,即把各连在一起,构成目标文件。链接器分配存储单元,即把各个段重新定位到目标存储器中。个
19、段重新定位到目标存储器中。段段(section,也称为块,也称为块)是目标文件的最小单位,是在是目标文件的最小单位,是在存储器中占据连续空间的代码和数据块,各段相互独立。存储器中占据连续空间的代码和数据块,各段相互独立。4/22/202324山东大学控制学院 张东亮目标文件中段与目标存储器之间的关系目标文件中段与目标存储器之间的关系 汇编器的汇编器的COFF文件格式包括三个默认的段:文件格式包括三个默认的段:.text段,即程序段段,即程序段,该段通常包含可执行代码即程序。该段通常包含可执行代码即程序。.data段,即数据段段,即数据段,该段通常包含已初始化的数据。该段通常包含已初始化的数据。
20、.bss段,即保留数据空间段段,即保留数据空间段,该段通常为未初始化的数据保留空间。该段通常为未初始化的数据保留空间。4/22/202325山东大学控制学院 张东亮 汇编器和链接器允许用户建立和链接自定义的段。汇编器和链接器允许用户建立和链接自定义的段。所有段可以分为初始化段和未初始化段两类。初始化所有段可以分为初始化段和未初始化段两类。初始化段包含程序代码和数据。未初始化段则为未初始化的段包含程序代码和数据。未初始化段则为未初始化的数据保留存储空间。汇编命令数据保留存储空间。汇编命令.sect和和.usect可以分别可以分别用来创建自定义的初始化段和未初始化段。用来创建自定义的初始化段和未初
21、始化段。C编译器对编译器对C程序编译后也产生初始化段和未初始程序编译后也产生初始化段和未初始化段两类,具体的段名稍有不同,除了不使用化段两类,具体的段名稍有不同,除了不使用.data段段之外,还产生一些新的段。之外,还产生一些新的段。4/22/202326山东大学控制学院 张东亮 编译器对编译器对C语言编译后除了生成语言编译后除了生成2个基本段,即个基本段,即.text、.bss外外,还生成还生成 .cinit、.pint、.const、.econst、.switch、.ebss.、.stack、.sysmem.、.esysmem段。段。这些段可分为初始化段和这些段可分为初始化段和未初始化段。
22、未初始化段。初始化段初始化段包含可执行代码或常数表。包含可执行代码或常数表。C编译器产生的初始化段编译器产生的初始化段有有.pint、.const、.econst、.text、.cinit、.switch。.text段,包含可执行代码和常量段,包含可执行代码和常量(constant)。.cinit段和段和.pint段,包含初始化变量和常量。段,包含初始化变量和常量。.const段,包含串常量,全局变量、静态变量的声明和初始化。段,包含串常量,全局变量、静态变量的声明和初始化。.econst段,包含串常量,全局变量、静态变量的声明和初始化。段,包含串常量,全局变量、静态变量的声明和初始化。变量由
23、变量由far const修饰,或用大存储器模型,初始化后放进远修饰,或用大存储器模型,初始化后放进远(far)存储器。存储器。.switch段,包含段,包含switch语句表。语句表。4/22/202327山东大学控制学院 张东亮未初始化段未初始化段用于保留存储器用于保留存储器(通常为通常为RAM)空间。空间。C编译器产编译器产生的为初始化段有生的为初始化段有.bss、.ebss、.stack、.sysmem和和.esysmem段。段。.bss段,为全局和静态变量保留空间。段,为全局和静态变量保留空间。.ebss段,为全局和静态变量保留空间。变量由段,为全局和静态变量保留空间。变量由far 修
24、饰,或修饰,或用大存储器模型使用。用大存储器模型使用。.stack段,为段,为C系统堆栈。用于保护函数的返回地址、分配系统堆栈。用于保护函数的返回地址、分配局部变量、调用函数时传递参数。局部变量、调用函数时传递参数。.sysmem段段,为动态存储器分配保留空间,为动态存储器分配保留空间,malloc函数使用。函数使用。.esysmem段段,为动态存储器分配保留空间,为动态存储器分配保留空间,far malloc函数使函数使用。用。4/22/202328山东大学控制学院 张东亮初始化段链接初始化段链接 段名称段名称描述描述限制限制.text可执行代码和常量可执行代码和常量程序程序.cint已初始
25、化的全局与静态变量的已初始化的全局与静态变量的C初始初始化记录化记录低低64K数据数据.pint全局构造器全局构造器(C+constructor)表表程序程序.switch实现实现switch语句表语句表程序程序/低低64K数据数据.const已初始化的全局与静态已初始化的全局与静态const修饰变修饰变量,串常量量,串常量低低64K数据数据.econstfar costant变量变量数据任何位置数据任何位置4/22/202329山东大学控制学院 张东亮未初始化段链接未初始化段链接 段名称段名称内容内容限制限制.bss全局与静态变全局与静态变量量低低64K数数据据.ebssfar全局与静态全局
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DSP 软件 开发 语言 编程
限制150内