编写一个以c,语言为基础的dsp程序,实验报告

上传人:bin****86 文档编号:60265424 上传时间:2018-11-15 格式:DOCX 页数:15 大小:22.16KB
返回 下载 相关 举报
编写一个以c,语言为基础的dsp程序,实验报告_第1页
第1页 / 共15页
编写一个以c,语言为基础的dsp程序,实验报告_第2页
第2页 / 共15页
编写一个以c,语言为基础的dsp程序,实验报告_第3页
第3页 / 共15页
编写一个以c,语言为基础的dsp程序,实验报告_第4页
第4页 / 共15页
编写一个以c,语言为基础的dsp程序,实验报告_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《编写一个以c,语言为基础的dsp程序,实验报告》由会员分享,可在线阅读,更多相关《编写一个以c,语言为基础的dsp程序,实验报告(15页珍藏版)》请在金锄头文库上搜索。

1、为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划编写一个以c,语言为基础的dsp程序,实验报告编写一个以C语言为基础的DSP程序实验结果:通过实验可以发现,修改cmd文件可以安排程序和数据在DSP内存资源中的分配和位置;map文件中描述了程序和数据所占用的实际尺寸和地址。C语言编制的程序,在经过编译器编译后,需要连接若干C标准程序辅助运行。以下是运行流程:1程序入口为_c_int00,执行标准C库中的程序,负责初始化C环境、申请堆栈、初始化有初始值的变量2程序最终转到用户编制的主函数运行。3程序在主函数中的无限循环中持续运行。编写

2、一个汇编和C混合的DSP程序广州大学学生实验报告一、实验目的二、使用仪器、材料三、实验原理四、实验步骤五、实验过程原始记录六、实验结果及分析一.实验目的1学习用汇编语言编制程序;了解汇编语言程序与C语言程序的区别和在设置上的不同。2了解TMS320C55x汇编语言程序结果和一些简单的汇编语句用法。3学习在CCS环境中调试汇编代码二.实验设备PC兼容机一台,操作系统为WindowsXX(或Windows98,WindowsXP,以下默认为WindowsXX),安装CodeComposerStudio软件。三.实验原理1汇编语言程序:汇编语言程序除了程序中必须使用汇编语句之外,其编译选项的设置与C

3、语言编制的程序也稍有不同。其区别为:汇编语言程序在执行时直接从用户指定入口开始,常见的入口标号为“start”,而C语言程序在执行时,先要调用C标准库中的初始化程序(入口标号为“_c_init00”),完成设置之后,才转入用户的主程序main()运行。由于CCS的代码链接器默认支持C语言,在编制汇编语言程序时,需要设置链接参数,选择非自动初始化,注明汇编程序的入口地址。2程序设计要求:程序框图:四实验步骤1实验准备:设置软件仿真模式,参看:第三部分、四、1。2建立新的工程文件:启动CodeComposerStudio。进行以下设置:建立。3设置工程文件:4编辑输入源程序:汇编语言程序:-先新建

4、源程序窗口:输入源程序:.mmregssect“.text”.modelcall=c55_std.align4.modelmem=large.globalstart.globalstart,start,36,2,0.bssx,1,0,0start:.symx,x,4,2,16MOV#2,*(#y).globalyMOV#1,*(#x).bssy,1,0,0L1:.symy,y,4,2,16MOV*(#y),AR1.globalzADD*(#x),AR1,AR1.symz,z,4,2,16MOVAR1,*(#z)BL1C语言main()intx,y,z;x=1;y=2;while(1)z=x+y

5、;注意:在输入汇编语言源程序时,除了标号以外的程序行必须以一个空格或退格字符开始。-保存源程序为。连接命令文件:如同第步操作,建立空的源程序窗口。-输入连接命令文件内容:MEMORYDARAM:o=0x100,l=0x7f00DARAM2:o=0x8000,l=0x8000SECTIONS.text:DARAM.bss:DARAM.stack:DARAM注意:第3、4行中等号前边字母是小写的“L”。-将文件存为C:ICETEK-VC5509-EDULabLab0103-ASM将上述编译的源程序加入工程,具体操作可请参考实验一、四、4、。5编译源文件、下载可执行程序:选择菜单Project-Re

6、buildAll。执行File?LoadProgram,在随后打开的对话框中选择刚刚建立的C:ICETEK-VC5509-EDULabLab0103-TASMdebug文件。完成后,系统自动打开源程序窗口,并在其中指示程序的入口地址为标号“start”后的语句。6打开观察窗口:选择菜单View-Disassembly。注意程序运行指针停留的位置。开启CPU寄存器观察窗口:单击菜单View-Registers-CPURegisters。请看PC指针取值与当前程序运行地址对应。将变量x、y、z分别加入观察窗口:在源程序中双击变量名,再单击鼠标右键,选择“AddtoWatchWindow”。这时,这

