【vc++精品源码栏目提醒】:网学会员vc++精品源码为您提供杭电DSP报告 - 教育参考,解决您在杭电DSP报告 - 教育学习中工作中的难题,参考学习。
DSP 实验报告 姓名: 学号:09041832 老师:张珣实验一:编写一个以 C 语言为基础的 DSP 程序一.实验目的1.学习用标准C 语言编制程序;了解
常用的C 语言程序设计方法和组成部分。
2.
学习编制连接命令文件,并用来控制代码的连接。
3.学会建立和改变map 文件,以及利用它观察DSP 内存使用情况的方法。
4.熟悉使用软件仿真方式调试程序。
二.实验设备PC 兼容机一台,操作系统为Windows2000或Windows98,WindowsXP,以下默认为Windows2000,安装 Code Composer Studio 3.1 软件。
三.实验原理1.标准C 语言程序:CCS 支持使用标准C 语言开发DSP 应用程序。
当使用标准C 语言编制程序时,其源程序文件名的后缀应为.c如:volume.c。
CCS 在编译标准C 语言程序时,首先将其编译成相应汇编语言程序,再进一步编译成目标DSP 的可执行代码。
最后生成的是COFF 格式的可下载到DSP 中运行的文件,其文件名后缀为.out。
由于使用C 语言编制程序,其中调用的标准C 的库函数由专门的库提供,在编译链接时编译系统还负责构建C 运行环境。
所以用户工程中需要注明使用C 的支持库。
另外,由于TMS320VC5502DSP 的存储器区域较大,程序中如果要使用大于64K 的数据空间,需要设置C 工程使用大模式、连接大模式库。
2.命令文件的作用:命令文件文件名后缀为.cmd为链接程序提供程序和数据在具体DSP 硬件中的位置分配信息。
通过编制命令文件, 我们可以将某些特定的数据或程序按照我们的意图放置在DSP 所管理的内存中。
命令文件也为链接程序提供了DSP 外扩存储器的描述。
在程序中使用CMD文件描述硬件存储区,可以只说明使用部分,但只要是说明的,必须和硬件匹配,也就是只要说明的存储区必须是存在的和可用的。
3.内存映射map文件的作用:一般地,我们设计、开发的DSP 程序在调试好后,要固化到系统的ROM 中。
为了更精确地使用ROM 空间, 我们就需要知道程序的大小和位置,通过建立目标程序的map 文件可以了解DSP 代码的确切信息。
当需要更改程序和数据的大小和位置时,就要适当修改cmd 文件和源程序,再重新生成map 文件来观察结果。
另外,通过观察map 文件,可以掌握DSP 存储器的使用和利用情况,以便进行存储器方面的优化
工作。
4.程序设计要求:四.实验步骤1.实验准备:设置软件仿真模式,参看:第三部分、第一章、四、1。
2.建立新的工程文件:⑴ 双击桌面上图标,启动Code Composer Studio 3.1。
⑵ 进行以下设置:建立 CProgram.pjt。
3.设置工程文件:4.编辑输入源程序:⑴ C 语言程序:-先新建源程序窗口:-输入源程序:mainint xyzx1y2while 1 zxy-保存源程序为 CProgram.c:⑵ 连接命令文件:-如同第⑴步操作,建立空的源程序窗口。
-输入连接命令文件内容:-w-stack 500-sysstack 500-l rts55x.libMEMORYVECT : o0x100 l0x100DARAM: o0x200 l0xfe00CE0: o0x10000 l0x200000SECTIONS.vectors: gt VECT.text: gt DARAM.cinit: gt DARAM.bss: gt DARAM.const: gt DARAM.sysstack gt DARAM.stack: gt DARAM5.编译源文件、下载可执行程序:⑴ 单击菜单“Project”、“Rebuild All”。
⑵ 执行FileLoad Program , 在随后打开的对话框中选择刚刚建立的C:ICETEKVC5502AVC5502ALab0102-CProgramdebugCProgram.out 文件。
完成后,系统自动打开一个反汇编窗口“Disassembly”,并在其中指示程序的入口地址为“_c_int00”。
6.打开观察窗口:开启CPU 寄存器观察窗口:单击菜单View-gtRegisters-gtCPU Registers。
7.观察程序运行结果:这时,在“Disassembly”代表程序运行位置的绿色箭头指向程序的入口地址,程序将从此开始执行。
⑴ 选择菜单中Debug-gtGo Main,CCS 自动打开CProgram.c,
程序会停在用户主程序入口main 上,这从反汇编窗口和CProgram.c 窗口中的指示箭头位置可以看出。
⑵ 在内存观察窗口中观察变量的值:选择“View”菜单中“Memory…”项,在“Memroy Window Options”窗口中的“Address”项中输入ampx,单击“OK”完成设置;“Memory”窗口中x 的当前取值显示在第1 个地址之后。
⑶ 将变量 x、y、z 分别加入观察窗口:在源程序中双击变量名,再单击鼠标右键,选择“Add to Watch Window”。
这时,这3个变量还未作初始化。
⑷ 单步运行2 次,在观察窗中观察到变量x、y 被赋值。
变化的值被显示成红色。
同时在“Memory”窗口中也能观察到x 和y 值的改变。
⑸ 再单步运行,可观察到z 的值被计算出来。
双击观察窗口中变量x、y 在“Value”栏中的取值并修改成其他取值,单步运行后观察结果。
y “Value”⑹ 双击观察窗口中变量x、 在 栏中的取值,并修改成0;选择菜单Debug-gtRestart,返回程序起点。
⑺ 重新单步运行程序,观察在CPU 寄