数字信号实验报告.docx
《数字信号实验报告.docx》由会员分享,可在线阅读,更多相关《数字信号实验报告.docx(19页珍藏版)》请在冰豆网上搜索。
数字信号实验报告
北京科技大学
《信号系统与信号处理综合实验》实验报告
学号:
__________
姓名:
_____________________
专业:
____________
年月日
目录:
1实验一CCS使用实验
2实验二、SEED-DTK6446Linux开发环境搭建
3实验三、Linux平台实验
4二、音频采集回放实验
5三、视频采集回放实验
6OSD图像叠加实验
7图像边缘检测实验
课程实验目的
1.数字信号处理是一门理论与实践并重的课程,在学习理论知识的同时再配合经典DSP实验,可以加深对数字信号处理软、硬件的理解与掌握。
2.接触并了解SEED-DTK6446实验箱,学会通过Linux操作平台,利用SEED-DTK6446实验箱完成一些经典的实验历程,加深对数字信号处理的了解。
3.学习并掌握SEED-DTK6446CCS开发环境的搭建,建立好所有编译测试环境,为下面的实验做好准备工作。
实验一CCS使用实验
一、实验目的
1.熟悉CCS3.3集成开发环境,掌握工程的生成方法;
2.熟悉SEED-DTK6446实验环境;
3.学习用标准C语言编制程序;
4.掌握CCS3.3集成开发环境的调试方法;
二、实验内容
1.DSP源文件的建立;
2.DSP程序工程文件的建立;
3.学习使用CCS3.3集成开发工具的调试工具。
三、实验步骤
1.创建源文件:
选择File→New→SourceFile命令;打开配套光盘\03.Examplesofprogram\01.SEEE-DTK6446CCSExamples\examples\3.1.1math。
2.创建工程文件:
点击Project-->New,创建新工程;点击Project选择addfilestoproject,添加源程序math.c。
3.设置编译与连接选项:
点击Project选择BuildOpitions;
4.工程编译与调试:
点击Project→Buildall,对工程进行编译;点击File→loadprogram,在弹出的对话框中载入debug文件夹下的.out可执行文件;点击debug→GoMain回到C程序的入口;运行程序并观察输出结果。
四.实验要求:
了解CCS菜单命令及产生各个显示窗口的操作。
操作各种仿真命令
·进入、退出CCS;
·选择当前窗口,改变窗口的大小。
·加载程序。
·运行程序(包括单步运行)。
·检查修改CUP寄存器。
·检查修改存储器单元内容。
·用观察窗口检查变量、CPU寄存器或存储单元内容。
五、实验遇到的问题、分析及解决方法
1.端口无法正常连接,在老师的帮助下,重启一下实验设备并重新安装驱动程序后,可以正常连接。
2.实验过程中因为一步出错导致后面的无法正常进行,此时除了在开发环境里修改以外,还需要将实验设备断电擦拭之前的痕迹。
实验二、SEED-DTK6446Linux开发环境搭建
熟悉Linux开发环境搭建;
学会正确配置终端。
1.点击PC机左下角开始-->程序-->附件-->通讯-->超级终端;在“您的区号(或城市号)是什么(C)?
”下键入区号010后点击确定;再次点击确定,在新弹出的对话框中输入“chenwei”;在新的对话框中的“连接时使用”下选择你希望使用的串口设备,点击确定;而后在端口设置选项中配置波特率115200,数据位8,奇偶校验无,停止位1,数据流控制无。
2.用串口线一端连接PC机串口,另一端连接SEED-DTK6446实验箱RS232串口J3。
并且取下SEED-DVS6446板卡上的J2、J23、J24短路子,上电启动SEED-DTK6446实验箱,若超级终端上显示打印信息,说明终端配置正确。
实验分析:
因为使用实验室的电脑,所以Linux操作系统已经安装完成,SEEDDVS6446SDK套件也已经安装完成,Linux平台实验程序运行环境已经配置成功,我们只需要进行串口终端的配置,所以本次实验比较简单。
但是在实验过程中,发现其他同学遇到了一些问题,此时可以根据指导书对SEEDDVS6446SDK套件重新安装一遍,或者Linux平台实验程序运行环境重新配置,一般就可以解决所遇到的问题。
实验三、Linux平台实验
一、入门实验
实验目的
1.熟悉linux开发环境,学会基于SEED-DTK6446平台linux开发环境的配置和使用;
2.学会使用arm_v5t_le-gcc编译工具;
3.学会基于NFS方式的程序调试方法。
实验内容
1.建立工作目录:
在linux开发主机桌面点击鼠标右键,打开终端,在当前目录下建立工作目录Host#mkdirhelloworld
2.编写程序源代码:
打印输出“helloworld”
#include
intmain()
{
printf("helloworld\n");
return0;
}
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)*.o
4.调试应用程序
1.在helloworld目录下输入“Host#make”,编译应用程序;
2.复制编译生成的可执行文件到NFS根文件系统中:
Host#cphello/opt/nfs/opt/seed_exp;
3.上电启动SEED-DTK6446,超级终端显示启动信息,启动信息如下,显示“Hitanykeytostopautoboot:
”时按下回车键,中断系统自动系统;
4.输入如下指令,将系统配置为从NFS根文件系统启动:
SEED-DTK6446_v1.0#setenvbootargsmem=60Mconsole=ttyS0,115200n8root=/dev/nfsnoinitrdrwip=dhcpnfsroot=192.168.253.210:
/opt/nfsvideo=dm64xxfb:
output=pal
5.启动系统(默认硬盘启动):
SEED-DTK6446_v1.0#boot;
6.登陆系统;
7.进入可执行程序所在目录;
8.运行可执行文件;
二、音频采集回放实验
1.进一步熟悉基于SEED-DTK6446平台的linux开发环境;
2.熟悉基于linuxOSS音频驱动的应用程序编写。
二、实验原理
1.OSS(OpenSoundSystem)是linux平台上一个统一的音频接口,即只要音频处理应用程序按照OSS的API来编写,那么在移植到另外一个平台时,只需要重新编译即可。
2.在linux系统中,所有的设备都被统一成文件,通过对文件的访问方式(首先open,然后read/write,同时可以使用ioctl读取/设置参数,最后close)来访问设备。
1.初试化Mixer:
Mixer设备打开操作如下:
/*Openthemixerdevice*/
if((mixerFd=open(device,O_RDONLY))==-1)
…
音频输入源的配置操作如下:
/*Setthemixerinputsource*/
if(ioctl(mixerFd,SOUND_MIXER_WRITE_RECSRC,&recmask)==-1)
2.音频设备初始化
音频设备打开操作如下:
/*Openthesounddevice*/
if((fd=open(device,mode))==-1)
}//mode有三种选择:
O_RDONLY,O_WRONLY和O_RDWR,分别表示只读、只写和读写。
在录音时配置O_RDONLY模式,而播放音频时配置为O_WRONLY模式。
采样格式设置操作如下:
/*Setthesoundformat(onlyAFMT_S16_LEcurrentlysupported)*/
if(ioctl(fd,SNDCTL_DSP_SETFMT,&format)==-1)
通道数目设置操作如下:
/*Setthenumberofchannels*/
if(ioctl(fd,SNDCTL_DSP_CHANNELS,&numchannels)==-1)
采样率设置操作如下:
/*Setthesamplerate*/
if(ioctl(fd,SNDCTL_DSP_SPEED,&samplerate)==-1)
3.音频采集与播放
/*ReadinputbufferfromOSSinputdevice*/
if((int)read(inputFd,inputBuffer,blksize){…}memcpy(outputBuffer,inputBuffer,blksize);/*WriteoutputbufferintoOSSoutputdevice*/if(write(outputFd,outputBuffer,blksize)==-1){…}三、实验内容1.在linux开发主机上打开终端,进入实验程序目录;Host#cd/opt/dvevm_1_20/seed_exp/02.audioloopback/audio_app2.重新编译应用程序;Host#makecleanHost#make3.复制编译生成的可执行文件到NFS根文件系统中;Host#cprelease/audio_app/opt/nfs/opt/seed_exp4.将系统配置为从NFS根文件系统启动;5.启动系统后,以root权限登陆系统,进入可执行文件所在目录;6.在音频播放设备中播放音频;7.运行可执行文件。四、实验结果音频播放设备中播放音频。硬件平台线路连接五、实验遇到的问题1.因为是第一次接触该类实验,所以前面的准备的工作没有熟练的掌握,导致没有办法继续进行后续实验,这时要多请教老师和同学,及时发现问题;如果一直没有办法解决,需要耐下心来,断电后重新做。在一次次的重复中,其实并没有浪费时间,反而对设备更加的熟悉,减少因为虚心发错的概率。还有就是没有依照老师的要求:不使用中文给文件命名。我犯过中文命名文件这个错误,导致系统找不到相应文件,实验无法继续进行下去。后来在老师的检查之下才知道是中文名字的原因。2.在超级终端键入代码时,因为对代码的含义不理解,实验教程也是PDF版不好直接复制代码,所以十分耗时而且容易出错,后来在老师的指导下,输入部分代码然后按键盘的“上”键便可自动匹配,极大的提高了我们的实验效率。3.在实验过程中还遇到一些问题,因为时间有限,我们并没有深入研究,而是单纯的断电重新开始,并且最终得到了预期的实验结果。三、视频采集回放实验一、实验目的1.学习基于CodecEngine机制的编程;2.学习使用XDC编译工具;3.学习基于v4L2采集驱动与FBdev显示驱动的应用程序的编写。二、实验原理概述:TI提供的达芬奇参考软件框架分应用层、信号处理层和I/O层三部分。Davinci的应用工程师可以在系统的用户空间,即应用层,在系统功能性上添加和发挥自己的特色。信号处理层通常都运行在DSP端,负责信号处理,包括音视频编解码算法、CodecEngine、DSP的实时操作系统DSP/BIOS及和ARM通信的模块。I/O层就是我们通常所说的驱动,是针对Davinci外设模块的驱动程序。其中应用层通过CodecEngine的VISA(Video,Image,Speech,Audio)API来调用DSP端的算法,通过EPSI(EasyPeripheralSoftwareInterface)API来访问和操作Davinci的外设。这三个部分通常对应三个Davinci软件开发小组。当然还需要一个系统集成工程师把这三个部分集成起来,不过VISAAPI和EPSIAPI的存在已经大大简化了集成工作的复杂程度。DaVinci的软件开发步骤:第一步,工程师需要基于DSP利用CCS开发自己的音视频编解码算法,编译生成一个编解码算法的库文件*.lib。第二步,生成一个在DSP上运行的可执行程序*.x64P(即.out文件),也就是DSPServer。第三步,根据DSPServer的名字及其中包含的具体的音视频编解码算法创建CodecEngine的配置文件*.cfg。第四步,应用工程师收到不同的codec包、DSPServer和Engine配置文件*.cfg,把自己的应用程序通过编译、链接,最终生成ARM侧可执行文件。视频采集的操作流程如下:打开视频采集设备:#defineV4L2_DEVICE"/dev/video0"…/*Openvideocapturedevice*/fd=open(V4L2_DEVICE,O_RDWR|O_NONBLOCK,0);初试化采集设备/*Initializethevideocapturedevice*/captureFd=initCaptureDevice(&capBufs,&numCapBufs,envp->svideoInput,envp->imageWidth,envp->imageHeight,0);采集视频数据/*Getaframebufferwithcaptureddata*/if(ioctl(captureFd,VIDIOC_DQBUF,&v4l2buf)==-1){…}三、实验内容1.在linux开发主机上打开终端,进入实验程序codec算法包所在目录:Host#cd/opt/dvevm_1_20/seed_exp/03.videoloopback/codecs/2.重新编译codec算法包:Host#makecleanHost#make3.打开终端,进入实验程序ARM端所在目录:Host#cd/opt/dvevm_1_20/seed_exp/03.videoloopback/video_app4.重新编译应用程序:Host#makecleanHost#make5.复制编译生成的可执行文件到NFS根文件系统中Host#cprelease/video_app/opt/nfs/opt/seed_exp6.进入实验程序DSP端所在目录:Host#cd/opt/dvevm_1_20/seed_exp/03.videoloopback/servers/video_copy7.重新编译DSPServerHost#makecleanHost#make8.复制编译生成的.x64P文件到NFS根文件系统中:Host#cpvideo_copy.x64P/opt/nfs/opt/seed_exp9.将系统配置为从NFS根文件系统启动:10.启动系统后,登陆系统,进入可执行文件所在目录;11.加载cmemk.ko和dsplinkk.ko模块;12.执行应用程序,视频显示设备上将实时的显示采集的图像。三、实验结果通过摄像头,实验箱上的显示屏可以实时的显示摄像头所采集到的图像,如图所示。 四、实验体会通过前面的几次实验,这个实验做得十分顺利,按照教程一步步走下来,就得到了预期的结果。在实验过程中,出现的代码与音频采集的代码有不少相同之处,所以通过本次实验,不再是简单的敲代码,不知不觉中对一些代码的意思有了更明确的认识,渐渐知道整个实验的操作流程以及每一步的实验目的。当然,这只是最浅显的部分,但是通过本门课的实验学习,我从无从下手到可以顺利的做出正确的实验结果,对DSP实验有了初步的认识和了解,发现枯燥的理论知识应用到实际会有这么多神奇的效果。也从中体会到了与老师、同学都交流的重要性,提高了独立思考的能力。 OSD图像叠加实验在linux开发主机上打开终端,进入实验程序codec算法包所在目录Host#cd/opt/dvevm_1_20/seed_exp/04.videoosd/codecs/重新编译codec算法包Host#makecleanHost#make进入实验程序ARM端所在目录Host#cd/opt/dvevm_1_20/seed_exp/04.videoosd/video_osd_app重新编译应用程序Host#makecleanHost#make复制编译生成的可执行文件到NFS根文件系统中Host#cprelease/video_osd_app/opt/nfs/opt/seed_exp进入实验程序DSP端所在目录Host#cd/opt/dvevm_1_20/seed_exp/03.videoloopback/servers/video_copy重新编译DSPServer。Host#makecleanHost#make复制编译生成的.x64P文件到NFS根文件系统中Host#cpvideo_copy.x64P/opt/nfs/opt/seed_exp启动系统后,登陆系统,进入可执行文件所在目录root@xxx.xxx.xxx.xxx:~#cd/opt/seed_exp加载cmemk.ko和dsplinkk.ko模块root@xxx.xxx.xxx.xxx:/opt/seed_exp#./loadmodules.sh执行应用程序root@xxx.xxx.xxx.xxx:/opt/seed_exp#./video_osd_app视频显示设备上将实时的显示采集的图像,在图像的右上角显示叠加有SEED的log图标,下方显示采集的图像的帧率与DSP端CPU的使用率。视频采集图像如下:图像边缘检测实验在linux主机上打开终端,进入实验程序codec算法包所在目录Host#cd/opt/dvevm_1_20/seed_exp/05.videosobel/codecs/vidsobeledge重新编译codec算法包Host#makecleanHost#make进入实验程序ARM端所在目录Host#cd/opt/dvevm_1_20/seed_exp/05.videosobel/video_sobel_app重新编译应用程序。Host#makecleanHost#make复制编译生成的可执行文件到NFS根文件系统中Host#cprelease/video_sobel_app/opt/nfs/opt/seed_exp进入实验程序DSP端所在目录Host#cd/opt/dvevm_1_20/seed_exp/05.videosobel/servers/vidsobeledge重新编译DSPServerHost#makecleanHost#make复制编译生成的.x64P文件到NFS根文件系统中Host#cpvidsobeledge.x64P/opt/nfs/opt/seed_exp启动系统后,登陆系统,进入可执行文件所在目录root@xxx.xxx.xxx.xxx:~#cd/opt/seed_exp加载cmemk.ko和dsplinkk.ko模块root@xxx.xxx.xxx.xxx:/opt/seed_exp#./loadmodules.sh执行应用程序root@xxx.xxx.xxx.xxx:/opt/seed_exp#./video_sobel_app视频显示设备上将实时的显示采集的经算法处理的图像。实验中遇到的问题及解决办法在实验过程中将系统配置为从NFS根文件系统启动遇到困难,将DSP芯片与Linux主机相连时失败多次。首先检查网线跟串口的连接情况,然后修改Linux主机的IP地址,要注意Linux主机的IP地址要与DVS6446芯片的IP地址不同,但是IP的前三位要相同,最后一位不同。在实验过程中对Linux操作系统的一系列操作不了解,对某些操作的目的不了解。通过看一些讲解Linux操作系统的视频跟书籍了解操作系统的命令,通过询问指导老师了解实验操作的目的。DVS6446通过NFS根文件系统启动后,在linux操作系统中将文件通过cp命令拷贝到opt/seed_exp目录后,等于把将要运行的文件存储到DVS6446的存储器,DVS6446可直接从存储器中调用文件执行。 五.申请成绩等级:85分以上。理由:说实话,这个实验自己做的相当不顺利。往往一整节课什么实验结果都出不来。我都是实在没办法了才向老师请教,让老师来指导自己的实验。所以可能在独立解决问题和实验能力上有所欠缺。 总结和感想:在这一次的实验中,我们学习了SEED-DTK6446系列DSP芯片的开发技能。其中css,linux平台下的软件操作和实际中硬件开发平台的连线都十分重要。在学习的过程中,我们逐渐熟希了软件的使用方法。但这其中也有许多困难。比如在进行linux平台下的开发时,用命令行来编写文件。一步一步跟着实验指导手册的要求来做。我就碰到了在编辑完程序之后,不知如何退出并保存的问题。这个问题对之前没有接触过linux的同学来说不请教别人是绝对克服不了的。可是实验指导手册里并没有写清楚,这可能会给新手带来麻烦。但这也教会我们学习一门技术需要主动的寻求帮助和查找资料。另外这学期我还选修了一门《DSP原理与应用》,通过这门选修课我对DSP芯片的寄存器等内部结构有了更加深入的理解,对本实验有非常大的帮助。
memcpy(outputBuffer,inputBuffer,blksize);
/*WriteoutputbufferintoOSSoutputdevice*/
if(write(outputFd,outputBuffer,blksize)==-1)
三、实验内容
1.在linux开发主机上打开终端,进入实验程序目录;
Host#cd/opt/dvevm_1_20/seed_exp/02.audioloopback/audio_app
2.重新编译应用程序;
Host#makeclean
Host#make
3.复制编译生成的可执行文件到NFS根文件系统中;
Host#cprelease/audio_app/opt/nfs/opt/seed_exp
4.将系统配置为从NFS根文件系统启动;
5.启动系统后,以root权限登陆系统,进入可执行文件所在目录;
6.在音频播放设备中播放音频;
7.运行可执行文件。
四、实验结果
音频播放设备中播放音频。
硬件平台线路连接
五、实验遇到的问题
1.因为是第一次接触该类实验,所以前面的准备的工作没有熟练的掌握,导致没有办法继续进行后续实验,这时要多请教老师和同学,及时发现问题;如果一直没有办法解决,需要耐下心来,断电后重新做。
在一次次的重复中,其实并没有浪费时间,反而对设备更加的熟悉,减少因为虚心发错的概率。
还有就是没有依照老师的要求:
不使用中文给文件命名。
我犯过中文命名文件这个错误,导致系统找不到相应文件,实验无法继续进行下去。
后来在老师的检查之下才知道是中文名字的原因。
2.在超级终端键入代码时,因为对代码的含义不理解,实验教程也是PDF版不好直接复制代码,所以十分耗时而且容易出错,后来在老师的指导下,输入部分代码然后按键盘的“上”键便可自动匹配,极大的提高了我们的实验效率。
3.在实验过程中还遇到一些问题,因为时间有限,我们并没有深入研究,而是单纯的断电重新开始,并且最终得到了预期的实验结果。
三、视频采集回放实验
1.学习基于CodecEngine机制的编程;
2.学习使用XDC编译工具;
3.学习基于v4L2采集驱动与FBdev显示驱动的应用程序的编写。
概述:
TI提供的达芬奇参考软件框架分应用层、信号处理层和I/O层三部分。
Davinci的应用工程师可以在系统的用户空间,即应用层,在系统功能性上添加和发挥自己的特色。
信号处理层通常都运行在DSP端,负责信号处理,包括音视频编解码算法、CodecEngine、DSP的实时操作系统DSP/BIOS及和ARM通信的模块。
I/O层就是我们通常所说的驱动,是针对Davinci外设模块的驱动程序。
其中应用层通过CodecEngine的VISA(Video,Image,Speech,Audio)API来调用DSP端的算法,通过EPSI(EasyPeripheralSoftwareInterface)API来访问和操作Davinci的外设。
这三个部分通常对应三个Davinci软件开发小组。
当然还需要一个系统集成工程师把这三个部分集成起来,不过VISAAPI和EPSIAPI的存在已经大大简化了集成工作的复杂程度。
DaVinci的软件开发步骤:
第一步,工程师需要基于DSP利用CCS开发自己的音视频编解码算法,编译生成一个编解码算法的库文件*.lib。
第二步,生成一个在DSP上运行的可执行程序*.x64P(即.out文件),也就是DSPServer。
第三步,根据DSPServer的名字及其中包含的具体的音视频编解码算法创建CodecEngine的配置文件*.cfg。
第四步,应用工程师收到不同的codec包、DSPServer和Engine配置文件*.cfg,把自己的应用程序通过编译、链接,最终生成ARM侧可执行文件。
视频采集的操作流程如下:
打开视频采集设备:
#defineV4L2_DEVICE"/dev/video0"
/*Openvideocapturedevice*/
fd=open(V4L2_DEVICE,O_RDWR|O_NONBLOCK,0);
初试化采集设备
/*Initializethevideocapturedevice*/
captureFd=initCaptureDevice(&capBufs,&numCapBufs,envp->svideoInput,
envp->imageWidth,envp->imageHeight,
0);
采集视频数据
/*Getaframebufferwithcaptureddata*/
if(ioctl(captureFd,VIDIOC_DQBUF,&v4l2buf)==-1)
1.在linux开发主机上打开终端,进入实验程序codec算法包所在目录:
Host#cd/opt/dvevm_1_20/seed_exp/03.videoloopback/codecs/
2.重新编译codec算法包:
3.打开终端,进入实验程序ARM端所在目录:
Host#cd/opt/dvevm_1_20/seed_exp/03.videoloopback/video_app
4.重新编译应用程序:
5.复制编译生成的可执行文件到NFS根文件系统中
Host#cprelease/video_app/opt/nfs/opt/seed_exp
6.进入实验程序DSP端所在目录:
Host#cd/opt/dvevm_1_20/seed_exp/03.videoloopback/servers/video_copy
7.重新编译DSPServer
8.复制编译生成的.x64P文件到NFS根文件系统中:
Host#cpvideo_copy.x64P/opt/nfs/opt/seed_exp
9.将系统配置为从NFS根文件系统启动:
10.启动系统后,登陆系统,进入可执行文件所在目录;
11.加载cmemk.ko和dsplinkk.ko模块;
12.执行应用程序,视频显示设备上将实时的显示采集的图像。
三、实验结果
通过摄像头,实验箱上的显示屏可以实时的显示摄像头所采集到的
图像,如图所示。
四、实验体会
通过前面的几次实验,这个实验做得十分顺利,按照教程一步步走下来,就得到了预期的结果。
在实验过程中,出现的代码与音频采集的代码有不少相同之处,所以通过本次实验,不再是简单的敲代码,不知不觉中对一些代码的意思有了更明确的认识,渐渐知道整个实验的操作流程以及每一步的实验目的。
当然,这只是最浅显的部分,但是通过本门课的实验学习,我从无从下手到可以顺利的做出正确的实验结果,对DSP实验有了初步的认识和了解,发现枯燥的理论知识应用到实际会有这么多神奇的效果。
也从中体会到了与老师、同学都交流的重要性,提高了独立思考的能力。
OSD图像叠加实验
在linux开发主机上打开终端,进入实验程序codec算法包所在目录
Host#cd/opt/dvevm_1_20/seed_exp/04.videoosd/codecs/
重新编译codec算法包
进入实验程序ARM端所在目录
Host#cd/opt/dvevm_1_20/seed_exp/04.videoosd/video_osd_app
重新编译应用程序
复制编译生成的可执行文件到NFS根文件系统中
Host#cprelease/video_osd_app/opt/nfs/opt/seed_exp
进入实验程序DSP端所在目录
重新编译DSPServer。
复制编译生成的.x64P文件到NFS根文件系统中
启动系统后,登陆系统,进入可执行文件所在目录
root@xxx.xxx.xxx.xxx:
~#cd/opt/seed_exp
加载cmemk.ko和dsplinkk.ko模块
/opt/seed_exp#./loadmodules.sh
执行应用程序
/opt/seed_exp#./video_osd_app
视频显示设备上将实时的显示采集的图像,在图像的右上角显示叠加有SEED的log图标,下方显示采集的图像的帧率与DSP端CPU的使用率。
视频采集图像如下:
图像边缘检测实验
在linux主机上打开终端,进入实验程序codec算法包所在目录
Host#cd/opt/dvevm_1_20/seed_exp/05.videosobel/codecs/vidsobeledge
Host#cd/opt/dvevm_1_20/seed_exp/05.videosobel/video_sobel_app
重新编译应用程序。
Host#cprelease/video_sobel_app/opt/nfs/opt/seed_exp
Host#cd/opt/dvevm_1_20/seed_exp/05.videosobel/servers/vidsobeledge
重新编译DSPServer
Host#cpvidsobeledge.x64P/opt/nfs/opt/seed_exp
/opt/seed_exp#./video_sobel_app
视频显示设备上将实时的显示采集的经算法处理的图像。
实验中遇到的问题及解决办法
在实验过程中将系统配置为从NFS根文件系统启动遇到困难,将DSP芯片与Linux主机相连时失败多次。
首先检查网线跟串口的连接情况,然后修改Linux主机的IP地址,要注意Linux主机的IP地址要与DVS6446芯片的IP地址不同,但是IP的前三位要相同,最后一位不同。
在实验过程中对Linux操作系统的一系列操作不了解,对某些操作的目的不了解。
通过看一些讲解Linux操作系统的视频跟书籍了解操作系统的命令,通过询问指导老师了解实验操作的目的。
DVS6446通过NFS根文件系统启动后,在linux操作系统中将文件通过cp命令拷贝到opt/seed_exp目录后,等于把将要运行的文件存储到DVS6446的存储器,DVS6446可直接从存储器中调用文件执行。
五.申请成绩等级:
85分以上。
理由:
说实话,这个实验自己做的相当不顺利。
往往一整节课什么实验结果都出不来。
我都是实在没办法了才向老师请教,让老师来指导自己的实验。
所以可能在独立解决问题和实验能力上有所欠缺。
总结和感想:
在这一次的实验中,我们学习了SEED-DTK6446系列DSP芯片的开发技能。
其中css,linux平台下的软件操作和实际中硬件开发平台的连线都十分重要。
在学习的过程中,我们逐渐熟希了软件的使用方法。
但这其中也有许多困难。
比如在进行linux平台下的开发时,用命令行来编写文件。
一步一步跟着实验指导手册的要求来做。
我就碰到了在编辑完程序之后,不知如何退出并保存的问题。
这个问题对之前没有接触过linux的同学来说不请教别人是绝对克服不了的。
可是实验指导手册里并没有写清楚,这可能会给新手带来麻烦。
但这也教会我们学习一门技术需要主动的寻求帮助和查找资料。
另外这学期我还选修了一门《DSP原理与应用》,通过这门选修课我对DSP芯片的寄存器等内部结构有了更加深入的理解,对本实验有非常大的帮助。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1