不僅從商業角度,而且從微控制器角度來看,嵌入式開發通常是在嚴重的資源限制下進行的。升級到更高端的處理器可能會導致項目在經濟上不可行,特別是對于每一分錢都可以發揮作用的大批量應用。一個名為DRT的GCC固件優化器,它產生了一些非常有趣的優化結果。
在優化嵌入式系統時,開發人員可能希望優化三個主要方面:代碼大小、速度和能量使用。當優化時,通常必須進行權衡,例如更大的代碼大小以獲得更快的處理。DRT的有趣之處在于,該工具同時在所有三個領域進行優化,以提供最佳的整體結果。
DRT工具優化整個程序,并執行一種稱為重新排序優化的優化。重新排序優化是在程序編譯后執行的,并作為一個專門的鏈接器。重新排序器將通過執行以下操作進行優化:
加載相對地址的加載相對指令
分支目標
不斷分享
數據混洗
退出截斷
功能重新排序
指令規模
移除多余的nop
移除未使用的代碼/數據序列
小型恒定負載
重新排序優化器會對代碼大小、能源使用和處理速度產生重大影響。對于介于兩種不同微控制器尺寸或器件選擇之間的應用,僅使用這樣的優化器就足以使用更便宜的微控制器。
DRT工具確實有30天的使用時間,可以體驗一下,看看一個應用程序能獲得多少額外的性能。30天的試用期結束后,該工具的成本大約與高端調試器探針相同。不可怕的價格抑制,但可能超出了大多數個人或小團隊嵌入式開發者的價格范圍。然而,如果進行適當的權衡研究,微控制器成本的價格節省可能大大超過工具成本。