dsp实验一报告

dsp实验一报告

ID:38288234

大小:28.71 KB

页数:4页

时间:2019-06-07

dsp实验一报告_第1页
dsp实验一报告_第2页
dsp实验一报告_第3页
dsp实验一报告_第4页
资源描述:

《dsp实验一报告》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、实验一:编写一个汇编和C混合的DSP程序一.实验目的1.在了解纯C语言程序工程和汇编语言程序工程结构的基础上,学习在C工程中加入汇编编程的混合编程方法。2.了解混合编程的注意事项。3.理解混合编程的必要性和在什么情况下要采用混合编程。二.实验设备PC兼容机一台,操作系统为Windows2000(或Windows98,WindowsXP,以下默认为Windows2000),安装CodeComposerStudio3.1软件。三.实验原理1.使用C语言开发应用程序的优缺点:*优点:-易于开发和维护。由于用C语言书写接近自然语言,其可读性强、

2、利于理解,在编制、修改、实现算法方面比用汇编语言开发容易。-可移植性强。-不容易发生流水线冲突。编译器能提供完善的解决流水线冲突的结果。-有大量现存的算法可利用。-适用于人机界面的开发。*缺点:-代码量大。-程序效率较低。-优化代码存在一定困难。综上所述,我们一般用C语言设计应用程序的总体框架、解决人机接口和对速度效率要求不太高的复杂算法。2.使用汇编语言开发应用程序的优缺点:*优点:-更能发挥系统特点。由于汇编语言掌控系统硬件的能力强于C语言,设计出来的程序更加贴近硬件特性,往往能将硬件效能发挥到极致。-代码精练,效率高。用汇编语言设

3、计的程序,代码短、不容易产生冗余。-代码量小。*缺点:-可读性差。不利于复杂算法的开发和实现。-可移植性差。-容易产生流水线冲突。由于排除冲突需要靠人来辅助完成,这要求编程人员有较为丰富的开发经验和对硬件工作机制的深刻理解。3.如何混合编程:⑴混合工程:在工程中可以同时包含C语言程序和汇编语言程序,无需更改编译选项。一般地,我们使用C程序为主,加入汇编语言程序模块。⑵使用模块技术:在应用程序中划分出比较清晰的模块,不同模块可采用不同语言设计。强调效率和速度的模块采用汇编设计。尽量少用汇编语言设计程序。⑶如何找出需要用汇编程序设计的模块:

4、-用C语言完成设计后,运用CCS的软件仿真功能,充分测试程序,找到程序运行中的瓶颈(速度方面的和空间方面的)。-再使用分块仿真技术尽可能缩小模块。-找到的模块单独写成子程序,存入独立的文件中。-由于CCS编译器能产生C语言程序到汇编程序的中间文件,观察需要优化的模块的汇编结果,进行人工优化。-最后运用人工优化后形成的汇编程序模块,代替原来需要优化的C语言模块,进行编译。-程序中可使用内嵌汇编。比如:asm(“MOVT1,*SP(#1)”);编译器可直接使用内嵌的汇编语句生成最终代码。但需要语句中双引号中为合法的汇编语句,比如要以空格开头

5、等等。4.何时使用混合编程技术:-当程序中需要操作与硬件密切相关的设备,而用C语言较难实现时。比如:在中断程序设计时需要设置中断向量表,向量表中空间有时用C语言语句有困难,且向量表要在内存中精确定位,这时可将设置中断向量表的部分用汇编语言代替。-当需要绕开C编译器的规定,进行特殊操作时。比如:C语言规定,程序不能访问程序代码区,而系统功能需要进行类似访问时可采用限制较小的汇编语言程序设计。-当需要提高模块的效率(包括空间上和时间上两方面的),而C语言程序无法达到要求时。四.实验步骤1.实验准备:-设置软件仿真模式,参看:第三部分、第一章

6、、四、1。-启动CCS,参看:第三部分、第一章、五、1。2.打开工程、浏览程序内容、编译生成和下载可执行代码:⑴打开工程:选择菜单Project->Open…,选择打开工程文件C:ICETEKVC5509AeVC5509AeLab0104-CASMCASM.pjt⑵展开工程管理窗口中CASM工程,双击Source下的CProgram.c项,打开CProgram.c源程序窗口。可以看到,程序完成了一个简单的运算,它先开设了三个全局变量x、y、z,然后分别给x和y赋初值,再在循环中计算x+y,结果赋值给z。⑶编译并下载程序此设置的

7、功能是每次编译完成后将程序自动下载到DSP上。选择菜单Project->BuildAll,编译、连接和下载程序。⑷运行程序,观察结果:在程序中有“在此加软件断点”注释的语句上加软件断点;将变量z加入变量观察窗口;运行程序到断点,观察变量z的结果值。3.修改程序:⑴修改算法部分为单独的子程序:我们假设在循环中进行的运算是需要用汇编语言程序模块优化的部分。首先将“z=x+y;”语句修改成“z=add(x,y);”,在程序头上,变量定义之前加上一行“intadd(inta,intb);”,在程序末尾,添加如下子程序。intadd(inta,i

8、ntb){return(a+b);}如此,将算法搬移到一个C语言的子程序模块中实现。修改完成后,可以编译、下载、运行到断点,观察运行结果,判断子程序是否能完全与原程序一样完成算法。⑵将子程序移入add.c:

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。