7、3个变量还未作初始化。开启内存观察窗口:选择“View”菜单中“Memory?”项,在“MemroyWindowOptions”窗口中的“Adress”项中输入&x,单击“OK”完成设置;“Memory”窗口中x的当前取值显示在第1个地址的后。而且y和z的存储单元跟在其后。7观察程序运行结果:单步运行2次,在观察窗中观察到变量x、y被赋值。变化的值被显示成红色。同时在“Memory”窗口中也能观察到x和y值的改变。单步运行,观察CPU寄存器窗口中“XAR1”寄存器存储值的变化。程序利用XAR1进行运算。再单步运行,可观察到z的值被计算出来。双击“Memory”窗口中变量x、y相应的存储单元,将

8、其修改成其他取值,单步运行后观察结果。8对照观察map文件和cmd文件的内容:选择菜单File-Open?,将找到C:ICETEK-VC5509-EDULabLab0103-ASMDebug目录,将文件类型改为“MemoryMapFiles”,选择文件、打开。打开文件。程序的入口地址:map文件中“ENTRYPOINTSYMBOL”中说明了程序入口地址(start)。内存使用情况:-map文件中“MEMORYCONFIGURATION”标明了程序占用DARAM的使用情况,共占用25H个存储单元。比较一下,这比用C编制的程序占用的要小得多。-观察map文件中的“SECTIONALLOCATION

9、MAP”段,可以看出的入口地址为100H,这也是程序的入口地址。-用户定义的变量从120H开始,共占用了3个单元(Word)。9退出CCS五、实验数据记录六、数据结果及分析图1图2数据分析图1中,可以从“MEMORYCONFIGURATION”中可以看到used为H,程序占用了DARAM的25H个存储单位。这比起C语言占用的单位少很多。从“SECTIONALLOCATION”中,看到地址为H,。而我们定义的变量的地址从120H,总共占用了3个单位。图2是修改程序后,对0f000h+0e000h的相加运算,结果是0x1D00.总结经过这次的实验课程,我学会了和更熟悉了以C语言或为汇编为基础的DS

10、P程序的运用,只要多加练习便可容易操作,但还是要注意一步一步的来,不可图快。实验二:编写一个以C语言为基础的DSP程序一、实验目的1学习C语言编制程序:了解C语言程序设计方法和组成部分。2学习编制连接命令文件,用来控制代码的连接。3学会建立和改变map文件,以及利用它观察DSP内存使用情况。4进一步熟悉CCS调试程序。二、实验设备1PC机一台:操作系统为WindowsXX或WindowsXP。2ICETEK-F2812-EDU实验箱一台。三、实验原理1C语言程序CCS支持使用标准C语言应用程序。当使用标准C语言编制的程序时,其源程序文件名的后缀应为.c(如:)。CCS在编译标准C语言程序时,首

11、先将其编译成相应汇编语言程序,再进一步编译成目标DSP的可执行代码。最后生成的是coff格式的可下载到DSP中运行的文件,其文件名后缀为.out。2命令文件的作用命令文件(文件名后缀为cmd)为链接程序提供程序和数据在具体DSP硬件中的位置分配信息。通过编制命令文件,我们可以将某些特定的数据或程序按照我们的意图放置在DSP所管理的内存中。命令文件也为链接程序提供了DSP外扩存储器的描述。在程序中使用CMD文件描述硬件存储区,可以只说明使用部分,但只要是说明的,必须和硬件匹配,也就是只要说明的存储区必须是存在的和可用的。3内存映射文件的作用一般地,开发的DSP程序在调试好后,要固化到系统的ROM

12、中。为了更精确地使用ROM空间,我们就需要知道程序的大小和位置,通过建立目标程序的map文件可以了解DSP代码的确切信息。当需要更改程序和数据的大小和位置时,就要适当修改cmd文件和源程序,再重新生成map文件来观察结果。另外,通过观察map文件,可以掌握DSP存储器的使用和利用情况,以便进行存储器方面的优化工作。四、实验步骤1实验准备:设置软件仿真模式。2建立工程文件:新建工程文件设置如图。图建立3编辑输入源程序编辑C语言程序?新建源程序窗口?在源程序窗口输入源程序:intx,y,z;main()x=1;y=2;while(1)z=x+y;?保存源程序为编辑连接命令文件?建立空源程序窗口?输

13、入连接命令文件内容:-l-stack400h-heap100MEMORYPAGE0:PROG(R):origin=0x3E8000,length=0x10000PAGE0:BOOT(R):origin=0x3FF000,length=0xFC0PAGE0:RESET(R):origin=0x3FFFC0,length=0x2PAGE0:VECTORS(R):origin=0x3FFFC2,length=0x3EPAGE1:M0RAM(RW):origin=0x,length=0x400PAGE1:M1RAM(RW):origin=0x,length=0x400PAGE1:L0L1RAM(RW)

14、:origin=0x,length=0xXXPAGE1:H0RAM(RW):origin=0x3F8000,length=0xXXSECTIONS/*22-bitprogramsections*/.reset:RESET,PAGE=0vectors:VECTORS,PAGE=0.pinit:PROG,PAGE=0.cinit:PROG,PAGE=0.text:PROG,PAGE=0/*16-Bitdatasections*/.const:L0L1RAM,PAGE=1.bss:L0L1RAM,PAGE=1.stack:M1RAM,PAGE=1.sysmem:M0RAM,PAGE=1/*32-bitdatasections*/.ebss:H0RAM,PAGE=1

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 总结/报告

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号