DSP实验三实验四.doc_第1页
DSP实验三实验四.doc_第2页
DSP实验三实验四.doc_第3页
DSP实验三实验四.doc_第4页
DSP实验三实验四.doc_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验三、CMD文件和Gel文件的编写 一、实验目的 1. 掌握Gel文件的编写, 2. 熟悉Code Composer Studio的使用 二、实验设备 1. 集成开发环境CCS 2. 实验代码ccs_gel.s54、ccs_gel.cmd和ccs_gel.gel 三、实验内容 1. 建立项目并添加相应文件,连接编译(步骤同实验二一样),双击打开CMD文件,对照教材理解CMD文件的编写结构,改变其中的内容,增加自定义段,保存并重新编译,比对前后两次编译得到的Map文件的异同。a.打开CCS软件,选择平台C5402。如下图:b.建立ccs_gel项目:c.打开CMD文件,改变文件的权限,使之变成可读可写文件。未修改CMD文件之前的CMD如下图:将其编译后所得到的MAP文件如下图:d.将PAGE 1中的DARAM:org=0x2000,len=0x1000改成0x2100则编译后所得到的MAP文件如下图: 分析:比较两者的MAP文件可以发现,当CMD文件中数据段起始地址改变,长度改变的时候,MAP中的映射相应的也发生变化。2. 了解GEL文件的功能。Gel文件不是DSP开发必须的文件,而是给CCS使用的文件,它帮助设置CCS的仿真环境,而且可以完成一些常用的调试操作,如硬件设置等。Gel文件的编写是采用类似C语言的编程语言,观察当前的Gel文件的编写。 打开HELP文件,如下图:3. 使用者如果希望修改其功能,可以直接编写gel文件,保存并重新装载。Menuitem是一级子菜单,hotmenu是二级子菜单,其中的处理可以直接填写或调用其他的函数。修改Gel文件,添加menuitem和hotmenu。menuitem C54x Experiment; hotmenu C5402_Textout() GEL_TextOut(“Hello,GEL is a solid tool !n”); 打开GEL 文件,在其上方添加如上menuitem和hotmenu,如下图:至于DSK板菜单由于没有用到,故在此实验中并没有添加。hotmenu C5402_DSK_Test() /*此功能实现需要用到DSK板,可暂不添加,如做测试,需将此中文注释去掉*/ *(int *)0x0io = 0xff07; /* turn on LED */ 测试其功能。 4. 查询help了解所有Gel的函数功能,并修改文件实现一个其它的Gel函数。四、实验结果和提示 1. 当设备被选用后,与其关联的gel文件将被使用,其中的StartUp函数将被调用。可修改其中的内容,如PMST寄存器的数值,并测试。 2. 如果当前CCS中装载了gel文件,那么就会出现相应的菜单项,如图3-1所示。 图3-1 GEL菜单 3. 添加代码后,重新装载Gel文件将出现新的子菜单,如图3-2所示,并测试新菜单的功能。 图3-2 新的子菜单四、实验心得 此次实验做得比较顺利,主要是得益于实验指导书的详细指导。我明白,实验的目地不在于你做这个时候有多快有多顺利,而是我们究竟学了多少东西。此次实验增加菜单栏时,我把应用于DSK板子的也添加进去了,导致GEL文件不能识别,这是我的粗心所致。我认为此次实验重点在于教我们怎么写cmd和gel文件,这是一个理论与实验结合的关键点。通过此次实验我明白了CMD文件其实就是一个配置文件。它是用来具体说明对储存空间的配置情况的。通常的配置是第0页存放程序,第1页存放数据,第2页存放I/O空间,数据段必须从0060H开始。其它段意义不大,但是在仿真时不一致。DSP芯片的储存空间包含有ROM和RAM两种存储空间。实验四、正弦信号发生器一、 实验目的1. 掌握利用DSP产生正弦信号的原理2. 熟悉子程序调用的程序结构以及堆栈的使用3. 掌握CCS的图形输出操作二、 实验设备1. 集成开发环境Code Composer Studio(简称CCS)2. 实验代码Sin.s54、Lab.cmd和Lab.gel三、实验内容1. 阅读理解多项式逼近正弦的文档2. 阅读和理解Sin.s543. 调试正弦波发生器4. 加入断点,并选取图形观测,利用动画及时更新5. 试利用迭代的方法来实现正弦信号发生器四、实验结果和分析1. ,为第一象限内的弧度值。因为,所以只需将第二,三,四象限内的弧度值转换到第一象限即可计算出相应的正弦函数值。由于有限精度,规定弧度值从,其中=0x7FFF,/2=0x4000,=0x8000。利用级数展开产生正弦波,必须在调用计算子程序之前备份好累加器A中的当前弧度值,以便计算结束后实现增量。正弦波的频率可以通过增幅的大小来进行控制,如果假定程序循环一次为一个时间单位,则正弦波的周期为65536/步长,频率为周期倒数。自动增长时要注意当超过后必须调整到的范围内才能调用计算子程序,即若。2. 需要使用临时数据时,必须用frame语句留出所需空间,使用结束后要将堆栈指针还原以防堆栈内存泄漏。要注意的是frame的下一条指令不能使用直接寻址。 打开sin_out的MAP文件。如下图:3. 注意事项:利用累加器写乘法寄存器T(stlm)之后的下一条指令不能使用T;条件转移指令xc在指令访问阶段判断条件,该条件必须在先于xc指令的2个指令之前产生;条件转移指令bc是在指令执行阶段判断条件,不存在这方面的问题。具体细节请参见数字信号处理系统的应用和设计3.6节和4.5节。4. 图形观测时选择菜单View-Graph-Time/Frequency,然后设置如下图:确定并设置好断点后(断点位置要设置对,几个地方都可以,可多尝试几次)使用Debug-Animate就可以观察到动画输出的结果如图:start address中用sin_out时可得如下图:从图中可以观察到正弦波的周期。改变的增量步长观察不同频率的正弦波输出有何不同。 改变步长,将步长改为0X f100,得到如下图。比较上述两图可以发现,当步长增大时,正弦波的周期变小了。原因在于周期等于65536/步长。start address中用AR6测试时,可得如下图: start address中用0x2000测试时,可得如下图:观察正弦波的不同,记录图形数据并比较,我们可以发现,当start address改变时,波形大致不发生变化,周期,幅度基本上不变,只是起始波形位置不一样了。原因在于start address只是改变起始地址,并不改变其周期,步长等等。故图形会发生上述变化。当设置多个断点时,可以得到如下图形:比较该图与我们得到的第一个正弦波图形我们可以发现,该波形不再连续,而是出现了阶梯状。原因在于当我们设置多个断点时,程序运行到某处时,它会跳出去接着运行,结果又遇到另一个断点。如此循环,则出现上述阶梯状波形。5. 得到正弦信号迭代公式:,因为为常数,所以为常数,则利用此公式迭代计算每次只需一次乘法和一次加法。6. 尝试不用断点,而用探针Probe Point的方式显示并观察图形。同样需要比较两种运行方式在探针形式下有无区别。 不设置断点,运用探针时,可得如下图波形: 观察图形,我们可以发现它于设置断点后的波形一致。7. 在断点及动画运行方式实现正弦波显示的情况下,查找到存储器中对应存储正弦波数据实时更新的数据单元。 五、实验心得 此次实验重点在于掌握用DSP产生正弦(sin)信号的原理。在明

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论