网站大量收购独家精品文档,联系QQ:2885784924

实验三软件优化试验.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验三软件优化试验

实验3:DSP软件设计和代码优化实验 一、实验目的 学习DSP中C/C++设计方法,掌握常用的程序优化技术。 二、实验内容(2学时) 1、本次实验使用CCS软件,打开已经构建好的工程,生成程序后下载到系统中。利用剖析器观察函数的执行效率。 2、对函数进行代码优化,利用剖析器观察函数效率的变化,体会和理解代码优化对嵌入式系统的重要影响。 3、对函数进行编译器优化,利用剖析器观察函数效率的变化。 三、实验设备 计算机,CC3.3版软件 四、实验原理 使用C/C++开发DSP程序时,由于DSP结构的特殊性,需要对其进行优化处理,优化方法包括使用内联函数、展开多重循环、修改循环结构,把判断放到循环之外等。也可以把要优化的函数放到一个文件中,然后对文件进行编译器的优化设置,由编译器自动对代码进行优化,提升系统执行速度。 CCS提供了剖析器来衡量代码执行速度,也就是记录其执行所用的时钟周期数,这个数据除以系统时钟频率,就是代码执行所花费的精确时间。利用这个工具可以测试代码中各个环节的执行效率,据此对程序进行优化处理。比如剖析器显示结果为1025,系统时钟为150MHz,则所用时间就是1025/150M,约为6.8微秒。 五、实验步骤 1.打开项目文件 (1)把实验所用工程拷贝到“C:\CCStudio_v3.3\MyProjects”目录下; (2)确认setup CCStudioV3.3配置如图1a所示。然后启动CCS,点击菜单“project/open”,选择目录“C:\CCStudio_v3.3\MyProjects\test3”,打开刚才所拷贝的实验工程test3.prj。打开后的工程如图1b所示:其中包含两个C文件,分别是main.c和fun.c。分别双击打开这两个文件,查看并阅读其中的内容。 图1 a 图1b 打开test3工程 2.设置断点 (1)编译程序后,把程序装载入内存中。然后打开文件fun.c,分别在文件的第22行、23行、34行、39行、45行、46行设置6个断点。如图2所示: 图2 设置断点 (2)打开剖析器:点击菜单上“Profile/Clock/View”,View和Enable菜单项上出现一个对号,在CCS右下角显示一个黄色时钟图标,表明剖析器已经打开。 图3 打开剖析器 3.测试函数sadd (1)运行程序,执行到第22行断点处停下,如图4所示。此时剖析器记录了执行到此处的时钟周期数。点击黄色时钟按钮,使时钟周期数清零。 图4 执行到第22行,清零计时时钟 (2)按一下键盘上的F10键,单步执行函数mySadd,程序停止在第23行。此时剖析器中显示的是执行mySadd的时钟数,记录这个数据为t1。 (3)再双击黄色时钟按钮,剖析器数值清零。在按一下键盘上的F10键,单步执行函数sysSadd,程序停止在第24行。此时剖析器中显示的是执行sysSadd的时钟数,记录这个数据为t2。 (4)比较t1和t2的大小,如果当前DSP的时钟周期是600MHz,则t1和t2分别代表了多长时间?阅读文件fun.c中mySadd和sysSadd函数的代码,思考这个现象说明了什么? 4.测试函数fir2 (1)按一下键盘上的F5键,程序执行到第34行断点处停下,如图5所示。点击黄色时钟按钮,时钟周期数清零。 (2)按一下键盘上的F10键,单步执行函数fir2,程序停止在第35行。此时剖析器中显示的是执行fir2的时钟数,记录这个数据为t3。 (3) 按一下键盘上的F5键,程序执行到第39行断点处停下,如图5所示。再双击黄色时钟按钮,剖析器数值清零。在按一下键盘上的F10键,单步执行函数fir2_u,程序停止在第40行。此时剖析器中显示的是执行fir2_u的时钟数,记录这个数据为t4。 (4)比较t3和t4的大小,如果当前DSP的时钟周期是720MHz,则t3和t4分别代表了多长时间?阅读文件fun.c中fir2和fir2_u函数的代码,思考这个现象说明了什么? 图5 测试函数fir2和fir2_u的性能 5.测试函数myLoop (1)按一下键盘上的F5键,程序执行到第45行断点处停下,如图6所示。点击黄色时钟按钮,时钟周期数清零。 (2)按一下键盘上的F10键,单步执行函数myLoop1程序停止在第46行。此时剖析器中显示的是执行myLoop1的时钟数,记录这个数据为t5。 (3)双击黄色时钟按钮,剖析器数值清零。在按一下键盘上的F10键,单步执行函数myLoop2,程序停止在第47行。此时剖析器中显示的是执行myLoop2的时钟数,记录这个数据为t6。 (4)比较t5和t6的大小,如果当前DSP的时钟周期是72

您可能关注的文档

文档评论(0)

docindpp + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档