CCS实验报告.docx

上传人:b****7 文档编号:23463215 上传时间:2023-05-17 格式:DOCX 页数:16 大小:907.78KB
下载 相关 举报
CCS实验报告.docx_第1页
第1页 / 共16页
CCS实验报告.docx_第2页
第2页 / 共16页
CCS实验报告.docx_第3页
第3页 / 共16页
CCS实验报告.docx_第4页
第4页 / 共16页
CCS实验报告.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

CCS实验报告.docx

《CCS实验报告.docx》由会员分享,可在线阅读,更多相关《CCS实验报告.docx(16页珍藏版)》请在冰豆网上搜索。

CCS实验报告.docx

CCS实验报告

 

DSP课程实验报告

实验一

一、实验目的

1、了解CCS集成开发环境。

2、掌握DSP简单程序(三个数累加求和)的建立和调试。

二、实验设备

计算机、ccs软件、DSP实验箱(这个可以没有)。

三、实验内容

编写程序,实现计算DAT0+DAT1+DAT2。

四、实验步骤

1、修改软件的“setup”设置,使CCS软件工作于“软件仿真器”模式,然后运行CCS软件。

2、新建一个项目:

点击Project-New,将项目命名为ex1,并将项目保存在自己定义的文件夹下,注意文件夹一定要用英文名,不要将文件夹取名为中文名,因为CCS软件不能识别以中文命名的文件夹。

3、新建一个源文件:

点击File-New-SourceFile可以打开一个文本编辑窗口,点击保存按键,保存在和项目相同的一个文件夹下面,保存类型选择*.ASM(如果源文件是C语言编写的,保存类型选择*.C,本实验中的例程是使用汇编语言编写的,所以选择*.ASM为保存类型),我们在这里将保存名字命名为。

4、在项目中添加源文件:

在新建立了一个源文件以后,要想使用CCS编译器对该源文件进行编译还需要将源文件添加到项目中去。

添加方法是在工程管理器中右键单击,在弹出的菜单中选择AddFiles,然后将刚才建立的文件添加到该项目中去。

5、编写源程序:

在工程管理器中双击,将出现文本编辑窗口,在该文本编辑窗口中输入如下内容:

.title"ex1"

.mmregs

.def_c_int00

DAT0.set60H

DAT1.set61H

DAT2.set62H

DAT3.set63H

.text

_c_int00:

Bstart

start:

LD#0000h,A

LD#004h,DP;置数据页指针

STM#1000h,SP;置堆栈指针

SSBXINTM;状态寄存器置位

RSBXCPL

ST#0036h,DAT0;把0036h放到"DP(9位地址)+偏移地址(指令中7位地址)"的16位地址中去

ST#0049h,DAT1

ST#1330h,DAT2

LDDAT0,A;三数相加操作:

DAT3=DAT0+DAT1+DAT2

ADDDAT1,A

ADDDAT2,A

STLA,DAT3

NOP

NOP

NOP

NOP

;loop:

Bstart

.end

提示:

(1)源代码的书写有一定的格式。

每一行代码分为三个区:

标号区、指令区和注释区。

标号区必须顶格写,主要是定义变量、常量、程序标识时的名称。

指令区在标号区之后,以空格或TAB格开。

如果没有标号,也必须在指令前面加上空格或TAB,不能顶格。

注释区在标号区、程序区之后,以分号开始。

注释区前面可以没有标号区或程序区。

另外还有专门的注释行,以*打头,必须顶格开始。

(2)一般区分大小写,除非加编译参数忽略大小写。

(3)标点符号有时不注意会打成中文全角版本号导致错误。

6、编写链接配置文件:

只有汇编源程序是不够的,一个完整的DSP程序至少包含两个部分:

主程序、链接配置文件(*.cmd)。

链接配置文件有很多功能,这里先介绍最常用的也是必须的两条:

1.存贮器的分配2.标明程序入口。

由于每个程序都需要一个链接配置文件,每个程序的链接配置文件根据实际情况的需要都略有不同,下面就为本实验的程序编写一个链接配置文件,其它实验的链接配置文件都可以参考该实验的例程来完成:

/**/

-o/*产生可执行下载文件,文件名可以根据不同项目而定*/

-m/*产生存储器映射文件,文件名可以根据不同项目而定*/

MEMORY{

PAGE0:

EPROM:

origin=0E00h,len=100h

PAGE1:

SARAM:

origin=0060h,len=0020h

DARAM:

origin=0080h,len=100h

}

SECTIONS{

.text:

>EPROMPAGE0

.data:

>EPROMPAGE0

.bss:

>SARAMPAGE1

STACK:

>DARAMPAGE1

}

7、对项目进行编译和链接:

把、依次添加到项目后,点击Project-CompileFile,在项目编译成功之后点击Project-Build选项对该项目进行链接,生成*.OUT文件。

8、装载可执行文件:

要让程序代码在DSP内部运行必需将生成的*.OUT文件装载到DSP内部,装载方法是点击:

File-LoadPrograme再选择生成的文件就可以将程序装载到DSP的内部存储器中。

9、运行程序并查看结果:

a)首先打开CPU寄存器:

点击

View-Registers-CPURegisters,如下图所示,弹出“CPURegisters”对话框,可看到CPU个寄存器的当前值。

b)然后点击Debug-Run让程序在DSP内部运行,最后点击Debug-Halt,再观察“CPURegisters”中累加器A的值,是否为DAT0+DAT1+DAT2.

实验二

一、实验目的

1、掌握加法、BNAZ、RPT、MVPD等DSP指令的使用。

