嵌入式系統性能優化
在嵌入式系統開發過程中,遇到某個函數功能性能優化的問題,可以從如下方面考慮和解決。
函數是否有頻繁被循環調用的函數,可以寫成宏定義或inline函數。
如果硬體支持的演算法,是否已經使用硬體計算。
SRAM,DRAM,NorFlash的運行時鐘是否已經調到最優。
CPU ICACHE,DCACHE是否已經使用。
任務調度是否禁止。
如果Norflash,可以檢查是否支持QSPI。
如果XIP系統,是否可以將該函數編譯為在RAM中執行。
是否禁止硬中斷。
是否有大數據拷貝,是否可以做到ZeroCory。
大數據是否和DRAM位寬對齊。
如果是驅動,是否採用中斷方式,還是輪詢方式。
如果硬中斷不能禁止,是否有頻繁發生的中斷。
Advertisements
如果在DRAM中執行的,數據和代碼是否可以放到放到更快的SRAM中執行。
系統是否編譯成Release,編譯選項優化。
系統Tick的精度設置。
如果以上還未搞定,那還有更難的方面:
ICACHE, DCACHE命中的深入分析。
CPU是否可以超頻。
重寫演算法。
如果以上還未搞定,那還可以:
更換更快的CPU
更換更快的DRAM和SRAM
更換更快的FLASH
硬體連接介面更換:I2C->Serial->SPI->USB->......
增加協處理器:比如通訊方面外置協議棧模塊可以更換為內置協議棧的模塊。
如果還未搞定,那只有:
重寫演算法。
更改系統設計。