- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
6.3.3编译器和CCS当利用CCS构建一个工程时,CCS会调用合时的代码产生工具完成编译、汇编和链接任务。编译器、汇编器和链接器的有关选项在CCS的相关选项对话框中进行设置。6.4TMS320C55x的C代码优化由于C语言程序的执行效率无法达到汇编语言程序的水平,所以常常在编写完C程序后还要进行C代码优化以提高效率,以达到实时性要求。C55x的C/C++编译器中含有一个称为优化器(optimizer)的程序模块。优化器通过执行一些操作(如简化循环,重新安排语句和表达式,把变量用寄存器实现等),可以提高C/C++程序的运行速度,减少其代码长度。6.4.1编译器的优化选项1.基本优化选项–o0:采取的主要优化措施有:简化控制流程,把变量安排到寄存器,简化循环,忽略未用代码,简化语句和表达式,把调用函数扩展为内嵌函数等。–o1:在–o0级优化的基础上,进一步采取局部优化措施,如:进行COPY扩展,删除未用分配,忽略局部公共表达式等。–o2:在–o1级优化的基础上,进一步采取全局部优化措施,如:进行循环优化,删除全局公共子表达式,删除全局未用分配等。–o3:这是最大可能的优化级别。在–o2级优化的基础上,进一步进行的主要优化措施包括:对于从未调用的函数移除其代码,对于从未使用返回值的函数删除其返回代码,把小函数代码自动嵌入到程序中(参考-oi选项),重新安排函数声明的次序等。-oisize:当采用–o3级优化时,优化器自动嵌入被调用的小函数。只有小于size的函数才能被嵌入。2.文件级(File-Level)优化选项–o3选项使编译器进行文件级优化。可以单独使用–o3选项进行普通的文件级优化,也可以与其它选项组合起来进行更专门的优化要想控制文件级优化,可以使用–ol选项–ol0:告诉编译器在源程序文件中声明了一个与标准库函数同名的函数,更改相应的库函数–ol1:告诉编译器在源程序文件中声明一个与标准库函数同名的函数–ol2:告诉编译器在源程序文件中不声明或改变任何标准库函数。当在命令文件或环境变量中选择了–ol0或–ol1选项时,可以通过–ol2选项取消–ol0或–ol1选项采用–o3选项时,可以使用–on选项产生一个扩展名为.nfo的优化信息文件–on0:取消优化信息文件的作用–on1:产生优化信息文件–on2:产生详细的优化信息文件3.程序级(Program-Level)优化选项通过使用-pm选项和-o3选项就可以进行程序级优化。通过程序级优化,所有源文件都被编译到一个中间文件中。这个中间文件提供给编译器在编译过程中完整的程序总览。因为编译器能够访问整个程序,因此它会执行一些很少在文件级优化中应用的优化。如果一个函数的特定参量的值不变,编译器就会用这个值替换函数中的这个参量。如果一个函数的返回值从不使用,编译器就会删除该函数的返回代码。如果一个函数从未被调用,编译器就会删除该函数。要想察看编译器进行程序级优化的情况,可以使用–on2选项产生一个优化信息文件。要想控制程序级优化,可以使用–op选项:–op0:有被其它模块调用的函数和在其它模块中编辑的全局变量。–op1:没有被其它模块调用的函数,有在其它模块中编辑的全局变量。–op2:没有被其它模块调用的函数,也没有在其它模块中编辑的全局变量,为缺省值。–op3:有被其它模块调用的函数,没有在其它模块中编辑的全局变量。6.4.2嵌入函数(InlineFunction)当程序调用一个嵌入函数时,会把该函数的代码插入到调用处。嵌入函数有助于提高代码的运行效率,主要有以下两个优点:省去了函数调用有关的操作;优化器可以把嵌入函数代码和周围代码放在一起自由地进行优化。但是,嵌入函数会大幅度地增加程序代码长度,适合于小函数和调用次数较少的场合。嵌入函数有以下方法:嵌入本征函数、自动嵌入小函数、利用inline关键字嵌入函数。1.嵌入本征函数C55x有很多本征函数。编译时,编译器会用有效代码取代本征函数。无论是否使用优化器,这种嵌入操作都会自动进行。关于本征函数的详细介绍,请参考本章第6.4节。2.自动嵌入小函数通过–o3选项,优化器将自动地嵌入所调用的小函数。小函数长度的上限由-oisize选项指定,即任何长度超过size的函数不能被自动嵌入。如果选择了-oi0,则等价于取消自动嵌入。函数大小以编译器内部的绝对单位为准进行计算,用-onx选项可以看到某函数大小。3.利用inline关键字嵌入函数如果inline关键字对函数进行限定,则该函数内调用时将被嵌入到调用处,而不是采用普通的函数调用操作方式。为使inline关键字生效,必须采用–o(–o0,–o1,–o2或
您可能关注的文档
- 公共关系原理与实务.ppt
- 万向传动装置.ppt
- 风力发电机组运行与维护.ppt
- 2025年智能电网柔性直流输电技术智能化运维策略研究.docx
- 2025年智能电网柔性直流输电技术助力智能微电网发展研究.docx
- 2025年智能电网柔性直流输电技术智能化电网运维管理研究.docx
- 2025年智能电网柔性直流输电设备国产化进程与技术创新.docx
- 2025年智能电网柔性直流输电网络拓扑优化技术创新分析.docx
- 2025年智能电网柔性直流输电设备故障检测技术创新.docx
- 2025年智能电网柔性直流输电技术在电网智能化调度中的应用分析.docx
- 2025年智能电网柔性直流输电技术在我国西部地区应用前景.docx
- 7.2 弹力-人教版八年级物理下册.pptx
- 2025年智能电网柔性直流输电技术在智能变电站中的应用研究.docx
- 2025年智能电网柔性直流输电技术在智能电网智能化存储中的应用.docx
- 2025年智能电网柔性直流输电技术在新能源并网中的应用研究.docx
- 2025年智能电网柔性直流输电技术在智能电网智能化控制中的应用.docx
- 2025年智能电网柔性直流输电技术在智能电网智能化预测中的应用.docx
- 2025年智能电网柔性直流输电技术在智能电网智能化服务中的应用.docx
- 2025年智能电网柔性直流输电技术在智能电网智能化运维中的应用.docx
- 2025年智能电网柔性直流输电技术智能化保护系统研究.docx
原创力文档


文档评论(0)