工具类–使用DRT优化固件

嵌入式软件开发通常在严格的资源约束下进行,不仅是从业务角度,还是从微控制器的角度来看。升级到高端处理器可能会导致项目在财务上不可行,尤其是对于每个便士都能发挥作用的大批量应用。最近,我一直在与GCC的固件优化程序DRT合作,该优化程序产生了一些非常有趣的优化结果。

在优化嵌入式系统时,开发人员可能需要优化三个​​主要方面:代码大小,速度和能耗。在优化时,通常需要权衡取舍,例如更大的代码大小以加快处理速度。 DRT有趣的是,该工具同时在所有三个域中进行了优化,以提供最佳的总体结果。

DRT工具会优化整个程序,并执行称为重排序优化的优化。程序已编译并用作专用链接器后,将执行重新排序优化。重新排序器将通过执行以下操作进行优化:

  • 加载相对指令以加载相对地址
  • 分支目标
  • 持续分享
  • 数据洗牌
  • 退出截断
  • 功能重新排序
  • 指令大小
  • 删除多余的点
  • 删除未使用的代码/数据序列
  • 小恒定载荷

优化器的改进可能非常重要。例如,Somnium已在其网站上发布了以48 MHz运行的Atmel D21 ARM M0 +内核的结果。使用Atmel Studio的两个不同的编译器版本,可以看到以下优化改进:

03-DRT
重新排序优化器会对代码大小,能耗和处理速度产生重大影响。对于仅在两个不同的微控制器尺寸或零件选择之间的边界的应用,仅使用这种优化器就足以使用便宜的微控制器。

Somnium DRT工具的确有30天的使用时间,这很有趣,并且可以查看可以从应用程序中挤出多少性能。 30天的试用期结束后,该工具的成本与高端调试器探针大约相同。对价格的抑制不是很严重,但对于大多数个人或小型团队开发人员而言,可能超出了价格范围。但是,如果进行了适当的贸易研究,则微控制器成本节省的价格可能大大超过工具成本。

发表评论

您的电子邮件地址不会被公开。 必需的地方已做标记 *

该网站使用Akismet减少垃圾邮件。 了解如何处理您的评论数据.