DSP实验指导书
- 格式:pdf
- 大小:937.40 KB
- 文档页数:72
DSP原理与应用实验指导书张卫宁王晓东二零一零年四月目录第一部分软件仿真(Simulator)实验实验一集成开发环境CCS应用基础实验二寻址方式实验三定点定标运算实验四浮点运算实验五汇编程序的优化实验六C语言编程与优化(乘法—累加运算程序设计)实验七混合编程实验实验八FIR滤波器的实现实验九基于DSP的数字图像处理算法的实现第二部分硬件(Emulator)实验实验十片内定时器实验实验十一数字I/O口的应用实验十二同步串口与A/D转换实验十三基于DSP的数字音频处理系统第三部分部分实验程序参考清单实验一参考程序实验二参考程序实验三参考程序实验四参考程序实验五参考程序第四部分参考资料一、C54xCPU的存储器映像寄存器及其地址二、C54xCPU的状态和控制寄存器ST0、ST1三、TMS320C5416DSP的存储区映像四、C54xCPU的处理器模式状态寄存器PMST五、C54x的片内定时器控制寄存器TCR六、TMS320C5416的中断矢量表参考文献第一部分软件仿真(Simulator)实验实验一集成开发环境CCS应用基础一、目的1. 通过创建一个简单的应用工程,初步熟悉Code Composer Studio(简称CCS)的集成开发环境(IDE)及其工具的使用。
2. 掌握汇编语言源程序的基本框架和编写方法,了解CCS的工程结构以及编译、汇编、连接、运行和调试的基本过程。
3. 了解ST0、ST1的控制位对计算过程的控制以及计算结果对状态位的影响。
二、内容1. 学习使用CCS集成开发环境(IDE)的各种工具。
包括下列内容:(1)编辑、汇编和连接。
(2)查看和修改存储器映像寄存器的内容。
(3)查看和修改ST0、ST1及PMST的有关位。
(4)查看和修改程序存储器和数据存储器的内容。
(5)断点操作。
(6)运行程序(单步运行、连续运行和断点运行)。
2. 观察并理解COFF段结构的划分及存储空间的分配。
3. 观察控制位SXM、OVM、C16及FRCT置1或清0对执行结果的影响。
4. 观察标志位TC、C、OVA及OVB的变化情况。
三、实验步骤1.准备工作在逻辑盘D:\下,建立以自己学号命名的子目录,(如:D:\DXK03\学号)以后自己的所有实验程序都在此子目录下运行。
(说明:CCS在安装时,曾在C区建立了ti文件夹,但由于实验室PC机的C区都已保护,所以学生的目录及文件不能建在c:\ti\myprojects下)。
将实验一的文件夹拷贝至自己的子目录内。
在PC机的CCS软件仿真环境(Simulator)下,选择TMS320C5416软件仿真模式,并在此模式下进行实验。
2.预习实验程序实验一提供了三个有关程序:汇编主程序test1.asm、中断矢量处理程序vectors.asm及命令文件test1.cmd(参见第三部分,实验一参考程序)。
(1)读懂主程序test1.asm,分析程序中各操作所提供的原始数据、中间过程和最终结果。
在实验前先填写主程序注释中的括号部分,然后通过实验验证自己的分析正确否。
(2)通过预习程序(特别是预习test1.cmd),了解该工程中COFF格式段的划分及存储器的分配情况。
在实验前先填写表1-1。
表1-1 工程test1中的段及其定位段名已/未初始化段所属PAGE 起始地址存储区长度(3)在程序vectors.asm中有从复位中断(RESET)到主程序入口c_int00的一些汇编指令。
通过阅读它们,了解在CCS软件仿真环境(Simulator)下,怎样编写中断矢量入口的处理程序。
3.运行CCS setup,选择“C5416 Device Simulator”,如图1-1所示。
单击“Import”按钮,即可将其添加到系统配置(System Configuration)中,单击“Save and Quit”按钮,就可以启动CCS在C5416软件仿真环境下工作。
图1-1 CCS安装界面4.创建一个新的工程项目启动CCS。
从CCS的主菜单“Project”下选择子菜单“New”,将出现“Project Creation”对话框,如图1-2所示。
在对话框的“Project Name”处输入“test1”,在“Location”处用浏览方式选入在第1步中建立的文件夹,在“Project Type”处选择“Executable(.out)”类型,在“Target”中选择CCS所配置的目标DSP类型,最后单击“Finish”完成。
5.向工程添加各类型文件(1)在主菜单中单击“Project”,选择“Add Files to Project”命令,然后在弹出的添加文件对话框中找到文件vectors.asm及test1.asm,单击“Open”。
(也可在工程图标处单击鼠标右键,然后在快捷菜单中选择“Add Files to Project”,或将文件拖入工程视图窗口的文件夹中)。
(2)在主菜单中单击“Project”,选择“Add Files to Project”命令,使用上述同样的方法选择链接命令文件“test1.cmd”,单击Open。
图1-2 “Project Creation ”对话框(注:在一个工程项目中,通常包括源程序、库文件、链接命令文件和头文件等。
本工程项目中没有库文件和头文件,因此不需添加它们)。
实验所需的3个文件到此添加完毕。
在工程浏览窗中,单击工程名左边的“+”标记展开工程文件列表,如图1-3所示。
在工程浏览窗里的某个文件名上双击鼠标,即可在CCS 的编辑窗中看到该文件的源代码。
6.建造和装载程序在主菜单中单击“Project ”,选择“Rebuild All ”命令或者单击工具条图标,即可自动完成编译、汇编和连接这三个步骤,并在底部窗口中同步的显示汇编连接信息。
连接完毕,将生成一个“test1.out ”文件,默认存放在目录“test1”下的“debug ”目录内。
在修改文件后,选择“ReBuild All ”命令,或者单击工具条图标,CCS 将重新对工程中的所有文件进行编译、汇编和连接。
建造完毕后,在主菜单中单击“File ”,选择“Load Program ”如图1-4所示。
在对话框中选图1-3 展开工程文件列表图1-4 装载程序择文件test1.out,单击“Open”打开。
这样,CCS就将可执行代码载入到目标DSP中。
选择主菜单“View”下的“Mixed Source/ASM”,将同时看到汇编源代码和相应的机器代码,如图1-5所示。
如果要查找某条汇编指令的功能,只需将光标放在该汇编指令的前面,并按F1键,CCS就会搜索并显示该条指令的帮助信息,这在调试中是很有用的。
图1-5 观察指令代码7.运行和调试选择主菜单“Debug”下的“Run”或单击工具按钮,可使程序全速运行。
通过“Debug”下的“Halt”或单击工具按钮可停止程序的运行。
设置断点的方法是:把光标移到某一行,按F9键或单击工具按钮,在这一行前面会出现一个红点,表示在该行加了一个断点。
8.寄存器的察看和修改选择主菜单“View”下的“Registers ——> CPU Registers”或点击CCS操作界面左侧的调试工具栏图标,就会在CCS工作区底部打开一个CPU寄存器窗口,其中列出了所有CPU寄存器的值,并列出了ST0、ST1和PMST中有特殊意义的位和位域,如图1-6所示。
要修改某个寄存器值,只要双击该寄存器名称,既可出现“Edit Register”对话框,只要在“Value”文本框中输入新的值,单击“Done”按纽,即修改成功。
图1-6 CPU寄存器窗口选择主菜单“View”下的“Memory”或点击CCS操作界面左侧的调试工具栏图标,就会弹出一个“Memory Window Options”对话框,如图1-7所示。
选择Data或Program,输入存储器的地址,即可观察以该存储器地址开始的内容,如图1-8所示。
要修改某个存储器地址中的内容,可以双击该地址,在出现的对话框中修改即可。
图1-7存储器窗口图1-8 存储器显示及修改对话框关于CCS使用的详细说明,请查看有关说明书(见参考文献[15]、[16]),或参考CCS主菜单的“Help”。
9.观察存储器映象Map文件选择主菜单“File”下的“Open”,打开test1.Map文件,观察存储器的配置、段的定位及全局符号等各项内容,将它们与test1.cmd文件中的设置进行比较,进一步理解cmd文件的作用。
四、实验报告的要求1.程序分析(1)说明3个文件的作用及接口情况,说明各个文件中伪指令的作用。
(2)分析主程序的结构和功能,对每条指令进行注释,写出执行结果。
(3)写出本工程的分段和存储器的定位情况。
2.调试说明总结上机调试步骤和调试情况,分析调试中遇到的问题是如何解决的。
3.回答下列问题:(1)如果没有在工程中添加test1.cmd文件,试问汇编连接后能否产生test1.out文件?能否获得正确的执行结果?(2)在主程序中存在着许多NOP指令,它们的作用是什么?如果将它们去掉,程序能否正常运行?(3)伪指令.def和.ref的在本工程中的作用是什么?如果将它们去掉将会产生什么后果?实验二寻址方式一、目的1.了解C54x的各种数据寻址方式,包括立即寻址、绝对寻址、累加器寻址、直接寻址、间接寻址、存储器映象寄存器寻址及堆栈寻址等。
2.掌握各种寻址方法以及指令的执行过程,比较利用不同寻址方式的指令执行时间。
3.进一步掌握在CCS软件仿真环境下工程的建立、汇编、连接、运行和调试的基本过程。
二、内容1.单步或断点执行程序,观察在各种寻址方式下地址的修改和空间的变化。
2.利用CCS的“View”功能,观察不同寻址方式下指令执行的结果(即目标数据的变化)。
三、实验步骤1.预习实验程序实验二提供了三个有关程序:汇编主程序test2.asm、中断矢量处理程序vectors.asm及命令文件test2.cmd(参见第三部分,实验二参考程序)。
(1)读懂主程序test2.asm,了解程序中各种寻址方式的寻址空间情况,分析指令中源操作数和目标操作数的寻址方式、执行过程和最终结果。
在实验前先填写主程序中注释的括号部分,然后通过实验验证自己的分析正确否。
(2)通过预习程序(特别是预习test2.cmd),了解该工程中COFF格式段的划分及存储器的分配情况。
在实验前先填写表2-1。
表2-1 工程test2中的段及其定位段名已/未初始化段所属PAGE 起始地址存储区长度2.在CCS下建立工程,进行汇编、连接和调试的步骤与实验一类同,在此不再赘述。
3.为了更方便的观察在各种寻址方式下地址和目标数据的变化情况,建议在CCS环境下,打开“CPU Registers”及“Memory”窗口,使用主菜单“Windows”下的“Tile Vertically”,平铺各个观察窗口,如图2-1所示,即可快捷的观察到程序执行过程中地址和数据的变化情况。