在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
芯片精品文章合集(500篇!)    创芯人才网--重磅上线啦!
查看: 1251|回复: 0

[其它] 优化嵌入式软件的7个技巧

[复制链接]
发表于 2019-1-16 17:45:09 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x

优化嵌入式软件的特性包括系统时序,代码大小,RAM使用和能耗。虽然优化每个特性通常需要自己的方法和技术,但开发人员在优化嵌入式软件时可以遵循几个一般性提示。

始终创建比较基线

首先创建一个比较优化结果的基线是显而易见的,但是我们也能发现很多团队匆忙直接进入优化而没有任何基线。基线测量很重要,因为每个优化周期的回报都会减少。例如,优化能量的第一次通过可以导致20%的改善。第二10%,然后是5%,依此类推。开发人员需要能够看到这种趋势,并根据他们的时间输入量化他们在系统中看到的改进。

设置优化目标

每次优化过程都需要越来越多的时间来从系统中挤出最小的改进。团队需要仔细平衡他们的时间投资,并确定最终的改进是否值得花时间。在意识到这一点之前,可以花费数周来优化不再需要优化的系统。在优化开始之前,团队应该设置一个目标一旦实现,就足以满足当前应用程序的要求。实现该目标表明优化过程已完成。

获取正确的工具进行测量

没有正确的测量工具,优化系统可能非常困难。例如,如果没有准确的方法来测量系统和微控制器能量消耗,则无法优化能量。在许多情况下,团队无法将这两种不同的能量测量结果分开,并试图在微控制器无法降低时将其最小化。如果没有可以准确测量或允许开发人员查看系统行为的工具,那么尝试优化系统是没有意义的。

使用优化工具

嵌入式软件有许多领域可以进行优化,以减少代码大小或提高性能。在某些情况下,可以使用单独的或附加的工具链来执行优化。但有时可能不需要外部工具。只选择合适的工具链就足够了。

使用编译器属性和#pragma

在微调嵌入式软件时,开发人员通常无法做出选择。使用属性和#pragma可以提高速度,有选择地将优化应用于单个函数,致力于优化软件的开发人员应该熟悉属性,还要阅读用C编写可移植优化,以便他们能够理解如何编写仍然可移植的优化,并且不会再回过头来讨论它们。

不要犹豫,试验一下

没有用于优化系统的固定实践,开发人员不应该感到受限于遵循任何特定技术。有时,学习和优化系统的最佳方法是将实验放在一起,看看会发生什么。通过实验和记录结果能够弄清楚哪些有效,哪些无效,以及什么是浪费资源和时间。通过尝试不同的驱动程序模型,有很多方法可以大大提高开发人员在使用printf时获得的实时性能,通常认为这比实际情况要好得多。

深入研究编译器生成的指令

在资源极为受限的应用程序中,开发人员只需要卷起袖子并深入研究编译器生成的指令。通过if / else选择三元运算符可能是正在执行的三个或四个额外指令之间的差异,这会导致应用程序崩溃。虽然C等语言是标准的,但每个编译器优化并生成机器指令的方式略有不同。了解编译器正在做什么的唯一真正方法是查看程序集。

应用程序的优化需求将大不相同。一些小批量生产的应用可能根本不需要优化。在其他每个时钟周期或纳米放大器都很重要的情况下,可能会花费大量时间来尝试从系统中挤出最后一性能或能量。虽然每个系统都不同,但这些技巧为开发人员和团队提供了一个起点,可以帮助他们实现更高效的系统。

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

关闭

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-3-29 17:50 , Processed in 0.032833 second(s), 6 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表