- 1、本文档共16页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
嵌入式开发优化方法.pdf
嵌入式开发优化方法
0 目录
1 优化方法概述
1.1 概述
1.2 优化过程
1.3 执行效率的优化方法的几个基本方面
2 c 语言高效编程技巧
2.1 从循环中提取不变的代码
2.2 用后置条件的循环代替前置条件的循环
2.3 用减 1 指令替换增 1 指令
2.4 循环展开
2.5 在多重循环中,如果有可能,应当将次数最多的循环放在最内层,次数少的循环
放在外层,以减少 CPU 跨切循环层的次数
2.6 如果循环体内存在逻辑判断,并且循环次数很大,宜将逻辑判断移到循环体的外
面
2.7 对大的分支采用分支嵌套平衡分支
2.8 创建跳转表
2.9 将出现概率高的分支放在前面
2.10 将逻辑或表达式中,为真概率高的子表达式放前面(express1 || express2),和
逻辑与表达式中,为假概率高的子表达式放前面(express1 express2)。因为
判断第一个表达式后可能不用判断第二个表达式了
2.11 用算术运算替代条件分支
2.12 用数组替代条件分支
2.13 修改算法来删除分支
2.14 用移位代替除法
2.15 用位操作代替求模
2.16 用移位代替乘法
2.17 提取公共表达式
2.18 用指针代替数组元素的访问
2.19 使用查表替代计算
2.20 使用 inline函数
2.21 如果有一组参数定义相同的函数调用,可以使用下面方法来减少生成的代码大小
3 针对 gcc 编译器的优化
3.1 如果 case 的值跨度比较大,就不要用 switch 语句而用 if 代替
3.2 提取公共表达式
3.3 尽量使用无符合的变量
3.4 一种?表达式的使用方法
4 针对 mips 平台的优化
4.1 减少访问内存的次数
4.2 尽量使用一个字长(4 字节)的变量
4.3 使用全局堆指针
4.4 基于流水线的优化
4.5 提高 cache的命中率
5 c 语言编程建议
6 c 语言等价编码比较
6.1 三种循环控制程序效率比较
6.2 四种循环嵌套程序效率比较
6.3 函数调用与宏的比较
6.4 条件分支语句的比较
7 如何减小生成的 code 的大小
7.1 使用紧凑的数据类型不一定能够减少代码的大小
7.2 函数的代价,参数的代价,是否需要用少量的参数
7.3 使用全局数据堆指针访问全局变量
7.4 使用算法生成初始化的数据
7.5 有些下避免编译器将 switch 语句生成查找表
7.6 其它方法
8 多任务环境下的开发注意事项
9 mips 系统开发注意事项
9.1 使用 DMA 数据拷贝和协处理器的数据访问问题
9.2 拷贝指令
1 优化方法概述
1.1 概述
文档中的优化主要包括提高代码的执行效率和减小代码的大小。提高代码的执行效
率主要从两个方面介绍,一是通用的与硬件环境无关的高效的编程技巧,包括一些与
gcc 编译器相关的优化,二是针对 mips R3000 处理器特性的优化方法。
1.2 优化过程:
在进行代码优化之前,先要有一个同一代码的可靠的非优化的版本。
应先利用算法优化措施,而不是通过提升系统特性来获得最大限度的性能提升。文
档中不包括这方面的内容。
使用一些编程的技巧来提高代码的执行效率。在后面会重点介绍这一方面。
分析系统的特性,减小一些高代价的操作。典型的象内存访问。这一点也会在后面
作详细的介绍。
使用汇编语言重写部分(消耗系统资
文档评论(0)