嵌入式系統性能優化


在嵌入式系統開發過程中,遇到某個函數功能性能優化的問題,可以從如下方面考慮和解決。


  • 函數是否有頻繁被循環調用的函數,可以寫成宏定義或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->......

  • 增加協處理器:比如通訊方面外置協議棧模塊可以更換為內置協議棧的模塊。


如果還未搞定,那只有:

  • 重寫演算法。

  • 更改系統設計。


Advertisements

你可能會喜歡