-0-《DSP技术及应用》实验指导书适用专业:电子信息工程金陵科技学院-1-实验1CCS使用入门实验序号:1实验名称:CCS使用入门适用专业:电子信息工程学时数:4学时一、实验目的(1)熟悉DSP集成开发环境CCS的界面(2)掌握CCS设计平台的常用功能(3)掌握用CCS设计并调试DSP程序的流程二、实验要求(1)注意掌握CCS开发DSP应用程序的步骤;(2)理解提供的汇编语言源程序的功能。(3)调试程序要记录调试过程中出现的问题及解决办法;(4)编写程序要规范、正确,上机调试过程和结果要有记录,并注意调试程序集成环境的掌握及应用,不断积累编程及调试经验;(5)实验后按实验报告规范要求给出本实验的实验报告。三、实验设备、环境PIII计算机,装有CCS2.2或更高版本软件、DSP实验箱(包括仿真器)四、实验步骤及内容(一)教师演示讲解CCS的使用1、介绍SEED-DTKDSP实验箱的概况,演示DSP实验箱与PC机的连接方法。2、介绍CCS软件的界面与菜单。3、演示CCS调试程序的一般过程,讲解CCS常用功能。设计概念性规划编程和编译创建工程文件、编写源程序和配置文件调试语法检查、探测点设置和日志保存等分析实时调试、统计和跟踪(二)让学生按照步骤进行操作1、操作步骤如下:以参考程序TestXF.ASM为例,将SEED-DTK实验箱通过XDS510仿真器与PC机相连,并显示正常连接后,开始练习CCS调试过程:(1)单击CCSSETUP图标,设置为硬件仿真模式,即C5416XDS510EMULATOR。(2)创建一个新工程:Project菜单中选择New命令,在弹出的对话框中填入工程名、存放路径与目标CPU型号,本实验选择C54X。(3)新建文件,输入参考程序如下:-2-.mmregs.def_c_int00.text_c_int00:;程序入口SSBXXF;XF置1CALLDelay;调用延时程序RSBXXF;XF清0CALLDelay;调用延时程序B_c_int00;跳转到程序开头循环执行***************************************************************延时子程序:Delay,已知DSP系统初始工作频率为32MHz或160MHz*用两级减一计数器来延时。调整AR1和AR2的大小LED闪烁的频率不同**************************************************************Delay:STM#999,AR1;循环次数1000LOOP1:STM#4999,AR2;循环次数5000LOOP2:BANZLOOP2,*AR2-;如果AR2不等于0,AR2减1,再判断BANZLOOP1,*AR1-;如果AR1不等于0,AR1减1,跳转到LOOP1RET.end(4)保存该文件为TestXF.asm;(5)输入并保存链接命令文件TestXF.CMD,参考内容如下:MEMORY{page0:PRAM:org=0100hlen=0F00h/*定义程序存贮区,起始0100H,长度0F00H*/}SECTIONS{.text:PRAMpage0/*将.text段映射到page0的param区*/}(6)向工程中添加文件:在Project菜单中单击AddFilestoProject,在弹出的的目录中选择待加入的文件TestXF.asm、TestXF.cmd。(7)练习从工程中删除一个文件。(8)汇编、链接程序:执行菜单Project/RebuildAll对源程序进行编译,最后将产生一个TestXF.out文件。(9)加载程序:执行File/LoadProgram,选择TestXF.out并打开,即可将可执行文件加载到DSP仿真器中,此时CCS将自动打开一个反汇编窗口。该窗口中的黄色小箭头表示当前PC指向的代码行。(10)执行菜单VIEW/Register/CPURegister命令,打开观察窗口观察以便观察CPU类各寄存器的值。(11)运行程序:执行Debug/Run,观察SEED-DTK实验箱的D3,应有闪烁现象,适当修改程序,该LED闪烁的频率将有所变化。XF引脚LEDD3的连接图如图所示。-3-(12)程序编译过程中若有错误,根据CCS给出的错误提示进行修改。例如,本程序中若将.def_c_int00伪指令删除,则CCS将提示符号_c_int00未定义。要求学生尝试修改其他内容,如CMD文件,观察有可能发生的错误现象。(三)根据学生的实验情况适当增加其他程序调试方法的讲解。五、实验注意事项实验过程中注意爱护设备,实验完毕要按正常操作关闭设备。六、讨论、思考题1.TestXF.asm程序里延迟子程序的延迟时间怎样确定的?D3闪烁频率是怎样确定?。2.观察并思考调试过程中单步执行命令stepover、stepinto、stepout、runtocursor的不同功能。2.打开其他示例程序并调试通过,在有关窗口中显示正确运行结果。-4-实验二汇编语言程序设计与调试实验序号:2实验名称:汇编语言程序设计与调试适用专业:电子信息工程学时数:4学时一、实验目的(1)熟悉C54x系列DSP芯片的汇编语言指令。(2)掌握用汇编语言设计程序的方法。(3)熟悉用CCS调试程序的过程。二、实验要求(1)输入提供的汇编语言参考程序,用CCS对其进行调试;(2)调试程序要记录调试过程中出现的问题及解决办法;(3)编写程序要规范、正确,上机调试过程和结果要有记录,并注意调试程序集成环境的掌握及应用,不断积累编程及调试经验;(4)实验后给出本实验的实验报告。三、实验设备、环境至少PIII计算机,装有ccs2.2(或ccs3.1)软件四、实验步骤及内容(一)教师简单回顾所需知识并演示一个程序的输入调试过程。1.简单回顾常用汇编伪指令的含义。2.回顾CCS的操作步骤3.以一个实现连加的汇编程序为例(PPT的316页),重点演示该汇编程序的调试过程。(1)该汇编程序的参考内容如下:.title“exam2.asm”.mmregs.bssx,5.bssy,1.textStm#x,ar1Stm#4,ar451iixy计算-5-Ld#0,aLoop:Add*ar1+,aBanzloop,*ar4-Stla,@y.end(2)参考CMD文件:MEMORY{page0:PRAM:org=1000hlen=0F00h/*定义程序存贮区,起始0100H,长度0F00H*/page1:DRAM:org=1000h,len=100h/*定义数据存贮区,起始1000H,长度0100H*/}SECTIONS{.text:PRAMpage0/*将.text段映射到page0的PRAM区*/.bss:DRAMpage1/*将.bss段映射到page1的DRAM区*/}(3)运行该程序,但发现无法正确运行,从存储器的安排角度去解决这个问题。(4)存储器安排问题解决后,再次运行程序,但在y单元未观察到运行结果,要求改写代码,使得在y单元获得正确的计算结果(提示:从直接寻址的规律角度思考)。(5)CCS中存储器的观察方法选择VIEW/memory,打开窗口,在其中Address中输入要观察的x单元地址,被选择观察Datamemory,即可打开指定单元起始的DM进行观察。要修改某单元内容,只需双击即可修改。-6-(二)学生按照设计选题编写简单程序1、设计并调试汇编程序实现连续乘加功能(PPT的325页)511122...55iiiyaxaxaxax。2、学生自行编写其他汇编程序并调试直至满足功能要求如:(1)编写一段程序,对数组进行初始化,使x[5]={0,0,0,0,0}(PPT的316页)(2)编写一段程序,对数组进行初始化,使x[5]={0,1,2,3,4}(读懂PPT325页的程序,自己编写)(3)编写一段程序,首先对数组x[20]赋值,再将数据存储器中的数组x[20]复制到数组y[20]。(PPT的278页)(三)学生在参考程序中添加两行代码:STLA,AR1LD*AR1+,T按调试过程对其进行调试,观察CCS给出的警告提示,并思考为什么会有这种警告以及怎样消除之。(四)记录调试过程中出现的问题、解决的思路及解决的办法。五、讨论思考题1、DSP汇编程序中流水线冲突的解决有哪些规律?2、怎样比较实现同一功能的两个程序所用的算法的优劣?-7-实验三使用探测点与文件I/O实验序号:3实验名称:使用探测点与文件I/O适用专业:电子信息工程学时数:4学时一、实验目的(1)掌握用CCS设计并调试DSP程序的流程。(2)掌握探测点与文件I/O的使用方法。(3)掌握从文件读入数据到内存的方法。(4)掌握CCS波形或图像输入输出的步骤。二、实验要求(1)注意掌握CCS开发DSP应用程序的步骤;(2)输入提供的C语言参考程序,用CCS对其进行调试;(3)调试程序要记录调试过程中出现的问题及解决办法;(4)编写程序要规范、正确,上机调试过程和结果要有记录,并注意调试程序集成环境的掌握及应用,不断积累编程及调试经验;(5)实验后按实验报告规范要求给出本实验的实验报告。三、实验设备、环境PIII计算机,装有ccs2.2或更高版本软件四、实验步骤及内容(一)教师讲解演示CCS探测点与文件I/O的使用过程1、探测点即探针断点(ProbePoint)的原理探针可以从PC机的文件中读取数据,它是开发算法的一个有效工具。其作用概括为:(1)将来自PC主机文件的输入数据传送到目标系统的缓存器中供算法使用。(2)将来自目标系统缓存器中的输出数据传送到PC主机的文件中供分析。(3)用数据更新窗口,如图形窗口。2、演示通过探测点实现数据输入并查看图形的步骤。(二)让学生按照演示步骤练习有关操作。练习使用探测点与文件I/O,操作步骤:1.创建工程,并加入C语言程序volume.c及其相应的命令链接文件volume.cmd、头文件、库文件、中断向量表等文件。点击工具栏按钮或选择Project→RebuildAll。2.选择File→LodeProgram并选取volume.out,然后点击Open。3.在ProjectView窗口中,双击volume.c文件。-8-4.将光标置于主函数中的dataIO()这一行上。DataIO函数起占位符作用。现在,它是一个很好的与探针断点相连接的地方,以便于从PC机文件输入数据。5.点击工具栏按钮(ToggleProbePoint),则光标所在行变为兰色高亮。6.选择File→FileI/O,在FileI/O对话窗中可选择输入和输出文件。7.在FileInput栏中,点击AddFile。8.选择sine.dat文件。注意:在文件类型框中可以选择数据格式,sine.dat文件包含正弦波形的16进制值。9.点击Open,将该文件添加到FileI/O对话框的列表上,接着出现sine.dat文件控制窗口(CCS窗口可以覆盖它)。在运行程序时,可用这个窗口开始、停止、重复、或快速前进来控制数据文件。10.在FileI/O对话框中,将Address修改为inp_buffer,Length修改为100,选中WrapAround。11.点击AddProbePoint,选择将dataio()行的探针对指定数据文件连接:点击Connect栏尾处的下箭头,在其下拉菜单中选择sine.dat文件;点击Replace。ProbePoint列表将显示探测点已连接到sine.dat文件;点击“确定”。FileI/O对话框则显示文件现已被连接到探测点。12.在FileI/O对话框,点击“确定”。13.点击按钮,在dataio()行增加一断点,点击动态运行按钮。14.选择View→Graph→Time/Frequency。-9-15.在弹出的GraphPropertyDialog对话窗中,将GraphTitle,StartAddress,AcquisitionBufferSize,DisplayDataS