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