2、掌握“宏”的概念和基本工作原理。

3、掌握“子程序”的概念和基本工作原理。

4、分析“宏”和“子程序”的异同点。

二、实验设备

计算机、ccs软件、DSP实验箱(这个可以没有)。

三、实验内容

1、在“实验一”的基础上,修改程序,设计一个三数相加求和的“宏”来计算DAT0+DAT1+DAT2的值。

2、新编写一个多数求和程序,要求通过“子程序”调用来计算y=

的值,程序中用.bss指令来开辟六个字的存储空间来存放

和y。

四、实验步骤

1、分析实验要求,分别编写“宏求和”、“子程序求和”程序、。

2、参照“实验一”编写链接配置文件、。

3、对项目进行编译和链接:

把汇编源文件和链接配置文件依次添加到项目后,点击Project-CompileFile,在项目编译成功之后点击Project-Build选项对该项目进行链接,生成*.OUT文件。

4、装载可执行文件:

要让程序代码在DSP内部运行必需将生成的*.OUT文件装载到DSP内部,装载方法是点击:

File-LoadPrograme再选择生成的*.out文件就可以将程序装载到DSP的内部存储器中。

5、运行程序并查看结果:

a)查看CPU寄存器

方法参考“实验一”;

b)查看数据空间

首先打开欲查看的数据空间:

点击View-Memory,弹出“MemoryWindowOptions”对话框,输入欲查看的地址,比如0x00000060。

然后点击Debug-Run让程序在DSP内部运行,最后点击Debug-Halt,再观察“Memory”对话框,看是否与预想结果一样:

编写程序如下:

/**/

-o/*产生可执行下载文件,文件名可以根据不同项目而定*/

-m/*产生存储器映射文件,文件名可以根据不同项目而定*/

MEMORY{

PAGE0:

EPROM:

origin=0E00h,len=100h

PAGE1:

SARAM:

origin=0060h,len=0020h

DARAM:

origin=0080h,len=100h

}

SECTIONS{

.text:

>EPROMPAGE0

.data:

>EPROMPAGE0

.bss:

>SARAMPAGE1

STACK:

>DARAMPAGE1

}

 

ex2-1运行结果:

 

 

/**/

-o/*产生可执行下载文件,文件名可以根据不同项目而定*/

-m/*产生存储器映射文件,文件名可以根据不同项目而定*/

MEMORY{

PAGE0:

EPROM:

origin=0E00h,len=100h

PAGE1:

SARAM:

origin=0060h,len=0020h

DARAM:

origin=0080h,len=100h

}

SECTIONS{

.text:

>EPROMPAGE0

.data:

>EPROMPAGE0

.bss:

>SARAMPAGE1

STACK:

>DARAMPAGE1

}

ex2-2运行结果:

实验三

一、实验目的

1、掌握MVPD、MAC、MAX等一些高效率指令的使用。

2、掌握算法优化的基本原理和实现。

二、实验设备

计算机、ccs软件、DSP实验箱(这个可以没有)。

三、实验内容

编写两个子程序分别实现“乘法累加”运算和“寻找乘积最大值”运算。

四、实验步骤

1、分析实验要求,编写两个子程序。

.title""

.mmregs

STACK.usect"STACK",10H;堆栈的设置

.bssa,5;为变量分配6个字的存储空间

.bssx,5

.bssy,1

.bssz,1

.def_c_int00

.data

table:

.word1,1,1,1,5

.word5,4,3,2,2

.text

_c_int00:

Bstart

start:

STM#0,SWWSR;插入0个等待状态

STM#STACK+10H,sp;设置堆栈指针

STM#a,AR1;AR1指向x

RPT#9;下一条被重复执行10遍

MVPDtable,*AR1+;把程序存储器中的数据传送到数据存储器

LD#0,A;A清零

CALLSUM;调用求和函数

CALLSEARCH;调用求最大值函数

end:

Bend

SUM:

STM#a,AR3

STM#x,AR4

RPTZA,#3

MAC*AR3+,*AR4+,A

STLA,@y

RET

SEARCH:

LD*AR1+,T

MPY*AR2+,B

MAXA

BANZSEARCH,*AR3-

.end

2、参照“实验一”编写链接配置文件。

3、对项目进行编译和链接:

把汇编源文件和链接配置文件依次添加到项目后,点击Project-CompileFile,在项目编译成功之后点击Project-Build选项对该项目进行链接,生成*.OUT文件。

4、装载可执行文件:

要让程序代码在DSP内部运行必需将生成的*.OUT文件装载到DSP内部,装载方法是点击:

File-LoadPrograme再选择生成的*.out文件就可以将程序装载到DSP的内部存储器中。

5、运行程序并查看结果:

运行程序,查看CPU寄存器和数据空间

6、查看执行的周期数:

a)关闭上述数据观察窗口,在文件的“end:

Bend”处设置断点:

在该语句的左边灰色区域双击鼠标即可,如下图所示:

b)点击菜单Profiler——EnableClock,使Enable上出现一个小钩(如下图所示);

然后再点击Profiler——ViewClock,则会在CCS窗口中出现一个“Clock=0”的标记。

c)对项目进行重新编译下载:

点击Project-RebuildAll,编译成功后点击File——ReloadProgram,最后点击Debug——Run运行程序,则可发现Clock图标处显然这个数字“116”即是程序运行所耗机器周期数N。

7、对编写的程序进行优化,比较指令周期的消耗大小。

实验过程:

每个实验都是经过反复调试,修改错误最终达到预期目的。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1