CCSDSP开发环境经典教程Word格式.docx
《CCSDSP开发环境经典教程Word格式.docx》由会员分享,可在线阅读,更多相关《CCSDSP开发环境经典教程Word格式.docx(28页珍藏版)》请在冰豆网上搜索。
1.3。
1编辑源程序
CCS允许编辑C源程序和汇编语言源程序,你还可以在C语句后面显示汇编指令的方式来查看C源程序。
集成编辑环境支持下述功能:
用彩色加亮关键字、注释和字符串。
以圆括弧或大括弧标记C程序块,查找匹配块或下一个圆括弧或大括弧。
在一个或多个文件中查找和替代字符串,能够实现快速搜索。
取消和重复多个动作.
获得“上下文相关”的帮助。
用户定制的键盘命令分配。
3.2创建应用程序
应用程序通过工程文件来创建。
工程文件中包括C源程序、汇编源程序、目标文件、库文件、连接命令文件和包含文件。
编译、汇编和连接文件时,可以分别指定它们的选项。
在CCS中,可以选择完全编译或增量编译,可以编译单个文件,也可以扫描出工程文件的全部包含文件从属树,也可以利用传统的makefiles文件编译.
3。
3调试应用程序
CCS提供下列调试功能:
设置可选择步数的断点
在断点处自动更新窗口
查看变量
观察和编辑存储器和寄存器
观察调用堆栈
对流向目标系统或从目标系统流出的数据采用探针工具观察,并收集存储器映象
绘制选定对象的信号曲线
估算执行统计数据
观察反汇编指令和C指令
CCS提供GEL语言,它允许开发者向CCS菜单中添加功能.
1.4硬件仿真和实时数据交换
TIDSP供在片仿真支持,它使得CCS能够控制程序的执行,实时监视程序运行。
增强型JTAG连接提供了对在片仿真的支持,它是一种可与任意DSP系统相连的低侵扰式的连接。
仿真接口提供主机一侧的JTAG连接,如TIXDS510。
为方便起见,评估板提供在板JTAG仿真接口.
在片仿真硬件提供多种功能:
DSP的启动、停止或复位功能
向DSP下载代码或数据
检查DSP的寄存器或存储器
硬件指令或依赖于数据的断点
包括周期的精确计算在内的多种记数能力
主机和DSP之间的实时数据交换(RTDX)
CCS提供在片能力的嵌入式支持;
另外,RTDX通过主机和DSP API提供主机和DSP之间的双向实时数据交换,它能够使开发者实时连续地观察到DSP应用的实际工作方式。
在目标系统应用程序运行时,RTDX也允许开发者在主机和DSP设备之间传送数据,而且这些数据可以在使用自动OLE的客户机上实时显示和分析,从而缩短研发时间。
RTDX由目标系统和主机两部分组成。
小的RTDX库函数在目标系统DSP上运行.开发者通过调用RTDX软件库的API函数将数据输入或输出目标系统的DSP,库函数通过在片仿真硬件和增强型JTAG接口将数据输入或输出主机平台,数据在DSP应用程序运行时实时传送给主机。
图1—4 RTDX系统组成
在主机平台上,RTDX库函数与CCS一道协同工作。
显示和分析工具可以通过COMAPI与RTDX通信,从而获取目标系统数据,或将数据发送给DSP应用例程.开发者可以使用标准的显示软件包,诸如NationalInstruments'
LabVIEW,Quinn-Curtis’Real-TimeGraphicsTools,或MicrosoftExcel。
同时,开发者也可研制他们自己的VisualBasic或VisualC++应用程序。
图1—5 RTDX实例
RTDX能够记录实时数据,并可将其回放用于非实时分析。
下述样本由NationalInstruments’LabVIEW软件产生。
在目标系统上,一个原始信号通过FIR滤波器,然后与原始信号一起通过RTDX发送给主机。
在主机上,LabVIEW显示屏通过RTDXCOMAPI获取数据,并将它们显示在显示屏的左边。
利用信号的功率谱可以检验目标系统中FIR滤波器是否正常工作。
处理后的信号通过LabVIEW,将其功率谱显示在右上部分;
目标系统的原始信号通过LabVIEW的FIR滤波器,再将其功率谱显示在右下部分。
比较这两个功率谱便可确认目标系统的滤波器是否正常工作。
RTDX适合于各种控制、伺服和音频应用.例如,无线电通信产品可以通过RTDX捕捉语音合成算法的输出以检验语音应用程序的执行情况;
嵌入式系统也可从RTDX获益;
硬磁盘驱动设计者可以利用RTDX测试他们的应用软件,不会因不正确的信号加到伺服马达上而与驱动发生冲突;
引擎控制器设计者可以利用RTDX在控制程序运行的同时分析随环境条件而变化的系数。
对于这些应用,用户都可以使用可视化工具,而且可以根据需要选择信息显示方式.
1.5CCS文件和变量
本节简述CCS文件夹、CCS的文件类型及CCS环境变量。
1.5.1安装文件夹
安装进程将在安装CCS的文件夹(典型情况为:
c:
\ti)中建立子文件夹.此外,子文件夹又建立在Windows目录下(c:
\windowsorc:
\winnt)。
C:
\ti包含以下目录:
bin.各种应用程序
C2800\bios。
DSP/BIOSAPI的程序编译时使用的文件
C2800\cgtools.Texasinstruments源代码生成工具
C2800\examples。
源程序实例
C2800\rtdx。
RTDX文件
C2800\tutorial。
本手册中使用的实例文件
cc\bin.关于CCS环境的文件
cc\gel.与CCS一起使用的GEL文件
docs.PDS格式的文件和指南
myprojects.用户文件夹
1.5.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.由源文件编译或汇编而得的目标文件
out。
(经完整的编译、汇编以及连接的)可执行文件
wks。
存储环境设置信息的工作区文件,
cdb。
配置数据库文件.采用DSP/BIOSAPI的应用程序需要这类文件,对于其它应用程序则是可选的。
保存配置文件时将产生下列文件:
◆programcfg.cmd。
连接器命令文件
◆programcfg.h28.头文件
◆programcfg.s28。
汇编源文件
第二章开发一个简单的应用程序
本章使用helloworld实例介绍在CCS中创建、调试和测试应用程序的基本步骤;
介绍CCS的主要特点,为在CCS中深入开发DSP软件奠定基础.
在使用本实例之前,你应该已经根据安装说明书完成了CCS安装。
建议在使用CCS时利用目标板而不是仿真器。
如果没有CCS而只有代码生成工具和CodeComposer或者是利用仿真器在进行开发,你只要按第二章和第四章中的步骤执行即可。
2.1创建工程文件
在本章中,将建立一个新的应用程序,它采用标准库函数来显示一条helloworld消息。
1.如果CCS安装在c:
\ti中,则可在c:
\ti\myprojects建立文件夹adcshujucaiji。
(若将CCS安装在其它位置,则在相应位置创建文件夹hello1。
)
2.将c:
\ti\c2800\tutorial\hello1中的所有文件拷贝到上述新文件夹。
3.
从WindowsStart菜单中选择Programs→CodeComposerStudio‘C5400→CCStudio。
(或者在桌面上双击CodeComposerStudio图标.)
注:
CCS设置
如果第一次启动CCS时出现错误信息,首先确认是否已经安装了CCS.如果利用目标板进行开发,而不是带有CD-ROM的仿真器,则可参看与目标板一起提供的文档以设置正确的I/O端口地址。
4.选择菜单项Project→New。
5.在SaveNewProjectAs窗口中选择你所建立的工作文件夹并点击Open。
键入adcshujucaiji作为文件名并点击Save,CCS就创建了adcshujucaiji.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\c2800\cgtools\lib)。
在文件类型框中选择*.o*,*.lib。
选择rts。
lib并点击Open,该库文件对目标系统DSP提供运行支持。
5.点击紧挨着Project、Myhello。
mak、Library和Source旁边的符号+展开Project表,它称之为ProjectView。
注:
打开ProjectView
如果看不到ProjectView,则选择View→Project。
如果这时选择过Bookmarks图标,仍看不到ProjectView,则只须再点击ProjectView底部的文件图标即可.
6.注意包含文件还没有在ProjectView中出现。
在工程的创建过程中,CCS扫描文件间的依赖关系时将自动找出包含文件,因此不必人工地向工程中添加包含文件。
在工程建立之后,包含文件自动出现在ProjectView中。
如果需要从工程中删除文件,则只需在ProjectView中的相应文件上点击鼠标右键,并从弹出菜单中选择Removefromproject即可。
在编译工程文件时,CCS按下述路径顺序搜索文件:
包含源文件的目录
编译器和汇编器选项的IncludeSearchPath中列出的目录(从左到右)
2。
3查看源代码
1.双击ProjectView中的文件hello。
c,可在窗口的右半部看到源代码。
2.如想使窗口更大一些,以便能够即时地看到更多的源代码,你可以选择Option→Font使窗口具有更小的字型.
/*========hello。
c========*/
#include〈stdio.h〉
#include”hello.h"
#defineBUFSIZE30
structPARMSstr=
{
2934,
9432,
213,
9432,
&
str
};
/**========main========**/
voidmain()
{
#ifdefFILEIO
inti;
charscanStr[BUFSIZE];
charfileStr[BUFSIZE];
size_treadSize;
FILE*fptr;
#endif
/*writeastringtostdout*/
puts("
helloworld!
\n”);
/*clearchararrays*/
for(i=0;
i<
BUFSIZE;
i++){
scanStr[i]=0/*deliberatesyntaxerror*/
fileStr[i]=0;
}
/*readastringfromstdin*/
scanf("
%s"
scanStr);
/*openafileonthehostandwritechararray*/
fptr=fopen("
file。
txt”,”w”);
fprintf(fptr,”%s”,scanStr);
fclose(fptr);
/*openafileonthehostandreadchararray*/
fptr=fopen(”file.txt”,”r”);
fseek(fptr,0L,SEEK_SET);
readSize=fread(fileStr,sizeof(char),BUFSIZE,fptr);
printf("
Reada%dbytechararray:
%s\n"
,readSize,fileStr);
fclose(fptr);
#endif
当没有定义FILEIO时,采用标准puts()函数显示一条helloworld消息,它只是一个简单程序。
当定义了FILEIO后(见2。
5节),该程序给出一个输入提示,并将输入字符串存放到一个文件中,然后从文件中读出该字符串,并把它输出到标准输出设备上。
2.4编译和运行程序
CCS会自动将你所作的改变保存到工程设置中。
在完成上节之后,如果你退出了CCS,则通过重新启动CCS和点击Project→Open,即可返回到你刚才停止工作处。
重新设置目标系统DSP
如果第一次能够启动CCS,但接下来得到CCS不能初始化目标系统DSP的出错信息则可选择Debug→ResetDSP菜单项.若还不能解决上述问题,你可能需要运行你的目标板所提供的复位程序。
为了编译和运行程序,要按照以下步骤进行操作:
1.
点击工具栏按钮或选择Project→RebuildAll,CCS重新编译、汇编和连接工程中的所有文件,有关此过程的信息显示在窗口底部的信息框中。
2.选择File→LoadProgram,选择刚重新编译过的程序adshujucaiji.out(它应该在c:
\ti\myprojects\adshujucaiji文件夹中,除非你把CCS安装在别的地方)并点击Open。
CCS把程序加载到目标系统DSP上,并打开Dis_Assembly窗口,该窗口显示反汇编指令。
(注意,CCS还会自动打开窗口底部一个标有Stdout的区域,该区域用以显示程序送往Stdout的输出。
3.点击Dis_Assembly窗口中一条汇编指令(点击指令,而不是点击指令的地址或空白区域)。
按F1键。
CCS将搜索有关那条指令的帮助信息。
这是一种获得关于不熟悉的汇编指令的帮助信息的好方法。
点击工具栏按钮或选择Debug→Run.
注:
屏幕尺寸和设置
工具栏有些部分可能被Build窗口隐藏起来,这取决于屏幕尺寸和设置。
为了看到整个工具栏,请在Build窗口中点击右键并取消AllowDocking选择。
当运行程序时,可在Stdout窗口中看到helloworld消息。
5修改程序选项和纠正语法错误
在前一节中,由于没有定义FILEIO,预处理器命令(#ifdef和#endif)之间的程序没有运行。
在本节中,使用CCS设置一个预处理器选项,并找出和纠正语法错误。
1.选择Project→Options。
2.从BuildOption窗口的Compiler栏的Category列表中选择Symbles.在DefineSymbles框中键入FILEIO并按Tab键。
注意,现在窗口顶部的编译命令包含-d选项,当你重新编译该程序时,程序中#ifdefFILEIO语句后的源代码就包含在内了。
(其它选项可以是变化的,这取决于正在使用的DSP板。
3.点击OK保存新的选项设置。
点击(RebuildAll)工具栏按钮或选择Project→RebuildAll。
无论何时,只要工程选项改变,就必须重新编译所有文件。
5.出现一条说明程序含有编译错误的消息,点击Cancel。
在Buildtab区
域移动滚动条,就可看到一条语法出错信息。
6.双击描述语法错误位置的红色文字.注意到hello。
c源文件是打开的,光标会落在该行上:
fileStr[i]=0
7.修改语法错误(缺少分号)。
注意,紧挨着编辑窗口题目栏的文件名旁出现一个星号(*),表明源代码已被修改过。
当文件被保存时,星号随之消失.
8.选择File→Save或按Ctrl+S可将所作的改变存入hello。
c。
9.
点击(IncrementalBuild)工具栏按钮或选择Project→Build,CCS重新编译已被更新的文件。
2.6使用断点和观察窗口
当开发和测试程序时,常常需要在程序执行过程中检查变量的值。
在本节中,可用断点和观察窗口来观察这些值。
程序执行到断点后,还可以使用单步执行命令。
1.选择File→ReloadProgram。
2.双击ProjectView中的文件hello。
c.可以加大窗口,以便能看到更多的源代码。
3.把光标放到以下行上:
fprintf(fptr,“%S”,scacStr);
点击工具栏按钮或按F9,该行显示为高亮紫红色。
(如果愿意的话,可通过Option→Color改变颜色。
5.选择View→WatchWindow。
CCS窗口的右下角会出现一个独立区域,在程序运行时,该区域将显示被观察变量的值.
6.
在WatchWindow区域中点击鼠标右键,从弹出的表中选择InsertNewExpression。
7.键入表达式*scanStr并点击OK。
8.注意局部变量*scanStr被列在Watchwindow中,但由于程序当前并未执行到该变量的main()函数,因此没有定义。
9.选择Debug→Run或按F5。
10.
在相应提示下,键入goodbye并点击OK。
注意,Stdout框以蓝色显示输入的文字。
还应注意,WatchWindow中显示出*scanStr的值。
在键入一个输入字符串之后,程序运行并在断点处停止.程序中将要执行的下一行以黄色加亮。
11.
点击(StepOver)工具栏按钮或按F10以便执行到所调用的函数fprintf()之后.
12.
用CCS提供的step命令试验:
■StepInto(F2)
■
Stepover(F10)
StepOut(ShiftF7)
RuntoCursor(CtrlF10)
13.
点击工具栏按钮或按F5运行程序到结束。
3基于DSP的数据采集设计实例
1安装驱动程序
(1)安装仿真器驱动程序
连接接仿真器、DSP开发板,将仿真器经USB接口脸上电脑之后系统提示“使用找到新硬件向导”,选择驱动文件“XDS510USBDriver"
,完成之后系统提示新硬件可用.如下图所示。
(2)安装仿真器的CCS驱动
找到驱动文件“XDS510CCSDriver”,运行,安装到CCS3.3软件所在的文件夹里面,具体如下图所示。
3.2启动CCS前的设置
(1)。
打开“SetupCCStudioV3。
3”,在“AvailableFactoryBoards”下选择“F2812XDS510Emulator”
(2).在“systemconfiguration"
下的