DSP-CCS集成开发环境的使用实验

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
write_buffer(inp_buffer, out_buffer, num);
output_signals(output);
i++;
}
}
//---------------------------------子程序---------------------------------//
//读取输入信号
四、仿真及结果分析
五、硬件验证

六、小结
这是第一次接触到CCS,虽然开始毫无头绪,但在慢慢的接触过程中了解到了很多。这次课程使我了解了CCS的基本使用,如:如何设置断点,反汇编窗口的使用,存储器的使用,观察窗口的使用,图形显示工具,设置探测点等。
《DSP原理及应用》课程实验报告
学生姓名:
郑月庭
所在班级:
4、设置探测点,用时频图表示出输入信号或输出信号的波形。
三、实验程序(原理图)
volume.obj
-o test.out
-m test.map
-m t.map
MEMORY
{
DARAM:o=0x100,l=0x7f00
VECT : o=0x8000,l=0x100
DARAM2: o=0x8100,l=0x7f00
廖亦凡 老师
记分及评价:
项目满分
5分
得 分
一、实验名称
FIR滤波器实验
二、任务及要求
【基本部分】3分
把教材7-10 FIR低通滤波器的程序补充完整,进行仿真实验。
【发挥部分】2分
设计FIR低通滤波器,记录参数,见教材251习题7.8。
三、实验程序(原理图)
/*
fir_test.c - FIR filter
int read_signals(int *input)
{
//在此读取采集数据信号放到输入缓冲区input[]
return(TRUE);
}
//将数据进行处理后搬移到输出缓冲区
int write_buffer(int *input,int *output,int count)
{
int i;
for ( i=0;i<count;i++ )
output[i]=input[i]*volume; //将输入数据放大volume倍放到输出缓冲区
return(TRUE);
}
//输出处理后的信号
int output_signals(int *output)
{
//在此将输出缓冲区out_buffer中的数据发送到输出设备(比如DA)
return(TRUE);
.cinit: {} > DARAM
.pinit: {} > DARAM
.sysinit: {} > DARAM
.bss: {} > DARAM2
.far: {} > DARAM2
.const: {} > DARAM2
.switch: {} > DARAM2
.sysmem: {} > DARAM2
.cio: {} > DARAM2
extern int fir(int *,int *,unsigned int ,int );
/* Low-pass FIR filter coefficients */
int coeff[L]={
-26,-13,14,36,31,-8,-58,-71,-15,83,139,76,-90,-231,-194,50,331,383,78,-405,
《DSP原理及应用》课程实验报告
学生姓名:
所在班级:
电信1001班
指导教师:
记分及评价:
项目满分
5分
得 分
一、实验名称
实验1:CCS集成开发环境的使用
二、任务及要求
1、熟悉CCS集成开发环境的菜单和使用方法。
2、掌握DSP软件开发过程
3、建立一个关于语音处理功能的工程文件。能实现信号输入、放大、输出等功能。
.MEM$obj: {} > DARAM2
.sysheap: {} > DARAM2
.sysstack: {} > DARAM2
.stack: {} > DARAM2
}
int output_signals(int *output);
//----------------------------主程序------------------------------------//
int in[L]; /* input buffer */
int out[L]; /* Output buffer */
int index;
main()
{
unsigned int i;
float signal;
unsigned int n=0;
index=0;
for(i=0;i<L;i++)
{
in[i]=0;
*/
#include"math.h"
#define L 64 /* Number of FIR filter coefficients */
#define fs 8000 /* 8000 Hz sampling frequency */
#define T 1/fs
#define f1 800 /* 800 Hz frequency */
mov 0eeeeh,*ar1+
bcc aloop,ac0>#0
mov #1200h,ar4
mov #100,ac0
mov #1000h,ar1
bloop sub #1,ac0
mov *ar1+,*ar4+
bcc bloop,ac0>#0
end nop
b end
四、仿真及结果分析
五、硬件验证

六、小结
-654,-347,403,1024,863,-228,-1577,-1972,-453,2910,6836,9470,9470,6836,2910,-453,-1972,-1577,-228,863,
1024,403,-347,-654,-405,78,383,331,50,-194,-231,-90,76,139,83,-15,-71,-58,-8,31,36,14,-13,-26};
3、用memory窗口观察写入和复制是否正确。
三、实验程序(原理图)
;test.asm
.teห้องสมุดไป่ตู้t
.global start
start nop
bclr c54cm
bclr cr0lc
bclr ar6lc
mov #1000h,ar1
mov #100,ac0
mov #1,ac0
aloop sub #1,ac0
电信1001班
指导教师:
廖亦凡
记分及评价:
项目满分
5分
得 分
一、实验名称
实验2:存储器实验
二、任务及要求
1、建立一个存储器写入与存储器内容块复制工程文件。
2、往DSP的data存储器0x001000h开始的一100个单元写入某一数据,并将该数据块复制到data存储器0x002000h开始的一100个单元。
SARAM: o=0x10000,l=0x30000
SDRAM:o=0x40000,l=0x3e0000
}
SECTIONS
{
.text: {} > DARAM
.vectors: {} > VECT
.trcinit: {} > DARAM
.gblinit: {} > DARAM
frt: {} > DARAM
#define f2 1800 /* 1800 Hz frequency */
#define f3 3300 /* 3300 Hz frequency */
#define PI 3.1415926
#define w1 (2*PI*f1*T) /* 2*pi*f1/Fs */
#define w2 (2*PI*f2*T) /* 2*pi*f2/Fs */
out[i]=0;
}
while(1)
{
signal = a1*cos((float)w1*n);
signal += a2*cos((float)w2*n);
signal += a3*cos((float)w3*n);
n++;
in[index] = (int)((0x7fff*signal)+0.5);
#define w3 (2*PI*f3*T) /* 2*pi*f3/Fs */
#define a1 0.333 /* Magnitude for wave 1 */
#define a2 0.333 /* Magnitude for wave 2 */
#define a3 0.333 /* Magnitude for wave 3 */
out[index] = fir(in,coeff,L,index);
index--;
if(index==-1)
index=L-1;
}
}
四、仿真及结果分析
滤波前
滤波后
五、硬件验证

六、小结
在本次实验中遇到了许许多多的问题,在开始时候,都有点摸不着头脑,有很多不懂的地方,在经过老师的讲解和看了例题之后,才找到入手的方法。从这次实验使我明白,以前学过的的知识的重要性,尤其是C语言和汇编语言,有了这个基础才能学好我们的专业课。。所以在今后的学习中,要自己抓取学习重点。
在本次实验中我们遇到了许许多多的问题,在这个慢慢解决的过程中我们了解到了很多的东西,尤其是在编程的过程中遇到很多的问题,开始是写的程序有问题后来又是程序没有问题但是编译后就有错误。所以在今后的学习中,要自己抓取学习重点。
《DSP原理及应用》课程实验报告
学生姓名:
郑月庭
所在班级:
电信1001
指导教师:
main()
{
int num = BUF_SIZE;
int i;
// ======初始化======
i=0;
input=inp_buffer;
output=out_buffer;
// ======无限循环======
while ( TRUE )
{
read_signals(inp_buffer);//加软件断点和探针
相关文档
最新文档