北京科技大学《信号系统与信号处理综合实验》实验报告学号:__________姓名:_____________________专业:____________年月日目录:1实验一CCS使用实验2实验二、SEED-DTK6446 Linux开发环境搭建3实验三、Linux平台实验4二、音频采集回放实验5三、视频采集回放实验6OSD图像叠加实验7图像边缘检测实验课程实验目的1.数字信号处理是一门理论与实践并重的课程,在学习理论知识的同时再配合经典DSP实验,可以加深对数字信号处理软、硬件的理解与掌握。
2.接触并了解SEED-DTK6446实验箱,学会通过Linux操作平台,利用SEED-DTK6446实验箱完成一些经典的实验历程,加深对数字信号处理的了解。
3. 学习并掌握SEED-DTK6446 CCS开发环境的搭建,建立好所有编译测试环境,为下面的实验做好准备工作。
实验一 CCS使用实验一、实验目的1.熟悉CCS3.3集成开发环境,掌握工程的生成方法;2.熟悉SEED-DTK6446实验环境;3. 学习用标准C 语言编制程序;4.掌握CCS3.3集成开发环境的调试方法;二、实验内容1.DSP源文件的建立;2.DSP程序工程文件的建立;3. 学习使用CCS3.3集成开发工具的调试工具。
三、实验步骤1.创建源文件:选择File →New →Source File 命令;打开配套光盘\03. Examples of program\01.SEEE-DTK6446 CCS Examples\examples\3.1.1 math。
2.创建工程文件:点击Project-->New,创建新工程;点击Project选择add files to project,添加源程序math.c。
3. 设置编译与连接选项:点击Project选择Build Opitions;4. 工程编译与调试:点击Project →Build all,对工程进行编译;点击File →load program,在弹出的对话框中载入debug 文件夹下的.out可执行文件;点击debug →Go Main回到C程序的入口;运行程序并观察输出结果。
四.实验要求:了解CCS菜单命令及产生各个显示窗口的操作。
操作各种仿真命令·进入、退出CCS;·选择当前窗口,改变窗口的大小。
·加载程序。
·运行程序(包括单步运行)。
·检查修改CUP寄存器。
·检查修改存储器单元内容。
·用观察窗口检查变量、CPU寄存器或存储单元内容。
五、实验遇到的问题、分析及解决方法1.端口无法正常连接,在老师的帮助下,重启一下实验设备并重新安装驱动程序后,可以正常连接。
2.实验过程中因为一步出错导致后面的无法正常进行,此时除了在开发环境里修改以外,还需要将实验设备断电擦拭之前的痕迹。
实验二、SEED-DTK6446 Linux开发环境搭建一、实验目的熟悉Linux开发环境搭建;学会正确配置终端。
二、实验内容1. 点击PC机左下角开始-->程序-->附件-->通讯-->超级终端;在“您的区号(或城市号)是什么(C)?”下键入区号010后点击确定;再次点击确定,在新弹出的对话框中输入“chenwei”;在新的对话框中的“连接时使用”下选择你希望使用的串口设备,点击确定;而后在端口设置选项中配置波特率115200,数据位8,奇偶校验无,停止位1,数据流控制无。
2. 用串口线一端连接PC机串口,另一端连接SEED-DTK6446实验箱RS232串口J3。
并且取下SEED-DVS6446板卡上的J2、J23、J24短路子,上电启动SEED-DTK6446实验箱,若超级终端上显示打印信息,说明终端配置正确。
实验分析:因为使用实验室的电脑,所以Linux操作系统已经安装完成,SEED DVS6446 SDK套件也已经安装完成,Linux平台实验程序运行环境已经配置成功,我们只需要进行串口终端的配置,所以本次实验比较简单。
但是在实验过程中,发现其他同学遇到了一些问题,此时可以根据指导书对SEED DVS6446 SDK套件重新安装一遍,或者Linux平台实验程序运行环境重新配置,一般就可以解决所遇到的问题。
实验三、Linux平台实验一、入门实验实验目的1.熟悉linux开发环境,学会基于SEED-DTK6446平台linux开发环境的配置和使用;2. 学会使用arm_v5t_le-gcc编译工具;3. 学会基于NFS方式的程序调试方法。
实验内容1.建立工作目录:在linux开发主机桌面点击鼠标右键,打开终端,在当前目录下建立工作目录 Host # mkdir helloworld2. 编写程序源代码:打印输出“hello world”#include <stdio.h>#include <fcntl.h>int main(){printf("hello world \n");return 0;}3. 编写Makefile:Makefile 文件定义了一系列的规则,它指明了哪些文件需要编译,哪些文件需要先编译,哪些文件需要重新编译等等更为复杂的命令。
使用它带来的好处就是自动编译,你只需要敲一个“make”命令整个工程就可以实现自动编译。
CC=arm_v5t_le-gcc //指明编译器EXEC = hello //表示编译后生成的执行文件名称是“hello”OBJS = hello.o //目标文件列表all: $(EXEC) //编译主入口$(EXEC): $(OBJS)$(CC) -o $@ $(OBJS)clean: //清除编译结果-rm -f $(EXEC) *.o4. 调试应用程序1.在helloworld目录下输入“Host # make”,编译应用程序;2. 复制编译生成的可执行文件到NFS根文件系统中:Host # cp hello /opt/nfs/opt/seed_exp;3. 上电启动SEED-DTK6446,超级终端显示启动信息,启动信息如下,显示“Hit any key to stop autoboot:”时按下回车键,中断系统自动系统;4.输入如下指令,将系统配置为从NFS根文件系统启动:SEED-DTK6446_v1.0 #setenv bootargs mem=60M console=ttyS0,115200n8root=/dev/nfs noinitrd rw ip=dhcp nfsroot=192.168.253.210:/opt/nfs video=dm64xxfb:output=pal5. 启动系统(默认硬盘启动):SEED-DTK6446 _v1.0 # boot;6. 登陆系统;7.进入可执行程序所在目录;8.运行可执行文件;二、音频采集回放实验一、实验目的1.进一步熟悉基于SEED-DTK6446平台的linux开发环境;2. 熟悉基于linux OSS音频驱动的应用程序编写。
二、实验原理1.OSS(Open Sound System)是linux平台上一个统一的音频接口,即只要音频处理应用程序按照OSS的API来编写,那么在移植到另外一个平台时,只需要重新编译即可。
2.在linux系统中,所有的设备都被统一成文件,通过对文件的访问方式(首先open,然后read/write,同时可以使用ioctl读取/设置参数,最后close)来访问设备。
1. 初试化Mixer:Mixer设备打开操作如下:/* Open the mixer device */if ((mixerFd = open(device, O_RDONLY)) == -1){…}音频输入源的配置操作如下:/* Set the mixer input source */if (ioctl(mixerFd, SOUND_MIXER_WRITE_RECSRC, &recmask) == -1){…}2.音频设备初始化音频设备打开操作如下:/* Open the sound device */if ((fd = open(device, mode)) == -1){…} //mode有三种选择:O_RDONLY,O_WRONLY和O_RDWR,分别表示只读、只写和读写。
在录音时配置O_RDONLY模式,而播放音频时配置为O_WRONLY模式。
采样格式设置操作如下:/* Set the sound format (only AFMT_S16_LE currently supported) */if (ioctl(fd, SNDCTL_DSP_SETFMT, &format) == -1){…}通道数目设置操作如下:/* Set the number of channels */if (ioctl(fd, SNDCTL_DSP_CHANNELS, &numchannels) == -1){…}采样率设置操作如下:/* Set the sample rate */if (ioctl(fd, SNDCTL_DSP_SPEED, &samplerate) == -1){…}3. 音频采集与播放/* Read input buffer from OSS input device */if ((int) read(inputFd, inputBuffer, blksize) < blksize){…}memcpy(outputBuffer, inputBuffer, blksize);/* Write output buffer into OSS output device */if (write(outputFd, outputBuffer, blksize) == -1){…}三、实验内容1. 在linux开发主机上打开终端,进入实验程序目录;Host # cd /op t/dvevm_1_20/seed_exp/02.audioloopback/audio_app 2. 重新编译应用程序;Host # make cleanHost # make3. 复制编译生成的可执行文件到NFS根文件系统中;Host # cp release/audio_app /opt/nfs/opt/seed_exp4. 将系统配置为从NFS根文件系统启动;5. 启动系统后,以root权限登陆系统,进入可执行文件所在目录;6. 在音频播放设备中播放音频;7. 运行可执行文件。
四、实验结果音频播放设备中播放音频。