- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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
您可能关注的文档
- 安徽农村商业银行系统计算机网络管理办法.doc
- 安徽大学《人才市场建设与监管》(A卷)考试试题参考答案及评分标准.doc
- 安徽干部教育在线《确保全面建成小康社会的收官规划学习党的十八届五中全会建议》满分答案.doc
- 安徽皖西高中教学联盟2016届高三教学质量检测语文试题及参考答案(word版).doc
- 安徽省江南十校2016届高三地理上学期摸底联考试卷.doc
- 安徽省师范大学附属中学2014-2015学年高二生物下学期期中考查试题新人教版.doc
- 安徽省师范大学附属中学2014-2015学年高二历史下学期期中考查试题新人教版.doc
- 安徽省皖北协作区2016届高三联考理综化学试题(WORD文字版).doc
- 安徽省十校2016届九年级大联考最后一卷历史试题.doc
- 安徽省皖江名校2016届高三联考物理试题(版,含解析).doc
文档评论(0)