DSP实验指导书学生用Word文档格式.docx
《DSP实验指导书学生用Word文档格式.docx》由会员分享,可在线阅读,更多相关《DSP实验指导书学生用Word文档格式.docx(20页珍藏版)》请在冰点文库上搜索。
![DSP实验指导书学生用Word文档格式.docx](https://file1.bingdoc.com/fileroot1/2023-5/7/f4b8db49-53c8-4dd7-b16f-48b454860406/f4b8db49-53c8-4dd7-b16f-48b4548604061.gif)
(2)、点击菜单Project、在出现的下拉菜单中点击New弹出下图示所示的窗口,然后在“Project”中输入项目名字,则会在C:
\ti\myprojects目录下建立一个、文件夹example,并在example文件夹下建立项目文件example.pjt(也可以自己定义其它路径)。
注意:
此文件不能在中文目录下。
(3)点击“完成”按钮出现界面如下:
(4)此时即可加入各种文件项目中,也可马上建立一个源文件然后加入到项目中。
建立源文件的方法是:
点击File-New-Source,即弹出一个可供编辑的窗口,在窗口中输入内容,然后保存为相应的文件(如果是汇编代码,则保存为文件名后缀为ASM的文件,依次类推),最后即可把此建立的文件添加到项目中。
下面介绍把文件添加到项目中的方法。
2、往工程中加入文件
如果把example文件夹下的example.asm,example.cmd,vectors.asm三个文件添加到C:
\ti\myprojects\example下。
(1)、选择Project/AddFilestoProject,在文件类型选项中*.asm选择文件,选择example.asm,然后点击“打开”按钮,即把文件添加到了项目中。
(2)、再重复上一步骤,把vectors.asm添加到项目中。
(3)、选择Project/AddFilestoProject。
在文件类型选项CMD文件(*.cmd),选择example.cmd,然后点击“打开”按钮。
(4)、此时,可以在工作窗口的工程视察中example.pjt旁的+号,展开工程查看其中文件。
结果如下图所示:
(5)、注意此时,一些包含的文件不会出现在include目录下,编译后CCS会自动加入,不必手动执行。
3、浏览代码
和Windows的浏览器相似,只要打开+号展现下面的文件,然后双击文件的图标,在主窗口就会显示相应的文件原始代码。
4、编译执行程序
(1)、选择Project/ReduildAll,或工具条中的相应按钮
(2)、编译成功后,选择File/LoadProgram,选择你刚编译的可执行程序example.out,并单击打开。
(3)、选择Debug/Run,或工具条中的相应图标或运行程序。
5、跟踪/调试程序
(1)、选择Debut/Restart,重新执行程序。
(2)、不全速运行,而是选择Debug/StepInto或按F8,单步执行。
(3)、单步执行程序的同时,选择View/CPURegisters观察主要寄存器的变化。
选择View/Memon相应程序区、数据区地址,观察存贮器中的内容。
具体变量地址由*.cmd文件决定。
实验一程序的控制与转移
一、实验目的
1、掌握条件算符的使用。
2、掌握循环操作指令(BNAZ)和比较操作指令(CMPR)
二、实验设备
计算机
三、实验内容
编写程序,实现计算y=
的值。
四、实验步骤
1、点击桌面CCS2(’C5000)图标,运行CCS软件。
2、新建一个项目:
点击Project-New,将项目命名为example1,并将项目保存在自己定义的文件夹下,注意文件夹一定要用英文名,不要将文件夹取名为中文名,因为CCS软件不能识别以中文命名的文件夹。
3、新建一个源文件:
点击File-New-SourceFile可以打开一个文本编辑窗口,点击保存按键,保存在和项目相同的一个文件夹下面(example1),保存类型选择*.ASM(如果源文件是C语言编写的,保存类型选择*.C,本实验中的例程是使用汇编语言编写的,所以选择*.ASM为保存类型),我们在这里将保存名字命名为example1.asm。
4、在项目中添加源文件:
在新建立了一个源文件以后,要想使用CCS编译器对该源文件进行编译还需要将源文件添加到项目中去。
添加方法是在工程管理器中右键单击example1.pjt,在弹出的菜单中选择AddFiles,然后将刚才建立的example1.asm文件添加到该项目中去。
5、编写源程序:
在工程管理器中双击example1.asm,将出现文本编辑窗口,在该文本编辑窗口中输入如下内容。
(要求:
将以下程序每条加上注解。
)
.title"
example1.asm"
.mmregs
STACK.usect"
STACK"
10H;
.bssx,5;
.bssy,1
.defstart
.data
table:
.word10,20,3,4,5;
.text
start:
STM#0,SWWSR;
STM#STACK+10H,sp;
STM#x,AR1;
RPT#4;
MVPDtable,*AR1+;
LD#0,A;
CALLSUM;
end:
Bend
SUM:
STM#x,AR3;
STM#4,AR2;
loop:
ADD*AR3+,A;
BANZloop,*AR2-;
STLA,*(y);
RET
.end
提示:
(1)源代码的书写有一定的格式,初学者往往容易忽视。
每一行代码分为三个区:
标号区、指令区和注释区。
标号区必须顶格写,主要是定义变量、常量、程序标致时的名称。
指令区在标号区之后,以空格或TAB格开。
如果没有标号,也必须在指令前面加上空格或TAB,不能顶格。
注释区在标号区、程序区之后,以分号开始。
注释区前面可以没有标号区或程序区。
另外还有专门的注释行,以*打头,必须顶格开始。
(2)一般区分大小写,除非加编译参数忽略大小写。
(3)标点符号有时不注意会打成中文全角版本号导致错误。
6、编写链接配置文件:
只有汇编源程序是不够的,一个完整的DSP程序至少包含三个部分:
主程序(*.asm)、中断向量表(vectors.asm)、链接配置文件(*.cmd)。
这里先介绍一下链接配置文件。
链接配置文件有很多功能,这里先介绍最常用的也是必须的两条:
1.存贮器的分配2.标明程序入口。
由于每个程序都需要一个链接配置文件,每个程序的链接配置文件根据实际情况的需要都略有不同,下面就为本实验的程序编写一个链接配置文件,其它实验的链接配置文件都可以参考此例来完成:
/*example1.cmd*/
vectors.obj
example1.obj
-oexample1.out
-mexample1.map
-estart
MEMORY
{
PAGE0:
EPROM:
org=0090Hlen=0F70H
VECS:
org=0080Hlen=0010H
PAGE1:
SPRAM:
org=1000Hlen=1000H
DARAM:
org=2000Hlen=2000H
}
SECTIONS
.text:
>
EPROMPAGE0
.data:
.bss:
SPRAMPAGE1
STACK:
DARAMPAGE1
.vectors:
VECSPAGE0
7、编写中断向量表文件
/*vectors.asm*/
.title"
vectors.asm"
.refstart
.sect"
.vectors"
Bstart
.end
8、对项目进行编译和链接:
把example1.asm、vectors.asm、example1.cmd依次添加到项目后,点击Project-CompileFile,在项目编译成功之后点击
Project-Build选项对该项目进行链接,生成*.OUT文件。
9、装载可执行文件:
要让程序代码在DSP内部运行必需将生成
的*.OUT文件装载到DSP内部,装载方法
是点击:
File-LoadPrograme再选择生成的
example1.out文件就可以将程序装载到DSP
的内部存储器中。
10、运行程序并查看结果:
a)首先打开欲查看的数据空间:
点击View-Memory,弹出“MemoryWindowOptions”对话框,把欲查看的地址改为0x1000,如上页右图所示。
b)点击OK按钮,然后点击Debug-Run让程序在DSP内部运行,最后点击Debug-Halt,再观察“Memory”对话框,看是否与下图一致:
实验二加减法和乘法运算
掌握加减法和乘法运算指令。
编写程序,分别实现计算z=x+y-w、y=mx+b、y=
。
前4项实验步骤与实验一相同。
5、编写源程序:
*****************************************
**
*计算z=x+y-w*
.title"
example2.asm"
.mmregs
STACK.usect"
10H;
堆栈的设置
.bssx,1;
为变量分配4个字的存储空间
.bssy,1
.bssw,1
.bssz,1
.defstart
.data
table.word10,26,23;
x,y,w
.text
STM#0,SWWSR;
插入0个等待状态
STM#STACK+10H,SP;
设置堆栈指针
STM#x,AR1;
AR1指向x
RPT#2
MVPDtable,*AR1+;
把程序存储器中的数据移动到数据存储器
CALLSUMB
Bend
SUMB:
STLA,*(z)
RET
.end
参照实验一,需要更改的地方如下:
更改前
更改后
Example1.obj
Example2.obj
-oexample1.out
-oexample2.out
-mexample1.map
-mexample2.map
参照实验一,可不作修改。
把example2.asm、vectors.asm、example2.cmd依次添加到项目后,点击Project-CompileFile,在项目编译成功之后点击Project-Build选项对该项目进行链接,生成*.out文件。
要让程序代码在DSP内部运行必需将生成的*.OUT文件装载到DSP内部,装载方法是点击:
File-LoadPrograme再选择生成的example4.out文件就可以将程序装载到DSP的内部存储器中。
点击
View-Memory,弹出“MemoryWindowOptions”对话框,把欲查看的地址改为0x1000,如右图所示。
11、建立项目工程文件example3,使之实现计算y=mx+b;
**
*计算y=mx+b*
.title"
example3.asm"
.mmregs
STACK.usect"
10H;
.bssm,1;
.bssx,1
.bssb,1
.bssy,1
.defstart
.data
.word3,15,20;
m,x,b
.text
STM#0,SWWSR;
STM#STACK+10H,SP;
STM#m,AR1;
AR1指向m
RPT#2;
把下一条指令重复执行3遍
MVPDtable,*AR1+;
把程序存储器中的数据转移到数据存储器
CALLSU
Bend
SU:
STLA,*(y)
RET
.end
12建立项目工程文件example4,使之实现计算y=
*计算y=
*
*****************************************
example4.asm"
.bssa1,4;
为变量分配5个字的存储空间
.bssx1,4
.word3,5,15,20,1,2,3,4;
输入ai,xi
STM#a1,AR1;
AR1指向x1
RPT#7;
移动8个数据
把数据从数据存储器存入程序存储器
CALLSUM
STM#a1,ar2
STM#x1,ar3
;
利用间接寻址方式,和重复指令完成乘加运算
STLA,*(y)
说明:
1、链接配置文件与中断向量表文件与上一个实验类似
2、观察实验结果与前面实验类似。
13.编写计算y=
的程序段,数据均为小数。
其中:
a1=0.1,a2=0.2,a3=-0.3,a4=0.4x1=0.8,x2=0.6,x3=-0.4,x4=-0.2
example13.asm"
10H
.bssa,4
.bssx,4
SSBXFRCT
STM#a,AR1
MVPDtable,*AR1+
STM#x,AR2
STM#a,AR3
RPTZA,#3
STHA,*(y)
Bend
另外做书上P131的4.7习题与思考题:
第9题、第10题、第11题