新聞中心

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

        針對嵌入式SoC應用的C編程優化

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

        13. 編寫簡單易懂的代碼

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

        14. 避免編寫參數數量可變的函數

        如果一定要這么做,使用ANSI標準方法:stdarg.h.。使用數據表替代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函數庫(比如:strcpy、strlen、strcmp、bcopy、bzero、memset和memcpy)。這些函數是經過精心優化的。

        表1:一些XCC C/C++編譯器優化開關
        15.jpg

        本文小結

        編譯器設計者已經開發了很多復雜的優化功能以使最新的處理器獲得最大的性能,并且他們還在繼續開發更智能的優化算法。應用程序開發人員可以通過使用恰當的編程規則來盡可能多地利用編譯器的這些優化功能。

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


        關鍵詞: SoC 嵌入式 編程優化

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 东乌珠穆沁旗| 达州市| 汪清县| 余江县| 姜堰市| 永登县| 寿光市| 武鸣县| 安顺市| 清徐县| 高青县| 舞阳县| 龙门县| 周口市| 邓州市| 枣庄市| 阳泉市| 且末县| 古蔺县| 安吉县| 丹东市| 永仁县| 福安市| 且末县| 江津市| 鄂伦春自治旗| 焉耆| 江北区| 浦东新区| 谢通门县| 怀宁县| 象州县| 旬阳县| 沭阳县| 中江县| 县级市| 和硕县| 沁源县| 郎溪县| 泗阳县| 万全县|