编写一个以c语言或汇编为基础的DSP程序

上传人:宝路 文档编号:22287743 上传时间:2017-11-26 格式:DOC 页数:5 大小:4.49MB
返回 下载 相关 举报
编写一个以c语言或汇编为基础的DSP程序_第1页
第1页 / 共5页
编写一个以c语言或汇编为基础的DSP程序_第2页
第2页 / 共5页
编写一个以c语言或汇编为基础的DSP程序_第3页
第3页 / 共5页
编写一个以c语言或汇编为基础的DSP程序_第4页
第4页 / 共5页
编写一个以c语言或汇编为基础的DSP程序_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

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

1、广州大学学生实验报告开课学院及实验室:物理与电子工程学院 2015 年 3 月 22 日班级 光信 121 姓名 学号 指导老师实验课程名称 数字信号处理实验 成绩实验项目名称 编写一个以 c 语言或汇编为基础的 DSP 程序1、实验目的2、使用仪器、材料3、实验原理4、实验步骤5、实验过程原始记录(数据、图案、计算等)6、实验结果及分析 一. 实验目的1学习用汇编语言编制程序;了解汇编语言程序与 C 语言程序的区别和在设置上的不同。2了解 TMS320C55x 汇编语言程序结果和一些简单的汇编语句用法。3学习在 CCS 环境中调试汇编代码二. 实验设备PC 兼容机一台,操作系统为 Windo

2、ws2000(或 Windows98,WindowsXP,以下默认为Windows2000),安装 Code Composer Studio 2.2 软件。三. 实验原理1汇编语言程序:汇编语言程序除了程序中必须使用汇编语句之外,其编译选项的设置与 C 语言编制的程序也稍有不同。其区别为:汇编语言程序在执行时直接从用户指定入口开始,常见的入口标号为“start” ,而 C 语言程序在执行时,先要调用 C 标准库中的初始化程序(入口标号为“_c_init00”),完成设置之后,才转入用户的主程序 main()运行。由于 CCS 的代码链接器默认支持 C 语言,在编制汇编语言程序时,需要设置链接参

3、数,选择非自动初始化,注明汇编程序的入口地址。2程序设计要求:程序框图: 四实验步骤1实验准备:设置软件仿真模式,参看:第三部分、四、1。2建立新的工程文件:(1)启动 Code Composer Studio 2.21。进行以下设置:建立 TASM.pjt。3设置工程文件:4编辑输入源程序:汇编语言程序:-先新建源程序窗口:输入源程序:.mmregs sect “.text” .model call=c55_std .align 4.model mem=large .global start.global x .sym start,start, 36, 2, 0.bss x,1,0,0 st

4、art:.sym x,x, 4, 2, 16 MOV #2, *(#y).global y MOV #1, *(#x) .bss y,1,0,0 L1:.sym y,y, 4, 2, 16 MOV *(#y), AR1.global z ADD *(#x), AR1, AR1.sym z,z, 4, 2, 16 MOV AR1, *(#z)B L1C 语言main()int x,y,z;x=1; y=2;while ( 1 )z=x+y; 注意: 在输入汇编语言源程序时, 除了标号以外的程序行必须以一个空格或退格字符开始。-保存源程序为 TASM.asm。连接命令文件:如同第步操作,建立空的源

5、程序窗口。-输入连接命令文件内容:MEMORYDARAM: o=0x100, l=0x7f00DARAM2: o=0x8000, l=0x8000SECTIONS.text: DARAM.bss: DARAM.stack : DARAM注意:第 3、4 行中等号前边字母是小写的“L” 。-将文件存为 C:ICETEK-VC5509-EDULabLab0103-ASMTASM.cmd将上述编译的源程序加入工程 TASM.pjt,具体操作可请参考实验一、四、 4、。5编译源文件、下载可执行程序:选择菜单 Project-Rebuild All。执行 File?Load Program,在随后打开的

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

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

8、Memory”窗口中变量 x、y 相应的存储单元,将其修改成其他取值,单步运行后观察结果。8对照观察 map 文件和 cmd 文件的内容:选择菜单 File-Open,将找到 C:ICETEK-VC5509-EDULabLab0103-ASMDebug 目录,将文件类型改为“Memory Map Files” ,选择 TASM.map 文件、打开。打开 TASM.cmd 文件。程序的入口地址:map 文件中“ENTRY POINT SYMBOL”中说明了程序入口地址(start) 。内存使用情况:-map 文件中 “MEMORY CONFIGURATION”标明了程序占用 DARAM 的使用情

9、况,共占用 25H 个存储单元。比较一下,这比用 C 编制的程序占用的要小得多。-观察 map 文件中的 “SECTION ALLOCATION MAP”段,可以看出 TASM.obj 的入口地址为 100H,这也是程序的入口地址。-用户定义的变量从 120H 开始,共占用了 3 个单元(Word)。9退出 CCS5、实验数据记录6、数据结果及分析图 1 图 2数据分析 图 1 中,可以从“MEMORY CONFIGURATION”中可以看到 used 为 000025H,程序占用了 DARAM 的 25H 个存储单位。这比起 C 语言占用的单位少很多。从“SECTION ALLOCATION”中,看到 TASM.obj 地址为 0000100H, 。而我们定义的变量的地址从120H,总共占用了 3 个单位。图 2 是修改程序后,对 0f000h+0e000h 的相加运算,结果是 0x1D00.总结经过这次的实验课程,我学会了和更熟悉了以 C 语言或为汇编为基础的 DSP 程序的运用,只要多加练习便可容易操作,但还是要注意一步一步的来,不可图快。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 其它办公文档

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