您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 20101102DSP自编实验指导书1234
实验一CCS开发环境练习一、实验目的掌握加减法运算指令。掌握ccs编译环境的使用二、实验设备计算机、SEED-DTK实验箱、5416EVM板三、实验原理参见教材第3章四、实验内容编写程序,分别实现计算z=x+y-w、y=mx+b五、实验步骤1、用仿真机将计算机与SEED-DTK系列实验箱连接好,然后打开实验箱电源,再运行CCStudiov3.3软件。2、新建一个项目:点击Project-New,将项目命名为experiment2,然后点击OK,系统会自动生成一个与项目同名的文件夹。注意项目名要用英文名,不要将项目取名为中文名,因为CCS软件不能识别以中文命名的文件夹。3、新建一个源文件:点击File-New-SourceFile可以打开一个文本编辑窗口,点击保存按键,保存在和项目同名的一个文件夹下面(experiment2),保存类型选择*.ASM(如果源文件是C语言编写的,保存类型选择*.C,本实验中的例程是使用汇编语言编写的,所以选择*.ASM为保存类型),我们在这里将保存名字命名为example4.asm。4、在项目中添加源文件:在新建立了一个源文件以后,要想使用CCS编译器对该源文件进行编译还需要将源文件添加到项目中去。添加方法是在工程管理器中右键单击experiment2.pjt,在弹出的菜单中选择AddFilestoproject,然后将刚才建立的example4.asm文件添加到该项目中去。5、编写源程序:在工程管理器中双击example4.asm,将出现文本编辑窗口,在该文本编辑窗口中输入如下内容:********************************************计算z=x+y-w********************************************.titleexample4.asm.mmregsSTACK.usectSTACK,10H;堆栈的设置.bssx,1;为变量分配4个字的存储空间.bssy,1.bssw,1.bssz,1.def_c_int00.datatable.word10,26,23;x,y,w.text_c_int00:STM#0,SWWSR;插入0个等待状态STM#STACK+10H,SP;设置堆栈指针STM#x,AR1;AR1指向xRPT#2MVPDtable,*AR1+;把程序存储器中的数据移动到数据存储器CALLSUMBend:BendSUMB:LD*(x),AADD*(y),ASUB*(w),ASTLA,*(z)RET.end6、编写链接配置文件:新建一个源文件:点击File-New-SourceFile可以打开一个文本编辑窗口,点击保存按键,保存在和项目同名的一个文件夹下面(experiment2),保存类型选择*.cmd,我们在这里将保存名字命名为dec5416.cmd。输入以下文本内容:MEMORY{PAGE0:VECT:origin=0x28100,len=0x100IPROG1:origin=0x200,len=0x7c00IPROG2:origin=0x28200,len=0x7c00IPROG3:origin=0x38000,len=0x8000FLASHL:origin=0x40000,len=0x40000FLASHH:origin=0x4000000,len=0x80000PAGE1:SPRAM:origin=0x60,len=0x20DARAM:origin=0x80,len=0x3f80/*×öÏàÓ¦ÉèÖúóÒ²¿ÉÒÔÊÇFLASH¿Õ¼ä*/SARAM:origin=0x8000,len=8000}SECTIONS{.vector:{}VECTPAGE0.text:{}IPROG2PAGE0.cinit:{}IPROG2PAGE0.switch:{}IPROG2PAGE0.const:{}IPROG2PAGE0.stack:{}IPROG1PAGE0.data:{}DARAMPAGE1.bss:{}DARAMPAGE1.cio:{}IPROG1PAGE0}7、编写中断向量表文件新建一个源文件:点击File-New-SourceFile可以打开一个文本编辑窗口,点击保存按键,保存在和项目同名的一个文件夹下面(experiment2),保存类型选择*.asm,我们在这里将保存名字命名为vector.asm。输入以下文本内容:.titlevector.asm;/*中断向量表的文件名*/.ref_c_int00;/*引用外部定义的标号*/.sect.vector;/*定义初始化的段名*/B_c_int00;/*引用start*/.end8、对项目进行编译和链接:再从3.4.4Convolve文件夹下将dek-boot.gel文件拷到本项目所在的文件夹(experiment2)并添加该gel文件。把example4.asm、vector.asm、dec5416.cmd依次添加到项目后,点击Project-RebuildAll,编译成功之后并对该项目进行链接,生成*.out文件。9、装载可执行文件:要让程序代码在DSP内部运行必需将生成的*.OUT文件装载到DSP内部,装载方法是点击:File-LoadPrograme再在项目文件夹下的子文件夹debug中选择生成的example4.out文件就可以将程序装载到DSP的内部存储器中。10、运行程序并查看结果:a)首先打开欲查看的数据空间:点击View-Memory,弹出“MemoryWindowOptions”对话框,把欲查看的地址改为0x0080,如右图所示。b)点击OK按钮,然后点击Debug-Run让程序在DSP内部运行,最后点击Debug-Halt,再观察“Memory”对话框,看是否与下图一致:11、修改汇编源程序文件将以上项目源程序中SUMB子程序的寻址方式改成间接寻址方式,运行程序并查看程序运行结果。并记录下程序运行结束后CPU寄存器的结果。12、建立其它项目工程文件建立项目工程文件example5,使之实现计算y=mx+b;.titleexample4.asm.mmregsSTACK.usectSTACK,10H;堆栈的设置.bssx,1;为变量分配4个字的存储空间.bssm,1.bssb,1.bssy,1.def_c_int00.datatable.word15,3,20;x,m,b.text_c_int00:STM#0,SWWSR;插入0个等待状态STM#STACK+10H,SP;设置堆栈指针STM#x,AR1;AR1指向xRPT#2MVPDtable,*AR1+;把程序存储器中的数据移动到数据存储器CALLSUMMend:BendSUMM:LD*(x),TMPY*(m),AADD*(b),ASTLA,*(y)RET.end操作步骤与前面相似,需要观察的数据存储器的地址均为0x0080;下面是该项目程序的实验运行结果:example5的结果并记录下程序运行结束后CPU各寄存器的结果。实验二定点运算实验一、实验目的掌握各种乘法指令。二、实验设备计算机、SEED-DTK实验箱、5416EVM板三、实验原理参见教材第三章。四、实验内容编写程序,实现y=Σaixi。五、实验步骤1、用仿真机将计算机与SEED-DTK实验箱连接好,并依次打开实验箱电源、仿真机电源,然后运行CCStudiov3.3软件。2、新建一个项目:点击Project-New,将项目命名为zhao4,并将项目保存在自己定义的文件夹下,注意文件夹一定要用英文名,不要将文件夹取名为中文名,因为CCS软件不能识别以中文命名的文件夹。3、新建一个源文件:点击File-New-SourceFile可以打开一个文本编辑窗口,点击保存按键,保存在和项目相同的一个文件夹下面(zhao4),保存类型选择*.ASM(如果源文件是C语言编写的,保存类型选择*.C,本实验中的例程是使用汇编语言编写的,所以选择*.ASM为保存类型),我们在这里将保存名字命名为zhao4.asm。4、在项目中添加源文件:在新建立了一个源文件以后,要想使用CCS编译器对该源文件进行编译还需要将源文件添加到项目中去。添加方法是在工程管理器中右键单击zhao4.pjt,在弹出的菜单中选择AddFiles,然后将刚才建立的zhao4.asm文件添加到该项目中去。5、编写源程序:在工程管理器中双击zhao4.asm,将出现文本编辑窗口,在该文本编辑窗口中输入如下内容:****************************************************用单操作数指令方案实现**y=(a1*x1+a2*x2+···a19*x19+a20*x20)****************************************************.titlezhao4.asm.mmregsSTACK.usectSTACK,30H.bssa,20.bssx,20.bssy,2.datatable:.word1,2,3,4,5,6,7,8,9,10,11.word12,13,14,15,16,17,18,19,20.word21,22,23,24,25,26,27,28.word29,30,1,2,3,4,5,6,7,8,9,10.def_c_int00.text_c_int00:STM#a,AR1RPT#39MVPDtable,*AR1+LD#0,BSTM#a,AR2STM#x,AR3STM#19,BRCRPTBdone-1LD*AR2+,T;单操作数指令MPY*AR3+,A;单操作数指令ADDA,Bdone:STHB,*(y)STLB,*(y+1)end:Bend.end6、编写链接配置文件:参照实验二,可不作修改7、编写中断向量表文件参照实验二,可不作修改。8、对项目进行编译和链接:把zhao4.asm、vectors.asm、zhao4.cmd依次添加到项目后,点击Project-CompileFile,在项目编译成功之后点击Project-Build选项对该项目进行链接,生成*.out文件。9、装载可执行文件:要让程序代码在DSP内部运行必需将生成的*.OUT文件装载到DSP内部,装载方法是点击:File-LoadPrograme再选择生成的zhao4.out文件就可以将程序装载到DSP的内部存储器中。10、运行程序并查看结果:a)首先打开欲查看的数据空间:点击View-Memory,弹出“MemoryWindowOptions”对话框,把欲查看的地址改为0x0080,如右图所示。b)点击OK按钮,然后点击Debug-Run让程序在DSP内部运行,最后点击Debug-Halt,再观察“Memory”对话框,看是否与下图一致:11、查看执行的周期数:a)关闭上述数据观察窗口,在文件zhao4.asm的“end:Bend”处设置断点:在该语句的左边灰色区域双击鼠标即可,如下图所示:b)点击菜单Profiler——EnableClock,使EnableClock上出现一个小钩(如右图所示);然后再点击Profiler——ViewClock,则会在CCS窗口中出现一个“Clock=0”的小窗口。c)对项目进行重新编译下载:点击Project-RebuildAll,编译成功后点击File——ReloadProgram,最后点击Debug——Run运行程序,则可发现Clock窗口中出现“Clock=???”,显然这个数字即是程序运行所耗机器周期数N。12、试使用双操作数指令方案实现上述程序的功能:试用双操作数乘法指令和RPTZ指令来代替RPTBdone-1LD*AR2+,T;单操作数指令MPY*AR3+,A;单操作数指令ADDA,B并完成上述程序的功能。并查看程序运行的周期数。13、试用分支指令实现上述程序的功能:试用BANZ指令来代替RPTBdone-1LD*AR2+,T;单操作数指令MPY*AR
本文标题:20101102DSP自编实验指导书1234
链接地址:https://www.777doc.com/doc-3065435 .html