嵌入式开发优化方法.pdfVIP

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 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)

ziyouzizai + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档