c51優化等級 keil keil優化等級設定

2021-10-13 10:28:46 字數 1013 閱讀 6498

優化級別說明(僅供參考)

則其中的

code

optimization

欄就是用來設定

c51的優化級別。

共有個優化

級別(書上這麼寫的)

,高優化級別中包含了前面所有的優化級別。現將各個級

別說明如下:

級優化:

常數摺疊:只要有可能,編譯器就執行將表示式化為常數數字的計算,其中

包括執行位址的計算。

簡單訪問優化:對

系統的內部資料和位位址進行訪問優化。

跳轉優化:

編譯器總是將跳轉延至最終目標上,

因此跳轉到跳轉之間的命令

被刪除。

級優化:

死碼消除:無用的**段被消除。

跳轉否決:根據乙個測試回溯,條件跳轉被仔細檢查,以決定是否能夠簡化

或刪除。

級優化:

資料覆蓋:

適於靜態覆蓋的資料和位段被鑑別並標記出來。

連線定位器

bl51

通過對全域性資料流的分析,選擇可靜態覆蓋的段。

級優化:

窺孔優化:將冗餘的

mov命令去掉,包括不必要的從儲存器裝入物件及

裝入常數的操作。

另外如果能節省儲存空間或者程式執行時間,

複雜操作將由簡

單操作所代替。

級優化:

暫存器變數:

使自動變數和函式引數盡可能位於工作暫存器中,

只要有可能,

將不為這些變數保留資料儲存器空間。

、擴充套件訪問優化:來自

idata

xdata

pdata

和code

區域的變數直接包

含在操作之中,因此大多數時候沒有必要將其裝入中間暫存器。

、區域性公共子式消除:如果表示式中有乙個重複執行的計算,第一次計算的結

果被儲存,

只要有可能,

將被用作後續的計算,

因此可從**中消除繁雜的計算。

C51儲存的優化

我們知道51微控制器只有128byte的ram,有的增強型有xram,此時程式設計時就要注意,否則就有可能超出空間 1 對於各模組的全域性變數 靜態變數 全域性列舉型常量,靜態列舉型常量 個別操作儲存 如外部spi flash 的區域性變數都要修飾成xdata型別,從而節省空間。2 對於bit型變數...

c51為啥要巨集定義時鐘 c51時鐘

程式效果 時鐘,包括時間可調,定時到了鬧鐘響,用蜂鳴器,本程式已經除錯通過 喇叭接在p2.0上.埠均可自行更改.include 標頭檔案 include define uchar unsigned char 巨集定義 define uint unsigned int sbit key1 p3 5 位...

51微控制器與C51

微控制器又稱單片微控制器,是在一塊晶元中整合了cpu 處理器 ram 資料儲存器 rom 程式儲存器 定時器 計數器和多種功能的i o 輸入 輸出 介面等一台計算機所需要的基本功能部件,從而可以完成複雜的運算 邏輯控制 通訊等功能。51微控制器是對所有相容intel 8031指令系統的微控制器的統稱...