<acronym id="xonnx"></acronym>
      <td id="xonnx"></td>
    1. <pre id="xonnx"></pre>

      1. 專注電子技術學習與研究
        當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

        Keil c 優化選項

        作者:黃賓山   來源:本站原創   點擊數:  更新時間:2014年03月03日   【字體:

        優化級別說明(僅供參考):
        則其中的 Code Optimization    欄就是用來設置C51的優化級別。共有9個優化級別(書上這么寫的),高優化級別中包含了前面所有的優化級別,F將各個級別說明如下:

        0級優化:
        1、 常數折疊:只要有可能,編譯器就執行將表達式化為常數數字的計算,其中包括運行地址的計算。
        2、 簡單訪問優化:對8051系統的內部數據和位地址進行訪問優化。
        3、 跳轉優化:編譯器總是將跳轉延至最終目標上,因此跳轉到跳轉之間的命令被刪除。
        1級優化:
        1、 死碼消除:無用的代碼段被消除。
        2、 跳轉否決:根據一個測試回溯,條件跳轉被仔細檢查,以決定是否能夠簡化或刪除。
        2級優化:
        1、 數據覆蓋:適于靜態覆蓋的數據和位段被鑒別并標記出來。連接定位器BL51通過對全局數據流的分析,選擇可靜態覆蓋的段。
        3級優化:
        1、“窺孔”優化:將冗余的MOV命令去掉,包括不必要的從存儲器裝入對象及裝入常數的操作。另外如果能節省存儲空間或者程序執行時間,復雜操作將由簡單操作所代替。
        4級優化:
        1、 寄存器變量:使自動變量和函數參數盡可能位于工作寄存器中,只要有可能,將不為這些變量保留數據存儲器空間。
        2、擴展訪問優化:來自IDATA、XDATA、PDATA和CODE區域的變量直接包含在操作之中,因此大多數時候沒有必要將其裝入中間寄存器。
        3、局部公共子式消除:如果表達式中有一個重復執行的計算,第一次計算的結果被保存,只要有可能,將被用作后續的計算,因此可從代碼中消除繁雜的計算。
        4、 CASE/SWITCH語句優化:將CASE/SWITCH語句作為跳轉表或跳轉串優化。
        5級優化:
        1、 全局公共子式消除:只要有可能,函數內部相同的子表達式只計算一次。中間結果存入一個寄存器以代替新的計算。
        2、 簡單循環優化:以常量占據一段內存的循環再運行時被優化。
        6級優化:
        1、 回路循環:如果程序代碼能更快更有效地執行,程序回路將進行循環。
        7級優化:
        1、 擴展入口優化:在適合時對寄存器變量使用DPTR數據指針,指針和數組訪問被優化以減小程序代碼和提高執行速度。
        8級優化:
        1、 公共尾部合并:對同一個函數有多處調用時,一些設置代碼可被重復使用,從而減小程序代碼長度。
        9級優化:
        1、 公共子程序塊:檢測重復使用的指令序列,并將它們轉換為子程序。C51甚至會重新安排代碼以獲得更多的重復使用指令序列。
        當然,優化級別并非越高越好,應該根據具體要求適當選擇。

        關閉窗口

        相關文章

        欧美性色欧美精品视频,99热这里只有精品mp4,日韩高清亚洲日韩精品一区二区,2020国自产拍精品高潮