DSP实验报告.docx
- 文档编号:26682908
- 上传时间:2023-06-21
- 格式:DOCX
- 页数:14
- 大小:76.98KB
DSP实验报告.docx
《DSP实验报告.docx》由会员分享,可在线阅读,更多相关《DSP实验报告.docx(14页珍藏版)》请在冰豆网上搜索。
DSP实验报告
实验报告
实验课程:
DSP原理及应用
学生姓名:
XXXX
学号:
XXXXXXX
专业班级:
XXXXXXX
2014年6月
目录
实验一:
CCS入门实验…………………………………………2
实验二:
编制链接控制文件……………………………………6
实验三:
定点数除法实验………………………………………10
实验一CSS安装与开发基础
一.实验目的
1.掌握CodeComposerStudio3.5的安装和配置。
2.了解DSP开发系统和计算机与目标系统的连接方法。
3.了解CodeComposerStudio3.0软件的操作环境和基本功能
二.实验内容
1.完成CCS软件的配置和启动;
2.创建工程文件,创建源文件并添加到工程文件中,完成编译;
3.使用观察窗口查看str变量和num变量的值;
4.掌握文件输入/输出的功能,在程序行read_signals(int*input)上设置Probe断点,执行File→FileI/O,打开对话框,加载数据sine2.dat到目标机上,并进行关联设置,最后用图形窗口观察inp_buffer的图形。
三.实验原理
开发TMS320C5xxx应用系统一般需要以下几个调试工具来完成:
(1)软件集成开发环境(CodeComposerStudio2.0):
完成系统的软件开发,进行软件和硬件仿真调试。
它也是硬件调试的辅助手段。
(2)开发系统(ICETEK5100USB或ICETEK5100PP):
实现硬件仿真调试时与硬件系统的通信,控制和读取硬件系统的状态和数据。
(3)评估模块(ICETEKVC5416-A或ICETEKVC5416-C等):
提供软件运行和调试的平台和用户系统开发的参照。
五.实验条件
1.PC一台
六.实验步骤
1.设置CodeComposerStudio在软件仿真(Simulator)方式下运行:
(1)双击“SetupCCS3(C5000)”,启动“CodeComposerStudioSetup”。
(2)在“ImportConfiguration”对话框中单击“Clear”按钮,在接下来的对话框中选择“是”,清除原先的系统设置;观察窗口“CodeComposerStudioSetup”中左侧“SystemConfiguration”栏中“MySystem”项被清空。
(3)在“AvailableConfigurations”列表中,单击选择“C5416DeviceSimulator”驱动,并单击“Import”按钮;观察窗口“CodeComposerStudioSetup”中左侧“SystemConfiguration”栏中“MySystem”项中被加入“C54xSimulator”项。
(4)单击“Close”按钮,退出“ImportConfiguration”对话框。
(5)选择“CodeComposerStudioSetup”窗口“File”菜单中“Exit”项退出,并在接下来显示的对话框中选择“是”,保存设置;再选择“否”,不启动CCS。
2.启动CodeComposerStudio3.1
双击桌面上“CCS3(‘C5000)”,启动CodeComposerStudio3.0;可以看到显示出的C54XCodeComposerStudio窗口;
3.创建工程
(1)创建新的工程文件
选择菜单“Project”的“New…”项;在“ProjectCreation”对话框中,在“Project”项,输入volume;单击“Location”项末尾的浏览按钮,改变目录到F:
\,单击“OK”;单击“完成”;这时建立的是一个空的工程文件;展开主窗口左侧工程管理窗口中“Projects”下新建立的“volume.pjt”,其中各项均为空。
(2)在工程文件中添加程序文件:
分别新建volume.H、volume.C、volume.cmd,保存到F:
\volume。
选择菜单“Project”的“AddFilestoProject…”项;在“AddFilestoProject”对话框中选择文件目录为F:
\volume,改变文件类型为“CSourceFiles(*.c;*.ccc)”,选择显示出来的文件“volum.c”;重复上述各步骤,添加volume.cmd文件到volum工程中;添加C:
\ti\C5400\cgtools\lib\rts.lib。
(3)编译连接工程:
选择菜单“Project”的“RebuildAll”项;注意编译过程中CCS主窗口下部的“Build”提示窗中显示编译信息,最后将给出错误和警告的统计数。
4.编辑修改工程中的文件
(1)查看工程文件
(2)查看源文件
(3)编辑修改源文件
(4)修改工程文件的设置
5.基本调试功能
(1)执行File→LoadProgram,在随后打开的对话框中选择刚刚建立的F:
\volume\volume.out文件。
(2)在项目浏览窗口中,双击volume.c激活这个文件,移动光标到main()行上,右击鼠标选择ToggleBreakpoint或按F9设置断点。
(3)选择Debug→Run或按F5运行程序,程序会自动停在main()函数头上。
①按F10执行到write_buffer()函数上。
②再按F8,程序将转到write_buffer函数中运行。
③此时,为了返回主函数,按shift-F7完成write_buffer函数的执行。
④再次执行到write_buffer一行,按F10执行程序,对比与F8执行的不同。
注意:
在执行C语言的程序时,为了快速的运行到主函数调试自己的代码,可以使用Debug→Gomain命令,上述实验中的使用的是较为繁琐的一种方法。
6.使用观察窗口
(1)执行View→WatchWindow打开观察窗口。
(2)在volume.c中,选中任意一个变量,右击鼠标,选择“QuickWatch”,CCS将打开QuickWatch窗口并显示选中的变量。
(3)在volume.c中,选中任意一个变量,右击鼠标,选择“AddtoWatchWindow”,CCS将把变量添加到观察窗口并显示选中的变量值。
(4)在观察窗口中双击变量,则弹出修改变量窗口。
此时,可以在这个窗口中改变变量的值。
(5)把str变量加到观察窗口中,点击变量左边的“+”,观察窗口可以展开结构变量,并且显示结构变量的每个元素的值。
(6)把str变量加到观察窗口中;执行程序进入write_buffer函数,此时num函数超出了作用范围,可以利用CallStack窗口察看在不同作用范围的变量:
①执行View→CallStack打开堆栈窗口。
②双击堆栈窗口的main()选项,此时可以察看num变量的值。
7.文件输入/输出
介绍如何从PC机上加载数据到目标机上。
可用于使用已知的数据流测试算法的正确性。
在完成下面的操作以前,先介绍CodeComposerStudio的Probe(探针)断点,这种断点允许用户在指定位置提取/注入数据。
Probe断点可以设置在程序的任何位置,当程序运行到Probe断点时,与Probe断点相关的事件将会被触发,当事件结束后,程序会继续执行。
在这一节里,Probe断点触发的事件是:
从PC机的数据文件加载数据到目标系统的缓冲区中。
(1)在真实的系统中,read_signals函数用于读取A/D模块的数据并放到DSP缓冲区中。
在这里,代替A/D模块完成这个工作的是Probe断点。
当执行到函数read_signals时,Probe断点完成这个工作。
①在程序行read_signals(int*input)上单击鼠标右键,选择“Togglebreakpoint”,设置软件断点。
②单击鼠标右键,选择“ToggleProbePoint”,设置Probe断点。
(2)执行File→FileI/O,打开对话框。
(3)点击AddFile把sine2.dat文件加到对话框中。
(4)完成设置:
①在Address中,输入inp_buffer
②在Length中,输入100
③保证warparound被选中;
(5)关联事件和Probe断点:
①点击AddProbePoint按钮,打开对话框;
②点击ProbePoint列表中的内容,使之被选中;
③在Connect中选择sine2.dat文件;
④点击Replace按钮确认设置;
⑤点击“确定”关闭对话框。
(6)点击“确定”关闭对话框,此时,已经配置好了Probe断点和与之关联的事件.进一步的结果在下面实验中显示。
8.图形功能
八.实验心得
了解了DSP编程软件CSS的操作环境和基本功能和实用,为以后的实验打基础。
实验二:
编制链接控制文件
一.实验目的
1.学习用汇编语言编制程序;了解汇编语言程序与C语言程序的区别和CCS使用它们在设置上的不同。
2.学习编制命令文件控制代码的连接。
3.学会建立和改变map文件,以及利用它观察DSP内存使用情况的方法。
4.熟悉使用软件仿真方式调试程序。
二.实验原理
1.汇编语言程序
汇编语言程序除了程序中必须使用汇编语句之外,其编译选项的设置与C语言编制的程序也稍有不同。
其区别为:
①汇编语言程序在执行时直接从用户指定入口开始,常见的入口标号为“start”,而C语言程序在执行时,先要调用C标准库中的初始化程序(入口标号为“_c_init00”),完成设置之后,才转入用户的主程序main()运行;为了支持C初始化代码的连接,C程序在编译时要包含C语言库和与之相配的头文件,这需要用户将库添加到工程中。
②由于CodeComposerStudio的代码链接器默认支持C语言,在编制汇编语言程序时,需要设置链接参数,选择非自动初始化,注明汇编程序的入口地址。
2.命令文件的作用
命令文件(文件名后缀为cmd)为链接程序提供程序和数据在具体DSP硬件中的位置分配信息。
通过编制命令文件,我们可以将某些特定的数据或程序按照我们的意图放置在DSP所管理的内存中。
命令文件也为链接程序提供了DSP外扩存储器的描述。
3.内存映射(map)文件的作用
一般地,我们设计、开发的DSP程序在调试好后,要固化到系统的ROM中。
为了更精确地使用ROM空间,我们就需要知道程序的大小和位置,通过建立目标程序的map文件可以了解DSP代码的确切信息。
当需要更改程序和数据的大小和位置时,就要适当修改cmd文件和源程序,再重新生成map文件来观察结果。
4.源程序分析
汇编语言源程序UseCMD.asm框图:
三.实验内容与步骤
1.实验准备
设置软件仿真模式:
(1)启动CC驱动设置窗口:
双击桌面上“SetupCCS2(‘C5000)”图标。
(2)清除原先驱动设置:
单击“Clear”按钮。
(3)安装软件仿真驱动(Simulator):
单击“C5416DeviceSimulator”驱动名,单击“Import”按钮。
(4)完成设置:
单击“Close”,菜单“File”→“Exit”→“是”。
2.打开工程文件
(1)双击桌面上“CCS2(‘C5000)”,启动CodeComposerStudio2.0。
(2)打开菜单“Project”的“New…”项;在“Project”项中输入UseCMD,在“Location”中选择F:
\UseCMD目录,单击“完成”建立UseCMD.pjt。
(3)新建UseCMD.asm和UseCMD.cmd文件,保存在F:
\UseCMD,并在工程中添加文件UseCMD.asm和UseCMD.cmd。
3.设置工程文件
(1)打开设置窗口:
选择菜单“Project”的“BuildOptions…”项。
(2)选择链接设置:
单击“Linker”属性页。
(3)观察汇编语言程序的特殊设置:
-“AutoinitModel”项设置成“NoAutoinitialization”
-“CodeEntryPoint”项中输入“start”。
(4)退出设置窗口:
单击“确定”按钮。
4.编译源文件,下载可执行程序
(1)单击菜单“Project”、“RebuildAll”。
(2)执行File→LoadProgram,在随后打开的对话框中选择刚刚建立的UseCMD.out文件。
完成后,系统自动打开源程序文件UseCMD.asm。
5.打开观察窗口
(1)开启CPU寄存器观察窗口:
单击菜单“View”→“CPURegisters”→“CPURegisters”。
(2)在内存观察窗口中观察变量的值:
选择“View”菜单中“Memory…”项,在“MemroyWindowOptions”窗口中的“Adress”
项中输入x,单击“OK”完成设置;在随后显示的“Memory”窗口中单击鼠标右键,选择“FloatInMainWindow”项。
6.观察程序运行结果
这时代表程序运行位置的黄色光标条停在start标号下面语句上,程序将从此开始执行。
(1)单步执行程序(按F10键)2次,可观察到CPU寄存器窗口中DP和ST0的值有变化。
(2)单步运行2次,在变量窗口中观察到变量x、y被赋值。
(3)单步执行到xh标号后面的语句,观察ACC寄存器和变量z值的变化。
7.生成内存映像文件
(1)单击菜单“Project”→“Options…”,启动“BuildOptions”工程设置对话框。
(2)单击“Linker”属性页,在“MapFilename”项中输入需要生成的map文件名,比如可以输入UseCMD.map
(3)单击“确定”,完成设置。
(4)选择菜单“Project”→“RebuildAll”,重新编译工程,生成新设置的map文件。
8.对照观察map文件和cmd文件的内容
(1)选择菜单“File”→“Open…”,将找到F:
\UseCMD目录,将文件类型改为“MemoryMapFiles”,选择刚刚生成的UseCMD.map文件、打开。
(2)展开工程管理窗中的UseCMD.pjt,双击其中的UseCMD.cmd文件。
(3)程序的入口地址:
cmd文件的SECTION中指定.text段放到程序区(PAGE0)的PRAM
中,在MEMORY中指定PRAM从内存地址100h开始,长度为1f00h;再看map文件中“ENTRYPOINTSYMBOL”中说明了“start”标号的地址为十六进制0000100,两者相符。
(4)内存的占用情况:
通过观察map文件中的“MEMORYCONFIGURATION”段可以了解内存的使用情况,可以看到,程序所占用的长度为十六进制b,即11个字长,而数据区因开设了3个变量,所以占用了3个字的地址空间
9.改变内存分配
修改cmd文件中的PRAM:
o=100h,l=1f00h
改为PRAM:
o=200h,l=1e00h
重新编译工程,观察map文件中有何变化。
四.实验条件
PC一台安装CodeComposerStudio3.0软件。
五、实验心得
进一步了解了CCS软件的应用,对工程文件的应用更加熟悉,能简单的验证程序的正确性。
实验三:
定点数除法实验
一.实验目的
1.熟悉’C54x指令系统,掌握常用汇编指令,学习设计程序和算法的技巧。
2.学习用减法和移位指令实现除法运算。
二.实验原理
由内置的硬件模块支持,数字信号处理器可以高速的完成加法和乘法运算。
但TMS320系列DSP不提供除法指令,为实现除法运算,需要编写除法子程序来实现。
二进制除法是乘法的逆运算。
乘法包括一系列的移位和加法,而除法可分解为一系列的减法和移位。
本实验要求编写一个16位的定点除法子程序。
1.除法运算的过程
设累加器为8位,且除法运算为10除以3,除的过程包括与除数有关的除数逐步移位,然后进行减法运算,若所得商为正,则在商中置1,否则该位商为0。
例如:
4位除法示例:
(1)数的最低有效位对齐被除数的最高有效位
00001010
-00011000
11110010
(2)由于减法结果为负,丢弃减法结果,将被除数左移一位再减
00010100
-00011000
11111000
(3)结果仍为负,丢弃减法结果,将被除数左移一位再减
00101000
-00011000
00010000
(4)结果为正,将减法结果左移一位后把商置1,做最后一次减
00100001
-00011000
00001001
(5)结果为正,将减法结果左移一位加1得最后结果,高4位是余数,低4位商:
00010011
2.除法运算的实现
为了尽量提高除法运算的效率,’C54x系列提供了条件减指令SUBC来完成除法操作。
SUBC指令的功能如下:
若(ACC)≥0且(数据存储器地址)≥0PC+1然后(ACC)-[(数据存储器地址)×215]→ALU输出。
若ALU输出≥0则:
(ALU输出)×2+1→ACC否则:
(ACC×2)→ACC实际上,SUBC指令完成的是除法中的减除数求商的过程,即余数末位补0,减去除数,若结果为正,该位商为1,否则商为0。
SUBC指令实现条件减,可以用于如下除法:
把16位的正被除数放在累加器的低16位,累加器的高16位清0,16位的正除数放在数据存储单元中。
执行SUBC指令16次,最后一次SUBC指令完成后,累加器的低16位是除法的商,高16位是余数。
若累加器和/或数据存储单元的内容为负,则不能用SUBC指令实现除法。
为了完成多次的SUBC指令,还需要用到循环指令RPT,它可以使RPT后的一条指令重复1—256次。
SUBC指令仅能对正数除法进行运算,因此,要扩展到所有数值的除法,还需要:
在程序开头对被除数和除数做乘法,并保存到临时变量,除数和被除数分别取绝对值,在除法运算完成后,根据临时变量的值修改商的符号。
3.除法运算程序流程:
三.实验内容
1.编写程序实现16348÷512;
2.编写程序实现0.4÷(-0.8)
四.实验条件
PC一台:
安装CodeComposerStudio2.0软件。
五.实验步骤
1.用Simulator方式启动CodeComposer。
2.执行Project→New建立新的项目,输入div作为项目的名称,将程序定位在F:
\Division目录。
3.执行File→New→SourceFile建立新的程序文件,为创建新的程序文件命名为div.asm并保存;执行Project→AddFilestoProject,把div.asm加入项目中。
4.执行File→New→SourceFile建立新的文件并保存为div.cmd;执行Project→AddFilestoProject,把div.cmd加入项目中。
5.将实现除法的程序编辑到div.asm中并保存。
6.编辑div.cmd,加入如下内容
MEMORY{
PAGE0:
VECT:
o=0ff80h,l=0040hEX_ROM:
o=1000h,l=1000h
PAGE1:
B2:
o=0060h,l=0020hB1:
o=0300h,l=0100h
}
SECTIONS{
.text:
{}>EX_ROMPAGE0
.data:
{}>EX_ROMPAGE0
.bss:
{}>B2PAGE1
.MYSTACK:
{}>B1PAGE1
}
7.执行ProjectÆRebuildAll编译链接;编译错误如下:
warning:
entrypointsymbol_c_int0undefined
出错原因:
缺省时CodeComposerStudio设置项目程序为C语言编译,因此当我们编译汇编程序时,要对项目作适当配置。
8.执行Project→BuildOptions…打开编译选项;在linker属性页上单击,把AutoinitModel栏选择为NoAutoinitialization;按“确定”保存对配置的修改。
(1)执行FileÆLoadProgram装载程序,装载完程序后,CodeComposerStudio把指针指向程序区0000处。
为了执行我们的程序代码,需要修改DSP的PC值;执行ViewÆCPURegistersÆCPURegisters打开寄存器窗口;双击窗口中的PC标号,CC弹出修改对话框供修改寄存器;在对话框中输入”start“,程序将处于我们的程序入口点上。
(2)在观察窗口中添加相应的变量,查看结果。
六.实验心得
能使用CCS软件进行实验,完成有意思的实验案例,但对整个软件的使用仍然不是很熟悉。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DSP 实验 报告