DSP实验指导书前三个实验.docx
《DSP实验指导书前三个实验.docx》由会员分享,可在线阅读,更多相关《DSP实验指导书前三个实验.docx(28页珍藏版)》请在冰豆网上搜索。
DSP实验指导书前三个实验
DSP原理及应用
实验指导
哈力旦编
新疆大学电气工程学院
2014.10
实验一:
CCS开发环境的使用……………………………………2
实验二:
编写算术运算程序……………………………………8
实验三:
编写程序实现长字运算…………………………………13
附录 程序开发平台CCS………………………………………16
实验一CCS开发环境的使用
一.实验目的
1.熟悉CodeComposerStudio开发环境,了解相关的开发工具。
2.掌握DSP软件开发流程。
通过使用CCS软件,学会创建工程、编译、连接工程
3.掌握CCS软件的调试方法。
学习使用CCS的探针和断点调试工程,能够用图形窗口观察数据。
二.实验设备
PC兼容机一台,操作系统为Windows2000(或Windows98,WindowsXP,以下默认为Windows2000),安装CodeComposerStudio2.0软件。
三.实验原理
CCS(CodeComposerStudio)是TI公司为其TMS320系列DSP提供的一个高度集成的软件开发和调试环境,它将DSP工程项目管理、源代码的编辑、目标代码的生成、调试和分析都打包在一个环境中,使其可以基本涵盖软件开发的每一个环节。
CCS主要包括以下工具:
1.C编译器、汇编优化器和连接器(代码生成工具)
2.指令集仿真器(Simulator)
3.实时的基础软件(DSP/BIOS)
4.主机和目标机之间的实时数据交换(RTDX)
5.实时分析和数据可视化
利用CCS,用户可以方便地建立一个DSP的工程项目,并对相应的源文件进行管理或编辑修改。
所有源文件的编译、汇编和连接只需要一个按钮就可以一次完成,用户不必再通过输入冗长的命令行来完成这些操作。
经过上面的过程产生的目标代码可以在CCS的环境下通过硬件仿真工具,如XDS510等,下载到用户目标系统中进行调试和运行。
如果没有用户目标系统,还可以将目标代码装载到Simulator中运行。
Simulator利用计算机的资源模拟DSP的运行情况,可以帮助用户熟悉DSP的内部结构和指令,在有的情况下还可以对部分的程序功能进行非实时的验证。
在CCS中,用户可以利用其提供的数据可视化工具按照数据的格式来观察数据,如眼图、星座图、FFT瀑布图等,较好的分析数据。
四.实验内容与步骤
1.创建一个新项目工程
1)从菜单或者快捷方式中打开CCS,如图1.1所示。
图1.1CCS界面
2)选择Project→New。
在myprojects文件夹中建立一个以自己姓名拼音命名的新的工程文件,如“jiafa”,如下图1.2所示:
图1.2项目创建对话框
3)在Target中选择器件类型"TMS320C54x"。
4)点击“完成”。
这样CCS就新建了一个名为“jiafa.pjt”的工程文件。
2.向工程中添加文件
1)选择Project→AddFilestoProject,选择汇编源文件(*.asm)或(*.*)类型的文件。
2)选择Project→AddFilestoProject,添加链接文件(*.cmd)文件。
3)在ProjectView中展开文件夹,如下图1.3所示。
图1.3项目文件查看窗口
此时,工程中文件有:
·jiafa.asm这是主程序的源代码。
·jiafa.cmd这个CMD文件。
如果你要从你的工程中删除一个文件,在ProjectView中右击文件,在弹出的菜单中选择“RemovefromProject"。
3.查看源代码
双击jiafa.asm,源代码会出现在CCS窗口的右半窗口,如图1.4所示。
图1.4源程序jiafa.asm
4.编译和运行程序
按以下步骤编译运行程序:
1)选择Project→RebuildAll或者单击窗口菜单
,CCS将编译、连接工程中的所有文件,这个工程的编译连接消息将在底部的一个窗口显示。
显示:
Buildcomplete
0Error,0Warning,0Remarks
(注:
调试程序至显示无错误为止。
)
默认方式编译过程中,在当前项目文件存在目录下将生成一个Debug子目录,生成可执行jiafa.out文件放在该目录下。
2)选择File→LoadProgram,选择在\jiafa\debug(ti——myProject——工程名——debug)目录刚刚生成的jiafa.out文件。
CCS将把程序载入到DSP内,并且打开一个反汇编(Disassembly)窗口,如图1.5所示。
在反汇编窗口你可以看到一个绿色或黄色的箭头,它表示当前DSP的程序指针地址(PC值),注意此时PC指针将指向c_int00的位置。
3)在反汇编窗口中点击一条汇编指令,按下F1,CCS寻找该条指令的帮助文件。
这是一个熟悉的汇编指令的帮助信息的好办法。
4)选择Debug→Run或单击工具条中的
。
5)选择Debug→Halt或单击工具条中的,使程序退出运行状态。
图1.5加载过后的初始图
5.使用断点和观察窗
当你开发并测试一个程序的时候,你经常需要查看在程序执行过程中一个变量的值的变化。
本节中,你将使用断点
和观察窗口
来查看这些值,你也可以在到达断点以后使用单步调试命令
。
1)选择File→loadProgram,装载jiafa.out。
2)双击打开jiafa.asm程序,把你的光标移到(ADDy1,A)这一行:
3)单击
ToggleBreakpoint工具栏按钮,或者按下F9,此时将在这一行设置一个断点,用红色的小点表示。
4)选择View→WatchWindow或者
,一个单独的窗口将出现在CCS窗口的右下方。
在程序运行中,该区域将显示被观察的变量的值。
在默认方式下,首先选中的是WatchLocals选项,在函数执行时,局部变量被显示出来,如图1.6所示。
图1.6变量观察窗口
5)选择Debug→Run或者按下F5或者
。
6)选择Watch1选项,在Name栏单击表达式按钮,并将z1作为变量名输入。
单击观察窗口的空白处保存设置,变量值会立即显示出来,如图1.7所示。
图1.7变量观察窗口
9)单出
(StepOver)或按F10键单步调用执行指令。
10)结束本练习,使用
,清除所有断点。
五.实验思考题
1.建立一项工程文件,一般包括哪些文件,每个文件的作用是什么?
2.编写汇编程序实现;x-y=z
实验二编写算术运算程序
一.实验目的
1.学习用汇编语言编制程序。
2.了解TMS320C54x汇编语言程序结果和一些简单的汇编语句用法。
3.学习在CCS环境中调试汇编代码。
二.实验设备
PC兼容机一台,操作系统为Windows2000(或Windows98,WindowsXP,以下默认为Windows2000),安装CodeComposerStudio2.0软件。
三.实验原理
1.汇编语言程序:
利用所学过的汇编语言编写一段程序实现算数运算
2.程序设计要求:
使用C54x汇编语言编程计算z1=x1+y1、z2=x1-y1、z3=x1*y1、z4=x2*y2,并在simulator上调试运行,观察计算结果。
其中x1=20,y1=54,x2=0.5,y2=0.5837。
四.实验步骤
1.实验准备:
设置软件仿真模式。
2.建立新的工程文件:
⑴双击桌面上图标,启动CodeComposerStudio2.0。
图2.1项目创建对话框
⑵进行以下设置:
建立suanshu.pjt。
4.编辑输入源程序:
⑴汇编语言程序:
-先新建源程序窗口:
(建立过程参考实验二)
-输入源程序:
.title"suanshu.asm"
.mmregs
.defstart,_c_int00
.bssx1,1
.bssx2,1
.bssy1,1
.bssy2,1
.bssz1,1
.bssz2,1
.bssz3_h,1
.bssz3_l,1
.bssz4,1
v1.set014H;20-----x1
v2.set036H;54-----y1
v3.set04000H;0.5(fraction)----x2
v4.set00b548H;-0.5837(fraction)-----y2
_c_int00
bstart
nop
nop
start:
LD#x1,DP
ST#v1,x1
ST#v2,y1
;**********testADD************
LDx1,A;loadx1->A
ADDy1,A;A+y1->A
STLA,z1;saveA(low16bits)->z1
NOP
;**********testSUB************
LDx1,A
SUBy1,A
STLA,z2
NOP
;**********testMPY(integer)********
RSBXFRCT;准备整数乘法
LDx1,T;x1->T
MPYy1,A;x1*y1->A(resultis32bit)
STHA,z3_h;乘法结果高16位在z3_h单元中
STLA,z3_l;乘法结果低16位在z3_l单元中
NOP
ST#v3,x2
ST#v4,y2
;**********testMPY((fraction)*******
;**0.5*(-0.58374)=-0.29187(0x0daa4)**
SSBXFRCT;准备小数乘法
LDx2,16,A;loadx2intoA(high16bits)
MPYAy2;x2*y2->B,andy2->T
;LDB,1,A;计算1.125*1.5用Q14表示乘积,18.4*36.8用Q5,同时下一条中A改为B
STHB,z4;结果在z4单元中
nop
end:
Bend
注意:
在输入汇编语言源程序时,除了标号以外的程序行必须以一个空格或退格字符开始。
-保存源程序为suanshu.asm。
(2)连接命令文件:
建立空的源程序窗口。
-输入连接命令文件内容:
/*suanshu.cmd*/
suanshu.obj
-msuanshu.map
-osuanshu.out
MEMORY
{
PAGE0:
ROM:
origin=0080h,length=1000h
ROM:
origin=0060h,length=10h
PAGE1:
OTHER:
origin=0400h,length=40h
}
SECTIONS
{
.text:
{}>ROMPAGE0
.data:
{}>ROMPAGE0
.bss:
{}>OTHERPAGE1
.stack:
{}>OTHERPAGE1
}
将文件存为suanshu.cmd
(3)将上述编译的源程序加入工程suanshu.pjt。
4.编译源文件、下载可执行程序:
⑴选择菜单ProjectRebuildAll。
⑵执行FileLoadProgram,在随后打开的对话框中选择刚刚建立的D:
\ti\myprojects\suanshu\debug\suanshu.out文件。
5.打开观察窗口观察程序运行结果:
开启内存观察窗口:
选择“View”菜单中“Memory…”项,在“MemoryWindowOptions”窗口中的“Address”项中输入0x0400,单击“OK”完成设置;“Memory”窗口显示选定的数据空间的内容(z1=0x004A,z2=0xFFDE,z3_l=0x0438,z4=0xDAA4)
在Memory选项窗口将Q-Value值设置为15,则可察看运行结果的小数形式(z4=-0.29187)。
当结果数据错误时可检查源程序进行修改,修改完毕,可重新汇编,链接,再加载运行.out文件,直到结果正确。
6.退出CCS:
五.实验结果
汇编语言程序可以从指定位置开始运行,但汇编程序需要完成对运行环境的初始化工作。
实验中的程序因为没有堆栈操作,所以没有初始化堆栈指针,这在编制大型应用程序中是必须要增加的功能。
在“MemoryWindowOptions”窗口中的“Address”项中输入0x0400,单击“OK”完成设置;“Memory”窗口显示选定的数据空间的内容(z1=0x004A,z2=0xFFDE,z3_l=0x0438,z4=0xDAA4)
六.问题与思考
1.阅读实验汇编源程序,并在每条语句后写出注释;
2.简述本程序中代码指令的运行过程并写出实验报告。
实验三编写程序实现长字运算
一.实验目的
1.学习用汇编语言编制程序。
2.了解TMS320C54x汇编语言程序结果和一些简单的汇编语句用法。
3.学习在CCS环境中调试汇编代码。
二.实验设备
PC兼容机一台,操作系统为Windows2000(或Windows98,WindowsXP,以下默认为Windows2000),安装CodeComposerStudio2.0软件。
三.实验原理
1.汇编语言程序:
利用所学过的汇编语言编写一段程序实现32位整数加法运算。
2.程序设计要求:
使用C54x汇编语言编程计算Z32=X32+Y32的程序。
并在simulator上调试运行,观察计算结果。
四.实验步骤
1.实验准备:
设置软件仿真模式。
2.建立新的工程文件,建立ADD32.pjt。
3.编辑输入源程序:
⑴汇编语言程序:
-先新建源程序窗口:
(建立过程参考实验二)
-输入源程序:
.title"ADD32"
.mmregs
.defstart,_c_int00
.bssxhi,2,1,1
.bssyhi,2,1,1
.bsszhi,2,1,1
table.long13578468H
.long1020B30AH
.text
_c_int00
bstart
nop
nop
start:
LD#xhi,DP
STM#xhi,AR1
RPT#3
MVPDtable,*AR1+
DLDxhi,A
DADDyhi,A
DSTA,zhi
END:
BEND
.end
-保存源程序为ADD32.asm。
⑵连接命令文件:
建立空的源程序窗口。
-输入连接命令文件内容:
/*ADD32.cmd*/
ADD32.obj
-mADD32.map
-oADD32.out
MEMORY
{
PAGE0:
ROM:
origin=0080h,length=1000h
ROM:
origin=0060h,length=10h
PAGE1:
OTHER:
origin=0400h,length=40h
}
SECTIONS
{
.text:
{}>ROMPAGE0
.data:
{}>ROMPAGE0
.bss:
{}>OTHERPAGE1
.stack:
{}>OTHERPAGE1
}
4.编译源文件、下载可执行程序:
⑴选择菜单ProjectRebuildAll。
⑵执行FileLoadProgram,在随后打开的对话框中选择刚刚建立的D:
\ti\myprojects\suanshu\debug\ADD32.out文件。
5.打开观察窗口观察程序运行结果:
(开启内存观察窗口:
选择“View”菜单中“Memory…”项,在“MemoryWindowOptions”窗口中的“Address”项中输入0x0400,单击“OK”完成设置;“Memory”窗口显示选定的数据空间的内容(zhi=0x23780x3772)
当结果数据错误时可检查源程序进行修改,修改完毕,可重新汇编,链接,再加载运行.out文件,直到结果正确。
6.退出CCS:
五.实验结果
汇编语言程序可以从指定位置开始运行,但汇编程序需要完成对运行环境的初始化工作。
实验中的程序因为没有堆栈操作,所以没有初始化堆栈指针,这在编制大型应用程序中是必须要增加的功能。
在“MemoryWindowOptions”窗口中的“Address”项中输入0x0400,单击“OK”完成设置;“Memory”窗口显示选定的数据空间的内容(zhi=0x23780x3772).
六.问题与思考
1.请编写程序完成Z64=X64+Y64的计算。
2.对本次实验做出小结
附录 程序开发平台CCS
由于DSP器件越来越复杂,DSP系统的开发技术也变得越来越接近大型的微处理器系统开发技术。
为了提高开发工作效率、缩短应用系统开发周期,TI公司开发研制出了针对TMS320C2000/5000/6000器件的开发平台――CodeComposerStudio即CCS。
CCS是基于PC机的DSP应用系统开发平台,它提供方便且功能丰富的窗口界面,使开发和调试的效率大大提高,并能与TI公司生产的目标系统实用工具链接使用,直接实现用户目标系统的开发。
CCS软件可以集成在Windows9x/2K/NT4.0环境中运行。
针对用户特定的目标系统,用创建项目(Projects)的方法来进行开发和管理,它的基本特性如下:
•可以在Windows9x/2K/NT4.0环境下运行
•分层次的项目管理
••Windows风格的可视化用户界面
•必要时可用Make重新编译、汇编和链接文件
•CCS的所有工具都完全集成在一起,以方便使用
•支持直观的拖放功能
•有超文本风格的操作帮助
下面对程序开发平台环境的使用作简略介绍
一.CCS系统安装与设置
1、CCS系统安装
CCS对PC机的最低要求为Windows95、32MRAM、100M剩余硬盘空间、奔腾90以上处理器、SVGA显示器(分辨率800×600以上)。
进行CCS系统安装时,先将CCS安装盘插入CD-ROM驱动器中,运行光盘根目录下的setup.exe,按照安装向导的提示将CCS安装到硬盘中。
安装完成后,安装程序将自动在计算机桌面上创建如图6-1所示的“CCS2(’C5000)”,“SetupCCS2(‘C5000)”等快捷图标。
图6-1
2、为CCS安装设备驱动程序
在安装CCS之后、运行CCS软件之前,首先需要运行CCS设置程序,根据用户所拥有的软、硬件资源对CCS进行适当的配置。
启动SetupCCS2(’C5000)应用程序,单击Close按钮关闭ImportConfiguration对话框,将显示CodeComposerStudioSetup窗口,如图6-2所示。
图6-2CodeComposerstudioSetup窗口
二.CCS菜单和工具栏
打开CSS后出现图6-3对话框,在Open菜单中选择C54xSimulator,弹出CCS主窗口图6-4。
图6-4CCS运行主窗口
CCS菜单
1.File菜单
2.Edit菜单
3.View菜单
4.Project菜单
5.Debug菜单
6.Profiler菜单
7.Option菜单
8.Tools菜单
CCS工具栏
1.StandardToolbar
Standard工具栏包括以下常用工具如图6-7所示
图6-7Standard工具栏
2.GELToolbar
GEL工具栏提供了执行GEL函数的一种快捷方法,如图6-8所示。
在工具栏的左侧文本输入框中键入GEL函数名,再单击右侧的执行按钮即可执行相应的函数。
如果不使用GEL工具栏,也可以使用Edit菜单下的EditCommandLine命令执行GEL函数。
图6-8GEL工具栏
3.ProjectToolbar
Project工具栏提供了与工程和断点设置有关的命令,Project工具栏提供了以下命令如图6-9所示
图6-9Project工具栏
4.DebugToolbar
Debug工具栏提供以下常用的调试命令如图6-10所示
图6-10Debug工具栏
5.EditToolbar
Edit工具栏提供了一些常用的编辑命令及书签命令如图6-11所示。
图6-11Edit工具栏
6.Plug-inToolbars
Plug-inToolbars包括WatchWindow和DSP/BIOS两个窗口,其中WatchWindow如图6-12所示。
图6-12WatchWindow工具栏
三.CCS中的编译器、汇编器和链接器选项设置
1编译器、汇编器选项
编译器(Compiler)包括分析器、优化器和代码产生器,它接收C/C++源代码并产生TMS320C54x汇编语言源代码。
汇编器(Assembler)的作用就是将汇编语言源程序转换成机器语言目标文件,这些目标文件都是公共目标文件格式(COFF)。
如图6-13、表6-1所示。
图6-13生成选项窗口——编译器标签
表6-1编译器、汇编器常用选项(在Compiler中)
2链接器选项
在汇编程序生成代码中,链接器的作用如下:
(1)根据链接命令文件(.cmd文件)将一个或多个COFF目文件链接起来,生成存储器映象文件(.map)和可执行的输出文件(.out文件)。
(2)将段定位于实际系统的存储器中,给段、符号指定实际地址。
(3)解决输入文件之间未定义的外部符号引用(如图6-14、表6-2所示)。
图6-14生成选项窗口——链接器标签
表6-2链接器常用选项(在Linker中)