不仅从商业角度,而且从微控制器角度来看,嵌入式开发通常是在严重的资源限制下进行的。升级到更高端的处理器可能会导致项目在经济上不可行,特别是对于每一分钱都可以发挥作用的大批量应用。一个名为DRT的GCC固件优化器,它产生了一些非常有趣的优化结果。
在优化嵌入式系统时,开发人员可能希望优化三个主要方面:代码大小、速度和能量使用。当优化时,通常必须进行权衡,例如更大的代码大小以获得更快的处理。DRT的有趣之处在于,该工具同时在所有三个领域进行优化,以提供最佳的整体结果。
DRT工具优化整个程序,并执行一种称为重新排序优化的优化。重新排序优化是在程序编译后执行的,并作为一个专门的链接器。重新排序器将通过执行以下操作进行优化:
加载相对地址的加载相对指令
分支目标
不断分享
数据混洗
退出截断
功能重新排序
指令规模
移除多余的nop
移除未使用的代码/数据序列
小型恒定负载
重新排序优化器会对代码大小、能源使用和处理速度产生重大影响。对于介于两种不同微控制器尺寸或器件选择之间的应用,仅使用这样的优化器就足以使用更便宜的微控制器。
DRT工具确实有30天的使用时间,可以体验一下,看看一个应用程序能获得多少额外的性能。30天的试用期结束后,该工具的成本大约与高端调试器探针相同。不可怕的价格抑制,但可能超出了大多数个人或小团队嵌入式开发者的价格范围。然而,如果进行适当的权衡研究,微控制器成本的价格节省可能大大超过工具成本。