新聞中心

EEPW首頁 > EDA/PCB > 設計應用 > 針對嵌入式SoC應用的C編程優(yōu)化

針對嵌入式SoC應用的C編程優(yōu)化

作者: 時間:2012-05-02 來源:網絡 收藏

13. 編寫簡單易懂的代碼

編譯器擅長創(chuàng)建復雜的優(yōu)化,比如函數(shù)嵌入和在適當?shù)臅r候循環(huán)體展開。但編譯器不擅長簡化代碼,他們不會合并循環(huán)或者不用函數(shù)嵌入。在源程序中為了支持某些處理器架構進行的手工的循環(huán)體展開會降低程序的可移植性,因為這阻止了編譯器自動為其他的處理器架構進行正確的循環(huán)體展開和函數(shù)嵌入。

14. 避免編寫參數(shù)數(shù)量可變的函數(shù)

如果一定要這么做,使用ANSI標準方法:stdarg.h.。使用數(shù)據(jù)表替代if-then-else或者switch分支處理。比如考慮下面代碼:

typedef enum { BLUE, GREEN, RED, NCOLORS } COLOR;

替代

switch (c) {

case CASE0: x = 5; break;

case CASE1: x = 10; break;

case CASE2: x = 1; break;

}

使用

static int Mapping[NCOLORS] = { 5, 10, 1 };

...

x = Mapping[c];

15. 依靠libc函數(shù)庫(比如:strcpy、strlen、strcmp、bcopy、bzero、memset和memcpy)。這些函數(shù)是經過精心優(yōu)化的。

表1:一些XCC C/C++編譯器優(yōu)化開關
15.jpg

本文小結

編譯器設計者已經開發(fā)了很多復雜的優(yōu)化功能以使最新的處理器獲得最大的性能,并且他們還在繼續(xù)開發(fā)更智能的優(yōu)化算法。應用程序開發(fā)人員可以通過使用恰當?shù)木幊桃?guī)則來盡可能多地利用編譯器的這些優(yōu)化功能。

linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


評論


相關推薦

技術專區(qū)

關閉