CCS教程DSP开发软件.docx
《CCS教程DSP开发软件.docx》由会员分享,可在线阅读,更多相关《CCS教程DSP开发软件.docx(77页珍藏版)》请在冰豆网上搜索。
CCS教程DSP开发软件
CCS教程(DSP开发软件)
第一章CCS概述1
1.1CCS概述1
1.2代码生成工具3
1.3CCS集成开发环境5
1.3.1编辑源程序5
1.3.2创建应用程序6
1.3.3调试应用程序6
1.4DSP/BIOS插件7
1.4.1DSP/BIOS配置7
1.4.2DSP/BIOSAPI模块8
1.5硬件仿真和实时数据交换10
1.6第三方插件13
1.7CCS文件和变量14
1.7.1安装文件夹14
1.7.2文件扩展名14
1.7.3环境变量15
1.7.4增加DOS环境空间16
第二章开发一个简单的应用程序17
2.1创建工程文件17
2.2向工程添加文件19
2.3查看源代码21
2.4编译和运行程序23
2.5修改程序选项和纠正语法错误24
2.6使用断点和观察窗口26
2.7使用观察窗口观察structure变量28
2.8测算源代码执行时间29
2.9进一步探索31
2.10进一步学习31
第三章开发DSP/BIOS程序32
3.1创建配置文件32
3.2向工程添加DSP/BIOS文件34
3.3用CCS测试36
3.4测算DSP/BIOS代码执行时间38
3.5进一步探索40
3.6进一步学习40
第四章算法和数据测试41
4.1打开和查看工程41
4.2查看源程序43
4.3为I/O文件增加探针断点45
4.4显示图形47
4.5执行程序和绘制图形48
4.6调节增益50
4.7观察范围外变量51
4.8使用GEL文件53
4.9调节和测试processing函数54
4.10进一步探索56
4.11进一步学习57
第五章程序调试58
5.1打开和查看工程58
5.2查看源程序60
5.3修改配置文件63
5.4用ExecutionGraph查看任务执行情况66
5.5修改和查看load值67
5.6分析任务的统计数据70
5.7增加STS显式测试72
5.8观察显式测试统计数据73
5.9进一步探索75
5.10进一步学习75
第六章实时分析76
6.1打开和查看工程76
6.2修改配置文件77
6.3查看源程序79
6.4使用RTDX控制修改运行时的load值81
6.5修改软中断优先级84
6.6进一步探索85
6.7进一步学习85
第七章I/O86
7.1打开和查看工程86
7.2查看源程序87
7.3Signalprog应用程序90
7.4运行应用程序91
7.5使用HST和PIP模块修改源程序93
7.6HST和PIP资料96
7.7在配置文件中增加通道和SWI97
7.8运行修改后的程序100
7.9进一步学习100
第一章CCS概述
本章概述CCS(CodeComposerStudio)软件开发过程、CCS组件及CCS使用的文件和变量。
CCS提供了配置、建立、调试、跟踪和分析程序的工具,它便于实时、嵌入式信号处理程序的编制和测试,它能够加速开发进程,提高工作效率。
1.1CCS概述
CCS提供了基本的代码生成工具,它们具有一系列的调试、分析能力。CCS支持如下所示的开发周期的所有阶段。
在使用本教程之前,必须完成下述工作:
安装目标板和驱动软件。按照随目标板所提供的说明书安装。如果你正在用仿真器或目标板,其驱动软件已随目标板提供,你可以按产品的安装指南逐步安装。
安装CCS.遵循安装说明书安装。如果你已有CCS仿真器和TMS320c54X代码生成工具,但没有完整的CCS,你可以按第二章和第四章所述的步骤进行安装。
运行CCS安装程序SETUP.你可以按步骤执行第二章和第四章的实验。SETUP程序允许CCS使用为目标板所安装的驱动程序。
CCS包括如下各部分:
CCS代码生成工具:
参见1.2节
CCS集成开发环境(IDE):
参见1.3节
DSP/BIOS插件程序和API:
参见1.4节
RTDX插件、主机接口和API:
参见1.5节
CCS构成及接口见图1-1。
图1-1CCS构成及接口
1.2代码生成工具
代码生成工具奠定了CCS所提供的开发环境的基础。图1-2是一个典型的软件开发流程图,图中阴影部分表示通常的C语言开发途径,其它部分是为了强化开发过程而设置的附加功能。
图1-2软件开发流程
图1-2描述的工具如下:
C编译器(Ccompiler)产生汇编语言源代码,其细节参见TMS320C54x最优化C编译器用户指南。
汇编器(assembler)把汇编语言源文件翻译成机器语言目标文件,机器语言格式为公用目标格式(COFF),其细节参见TMS320C54x汇编语言工具用户指南。
连接器(linker)把多个目标文件组合成单个可执行目标模块。它一边创建可执行模块,一边完成重定位以及决定外部参考。连接器的输入是可重定位的目标文件和目标库文件,有关连接器的细节参见TMS320C54x最优化C编译器用户指南和汇编语言工具用户指南。
归档器(archiver)允许你把一组文件收集到一个归档文件中。归档器也允许你通过删除、替换、提取或添加文件来调整库,其细节参见TMS320C54x汇编语言工具用户指南。
助记符到代数汇编语言转换公用程序(mnimonic_to_algebricassemblytranslatorutility)把含有助记符指令的汇编语言源文件转换成含有代数指令的汇编语言源文件,其细节参见TMS320C54x汇编语言工具用户指南。
你可以利用建库程序(library_buildutility)建立满足你自己要求的“运行支持库”,其细节参见TMS320C54x最优化C编译器用户指南。
运行支持库(run_time_supportlibraries)它包括C编译器所支持的ANSI标准运行支持函数、编译器公用程序函数、浮点运算函数和C编译器支持的I/O函数,其细节参见TMS320C54x最优化C编译器用户指南。
十六进制转换公用程序(hexconversionutility)它把COFF目标文件转换成TI-Tagged、ASCII-hex、Intel、Motorola-S、或Tektronix等目标格式,可以把转换好的文件下载到EPROM编程器中,其细节参见TMS320C54x汇编语言工具用户指南。
交叉引用列表器(cross_referencelister)它用目标文件产生参照列表文件,可显示符号及其定义,以及符号所在的源文件,其细节参见TMS320C54x汇编语言工具用户指南。
绝对列表器(absolutelister)它输入目标文件,输出.abs文件,通过汇编.abs文件可产生含有绝对地址的列表文件。如果没有绝对列表器,这些操作将需要冗长乏味的手工操作才能完成。
1.3CCS集成开发环境
CCS集成开发环境(IDE)允许编辑、编译和调试DSP目标程序。
1.3.1编辑源程序
CCS允许编辑C源程序和汇编语言源程序,你还可以在C语句后面显示汇编指令的方式来查看C源程序。
集成编辑环境支持下述功能:
用彩色加亮关键字、注释和字符串。
以圆括弧或大括弧标记C程序块,查找匹配块或下一个圆括弧或大括弧。
在一个或多个文件中查找和替代字符串,能够实现快速搜索。
取消和重复多个动作。
获得“上下文相关”的帮助。
用户定制的键盘命令分配。
1.3.2创建应用程序
应用程序通过工程文件来创建。工程文件中包括C源程序、汇编源程序、目标文件、库文件、连接命令文件和包含文件。编译、汇编和连接文件时,可以分别指定它们的选项。在CCS中,可以选择完全编译或增量编译,可以编译单个文件,也可以扫描出工程文件的全部包含文件从属树,也可以利用传统的makefiles文件编译。
1.3.3调试应用程序
CCS提供下列调试功能:
设置可选择步数的断点
在断点处自动更新窗口
查看变量
观察和编辑存储器和寄存器
观察调用堆栈
对流向目标系统或从目标系统流出的数据采用探针工具观察,并收集存储器映象
绘制选定对象的信号曲线
估算执行统计数据
观察反汇编指令和C指令
CCS提供GEL语言,它允许开发者向CCS菜单中添加功能。
1.4DSP/BIOS插件
在软件开发周期的分析阶段,调试依赖于时间的例程时,传统调试方法效率低下。
DSP/BIOS插件支持实时分析,它们可用于探测、跟踪和监视具有实时性要求的应用例程,下图显示了一个执行了多个线程的应用例程时序。
图1-3应用例程中各线程时序
DSP/BIOSAPI具有下列实时分析功能:
程序跟踪(Programtracing)显示写入目标系统日志(targetlog)的事件,反映程序执行过程中的动态控制流。
性能监视(Performancemonitoring)跟踪反映目标系统资源利用情况的统计表,诸如处理器负荷和线程时序。
文件流(Filestreaming)把常驻目标系统的I/O对象捆绑成主机文档。
DSP/BIOS也提供基于优先权的调度函数,它支持函数和多优先权线程的周期性执行。
1.4.1DSP/BIOS配置
在CCS环境中,可以利用DSP/BIOSAPI定义的对象创建配置文件,这类文件简化了存储器映象和硬件ISR矢量映象,所以,即使不使用DSP/BIOSAPI时,也可以使用配置文件。
配置文件有两个任务:
设置全局运行参数。
可视化创建和设置运行对象属性,这些运行对象由目标系统应用程序的DSP/BIOSAPI函数调用,它们包括软中断,I/O管道和事件日志。
在CCS中打开一个配置文件时,其显示窗口如下:
DSP/BIOS对象是静态配置的,并限制在可执行程序空间范围内,而运行时创建对象的API调用需要目标系统额外的开销(尤其是代码空间)。静态配置策略通过去除运行代码能够使目标程序存储空间最小化,能够优化内部数据结构,在程序执行之前能够通过确认对象所有权来及早地检测出错误。
保存配置文件时将产生若干个与应用程序联系在一起的文件,这些文件的细节参见1.7.2。
1.4.2DSP/BIOSAPI模块
传统调试(debuging)相对于正在执行的程序而言是外部的,而DSP/BIOSAPI要求将目标系统程序和特定的DSP/BIOSAPI模块连接在一起。通过在配置文件中定义DSP/BIOS对象,一个应用程序可以使用一个或多个DSP/BIOS模块。在源代码中,这些对象声明为外部的,并调用DSP/BIOSAPI功能。
每个DSP/BIOS模块都有一个单独的C头文件或汇编宏文件,它们可以包含在应用程序源文件中,这样能够使应用程序代码最小化。
为了尽量少地占用目标系统资源,必须优化(C和汇编源程序)DSP/BIOSAPI调用。
DSP/BIOSAPI划分为下列模块,模块内的任何API调用均以下述代码开头。
CLK。片内定时器模块控制片内定时器并提供高精度的32位实时逻辑时钟,它能够控制中断的速度,使之快则可达单指令周期时间,慢则需若干毫秒或更长时间。
HST。主机输入/输出模块管理主机通道对象,它允许应用程序在目标系统和主机之间交流数据。主机通道通过静态配置为输入或输出。
HWI。硬件中断模块提供对硬件中断服务例程的支持,可在配置文件中指定当硬件中断发生时需要运行的函数。
IDL。休眠功能模块管理休眠函数,休眠函数在目标系统程序没有更高优先权的函数运行时启动。
LOG。日志模块管理LOG对象,LOG对象在目标系统程序执行时实时捕捉事件。开发者可以使用系统日志或定义自己的日志,并在CCS中利用它实时浏览讯息。
MEM。存储器模块允许指定存放目标程序的代码和数据所需的存储器段。
PIP。数据通道模块管理数据通道,它被用来缓存输入和输出数据流。这些数据通道提供一致的软件数据结构,可以使用它们驱动DSP和其它实时外围设备之间的I/O通道。
PRD。周期函数模块管理周期对象,它触发应用程序的周期性执行。周期对象的执行速率可由时钟模块控制或PRD_tick的规则调用来管理,而这些函数的周期性执行通常是为了响应发送或接收数据流的外围设备的硬件中断。
RTDX。实时数据交换允许数据在主机和目标系统之间实时交换,在主机上使用自动OLE的客户都可对数据进行实时显示和分析,详细资料参见1.5。
STS。统计模块管理统计累积器,在程序运行时,它存储关键统计数据并能通过CCS浏览这些统计数据。
SWI。软件中断模块管理软件中断。软件中断与硬件中断服务例程(ISRs)相似。当目标程序通过API调用发送SWI对象时,SWI模块安排相应函数的执行。软件中断可以有高达15级的优先级,但这些优先级都低于硬件中断的优先级。
TRC。跟踪模块管理一套跟踪控制比特,它们通过事件日志和统计累积器控制程序信息的实时捕捉。如果不存在TRC对象,则在配置文件中就无跟踪模块。
有关各模块的详细资料,可参见CCS中的在线帮助,或TMS320C54
DSP/BIOS用户指南。
1.5硬件仿真和实时数据交换
TIDSPs提供在片仿真支持,它使得CCS能够控制程序的执行,实时监视程序运行。增强型JTAG连接提供了对在片仿真的支持,它是一种可与任意DSP系统相连的低侵扰式的连接。仿真接口提供主机一侧的JTAG连接,如TIXSD510。为方便起见,评估板提供在板JTAG仿真接口。
在片仿真硬件提供多种功能:
DSP的启动、停止或复位功能
向DSP下载代码或数据
检查DSP的寄存器或存储器
硬件指令或依赖于数据的断点
包括周期的精确计算在内的多种记数能力
主机和DSP之间的实时数据交换(RTDX)
图1-4RTDX系统组成
CCS提供在片能力的嵌入式支持;另外,RTDX通过主机和DSPAPIs提供主机和DSP之间的双向实时数据交换,它能够使开发者实时连续地观察到DSP应用的实际工作方式。在目标系统应用程序运行时,RTDX也允许开发者在主机和DSP设备之间传送数据,而且这些数据可以在使用自动OLE的客户机上实时显示和分析,从而缩短研发时间。
RTDX由目标系统和主机两部分组成。小的RTDX库函数在目标系统DSP上运行。开发者通过调用RTDX软件库的API函数将数据输入或输出目标系统的DSP,库函数通过在片仿真硬件和增强型JTAG接口将数据输入或输出主机平台,数据在DSP应用程序运行时实时传送给主机。
在主机平台上,RTDX库函数与CCS一道协同工作。显示和分析工具可以通过COMAPI与RTDX通信,从而获取目标系统数据,或将数据发送给DSP应用例程。开发者可以使用标准的显示软件包,诸如NationalInstruments’LabVIEW,Quinn-Curtis’Real-TimeGraphicsTools,或MicrosoftExcel。同时,开发者也可研制他们自己的VisualBasic或VisualC++应用程序。
图1-5RTDX实例
RTDX能够记录实时数据,并可将其回放用于非实时分析。下述样本由NationalInstruments’LabVIEW软件产生。在目标系统上,一个原始信号通过FIR滤波器,然后与原始信号一起通过RTDX发送给主机。在主机上,LabVIEW显示屏通过RTDXCOMAPI获取数据,并将它们显示在显示屏的左边。利用信号的功率谱可以检验目标系统中FIR滤波器是否正常工作。处理后的信号通过LabVIEW,将其功率谱显示在右上部分;目标系统的原始信号通过LabVIEW的FIR滤波器,再将其功率谱显示在右下部分。比较这两个功率谱便可确认目标系统的滤波器是否正常工作。
RTDX适合于各种控制、伺服和音频应用。例如,无线电通信产品可以通过RTDX捕捉语音合成算法的输出以检验语音应用程序的执行情况;嵌入式系统也可从RTDX获益;硬磁盘驱动设计者可以利用RTDX测试他们的应用软件,不会因不正确的信号加到伺服马达上而与驱动发生冲突;引擎控制器设计者可以利用RTDX在控制程序运行的同时分析随环境条件而变化的系数。对于这些应用,用户都可以使用可视化工具,而且可以根据需要选择信息显示方式。未来的TIDSPs将增加RTDX的带宽,为更多的应用提供更强的系统可视性。关于RTDX的详细资料,请参见CCS中RTDX在线帮助。
1.6第三方插件
第三方软件提供者可创建AxtiveX插件扩展CCS功能,目前已有若干第三方插件用于多种用途。
1.7CCS文件和变量
本节简述CCS文件夹、CCS的文件类型及CCS环境变量。
1.7.1安装文件夹
安装进程将在安装CCS的文件夹(典型情况为:
c:
\ti)中建立子文件夹。此外,子文件夹又建立在Windows目录下(c:
\windowsorc:
\winnt)。
C:
\ti包含以下目录:
bin.各种应用程序
c5400\bios。DSP/BIOSAPI的程序编译时使用的文件
c5400\cgtools.Texasinstruments源代码生成工具
c5400\examples.源程序实例
c5400\rtdx.RTDX文件
c5400\tutorial.本手册中使用的实例文件
cc\bin.关于CCS环境的文件
cc\gel.与CCS一起使用的GEL文件
docs.PDS格式的文件和指南
myprojects.用户文件夹
1.7.2文件扩展名
以下目录结构被添加到Windows目录:
ti\drivers.各种DSP板驱动文件
ti\plugins.和CCS一起使用的插件程序
ti\uninstall.支持卸载CCS软件的文件
当使用CCS时,你将经常遇见下述扩展名文件:
project.mak.CCS使用的工程文件
program.c.C程序源文件
program.asm.汇编程序源文件
filename.h.C程序的头文件,包含DSP/BIOSAPI模块的头文件
filename.lib.库文件
project.cmd.连接命令文件
program.obj.由源文件编译或汇编而得的目标文件
program.out.(经完整的编译、汇编以及连接的)可执行文件
project.wks.存储环境设置信息的工作区文件,
program.cdb.配置数据库文件。采用DSP/BIOSAPI的应用程序需要这类文件,对于其它应用程序则是可选的。
保存配置文件时将产生下列文件:
◆programcfg.cmd.连接器命令文件
◆programcfg.h54.头文件
◆programcfg.s54.汇编源文件
1.7.3环境变量
安装程序在autoexec.bat文件中定义以下变量(对Windows95和98)或环境变量(对于WindowsNT):
表1-1环境变量
变量
描述
C54X_A_DIR
由汇编程序使用的搜索表和用于DSP/BIOS、RTDX以及代码生成工具的包含文件。可参见TMS320C54X汇编语言工具用户指南。
C54X_C_DIR
由编译程序和连接程序使用的搜索表和用于DSP/BIOS、RTDX以及代码生成工具的包含文件。可参见TMS320C54X最佳C编译器用户指南。
PATH
添加到路径定义中的文件夹列表。缺省将添加文件夹c:
\ti\c5400\cgtools\bin和c:
\ti\bin。
1.7.4增加DOS环境空间
如果使用的是Windows95,你可能需要增加DOS界面的环境空间,以便支持建立一个CCS应用所需的环境变量。
把下一行添加到config.sys文件中,然后重新启动计算机:
shell=c:
\windows\/e:
4096/p
第二章开发一个简单的应用程序
本章使用helloworld实例介绍在CCS中创建、调试和测试应用程序的基本步骤;介绍CCS的主要特点,为在CCS中深入开发DSP软件奠定基础。
在使用本实例之前,你应该已经根据安装说明书完成了CCS安装。建议在使用CCS时利用目标板而不是仿真器。如果没有CCS而只有代码生成工具和CodeComposer或者是利用仿真器在进行开发,你只要按第二章和第四章中的步骤执行即可。
2.1创建工程文件
在本章中,将建立一个新的应用程序,它采用标准库函数来显示一条helloworld消息。
1.如果CCS安装在c:
\ti中,则可在c:
\ti\myprojects建立文件夹hello1。(若将CCS安装在其它位置,则在相应位置创建文件夹hello1。)
2.将c:
\ti\c5400\tutorial\hello1中的所有文件拷贝到上述新文件夹。
3.从WindowsStart菜单中选择Programs→CodeComposerStudio‘C5400→CCStudio。(或者在桌面上双击CodeComposerStudio图标。)
注:
CCS设置
如果第一次启动CCS时出现错误信息,首先确认是否已经安装了CCS。如果利用目标板进行开发,而不是带有CD-ROM的仿真器,则可参看与目标板一起提供的文档以设置正确的I/O端口地址。
4.选择菜单项Project→New。
5.在SaveNewProjectAs窗口中选择你所建立的工作文件夹并点击Open。键入myhello作为文件名并点击Save,CCS就创建了myhello.mak的工程文件,它存储你的工程设置,并且提供对工程所使用的各种文件的引用。
2.2向工程添加文件
1.选择Project→AddFilestoProject,选择hello.c并点击Open。
2.选择Project→AddFilestoProject,在文件类型框中选择*.asm。选择vector.asm并点击Open。该文件包含了设置跳转到该程序的C入口点的RESET中断(c_int00)所需的汇编指令。(对于更复杂的程序,可在vector.asm定义附加的中断矢量,或者,可用3.1节上所说明的DSP/BIOS来自动定义所有的中断矢量)
3.选择Project→AddFilestoProject,在文件类型框中选择*.cmd。选择hello.cmd并点击Open,hello.cmd包含程序段到存储器的映射。
4.
选择Project→AddFilestoProject,进入编译库文件夹(C:
\ti\c5400\cgtools\lib)。在文件类型框中选择*.o*,*.lib。选择rts.lib并点击Open,该库文件对目标系统DSP提供运行支持。
5.点击紧挨着Project、Myhello.mak、Library和Source旁边的符号+展开Project表,它称之为ProjectView。
注:
打开ProjectView
如果看不到ProjectView,则选择View→Project。如果这时选择过Bookmarks图标,仍看不到ProjectView,则只须再点击ProjectView底部的文件图标即可。