国产无码黄电影_麻豆av一区二区三区不卡_伦理在线视频免费观看视频_九九热这里只有精品33_亚洲av中文无码乱人伦在线播放_国产成人精品aa毛片久久_成人欧美一区二区三区的电影在线_78精品国产综合久久香蕉_亚洲日本成本人在线观看

0 賣盤信息
BOM詢價
您現在的位置: 首頁 > 電子資訊 >基礎知識 > 單片機編程軟件很簡單(22),keil單片機編程軟件優化等級+概念解析

單片機編程軟件很簡單(22),keil單片機編程軟件優化等級+概念解析

來源: 21ic
2020-12-03
類別:基礎知識
eye 69
文章創建人 拍明

原標題:單片機編程軟件很簡單(22),keil單片機編程軟件優化等級+概念解析

Keil單片機編程軟件中的優化等級是編譯器的一個重要功能,它允許開發者根據具體需求調整編譯器的優化策略,從而生成更高效、更緊湊的代碼。以下是關于Keil單片機編程軟件優化等級的概念解析:

一、優化等級概述

Keil C51編譯器提供了0到9共10個優化等級,高優化級別中包含了前面所有的優化級別。每個優化等級都針對代碼的不同方面進行優化,以提高程序的執行效率、減小代碼大小或改善其他性能指標。

二、各優化等級詳解

  1. 0級優化(無優化)

    • 常數折疊:只要有可能,編譯器就執行將表達式化為常數數字的計算,包括運行地址的計算。

    • 簡單訪問優化:對8051系統的內部數據和位地址進行訪問優化。

    • 跳轉優化:編譯器總是將跳轉延至最終目標上,因此跳轉到跳轉之間的命令被刪除。

  2. 1級優化

    • 死碼消除:無用的代碼段被消除。

    • 跳轉否決:根據一個測試回溯,條件跳轉被仔細檢查,以決定是否能夠簡化或刪除。

  3. 2級優化

    • 數據覆蓋:適于靜態覆蓋的數據和位段被鑒別并標記出來,連接定位器BL51通過對全局數據流的分析,選擇可靜態覆蓋的段。

  4. 3級優化

    • “窺孔”優化:將冗余的MOV命令去掉,包括不必要的從存儲器裝入對象及裝入常數的操作。如果能節省存儲空間或程序執行時間,復雜操作將由簡單操作所代替。

  5. 4級優化

    • 寄存器變量:使自動變量和函數參數盡可能位于工作寄存器中,只要有可能,將不為這些變量保留數據存儲器空間。

    • 擴展訪問優化:來自IDATA、XDATA、PDATA和CODE區域的變量直接包含在操作之中,因此大多數時候沒有必要將其裝入中間寄存器。

    • 局部公共子式消除:如果表達式中有一個重復執行的計算,第一次計算的結果被保存,后續計算將使用這個結果,從而消除繁雜的計算。

    • CASE/SWITCH語句優化:將CASE/SWITCH語句作為跳轉表或跳轉串優化。

QQ_1742458060359.png

  1. 5級優化

    • 全局公共子式消除:只要有可能,函數內部相同的子表達式只計算一次,中間結果存入一個寄存器以代替新的計算。

    • 簡單循環優化:以常量占據一段內存的循環在運行時被優化。

  2. 6級優化

    • 回路循環:如果程序代碼能更快更有效地執行,程序回路將進行循環優化。

  3. 7級優化

    • 擴展入口優化:在適合時對寄存器變量使用DPTR數據指針,指針和數組訪問被優化以減小程序代碼和提高執行速度。

  4. 8級優化

    • 公共尾部合并:對同一個函數有多處調用時,一些設置代碼可被重復使用,從而減小程序代碼長度。

  5. 9級優化

    • 公共子程序塊:檢測重復使用的指令序列,并將它們轉換為子程序。C51甚至會重新安排代碼以獲得更多的重復使用指令序列。

三、優化等級的選擇

優化等級的選擇應根據具體的應用場景和需求來決定。一般來說,較高的優化等級可以生成更高效的代碼,但也可能增加編譯的復雜性和調試的難度。在開發階段,為了便于調試和理解程序行為,可以選擇較低的優化等級。而在產品發布前,為了最大化程序性能,可以選擇較高的優化等級。

需要注意的是,優化等級并非越高越好。在某些情況下,過高的優化等級可能導致代碼邏輯出錯或性能下降。因此,在選擇優化等級時,應綜合考慮代碼的可讀性、可維護性以及性能需求。

綜上所述,Keil單片機編程軟件的優化等級是一個強大的功能,它允許開發者根據具體需求調整編譯器的優化策略。通過合理選擇優化等級,可以生成更高效、更緊湊的代碼,從而提高程序的執行效率和可靠性。


責任編輯:David

【免責聲明】

1、本文內容、數據、圖表等來源于網絡引用或其他公開資料,版權歸屬原作者、原發表出處。若版權所有方對本文的引用持有異議,請聯系拍明芯城(marketing@iczoom.com),本方將及時處理。

2、本文的引用僅供讀者交流學習使用,不涉及商業目的。

3、本文內容僅代表作者觀點,拍明芯城不對內容的準確性、可靠性或完整性提供明示或暗示的保證。讀者閱讀本文后做出的決定或行為,是基于自主意愿和獨立判斷做出的,請讀者明確相關結果。

4、如需轉載本方擁有版權的文章,請聯系拍明芯城(marketing@iczoom.com)注明“轉載原因”。未經允許私自轉載拍明芯城將保留追究其法律責任的權利。

拍明芯城擁有對此聲明的最終解釋權。

相關資訊

資訊推薦
云母電容公司_云母電容生產廠商

云母電容公司_云母電容生產廠商

開關三極管13007的規格參數、引腳圖、開關電源電路圖?三極管13007可以用什么型號替代?

開關三極管13007的規格參數、引腳圖、開關電源電路圖?三極管13007可以用什么型號替代?

74ls74中文資料匯總(74ls74引腳圖及功能_內部結構及應用電路)

74ls74中文資料匯總(74ls74引腳圖及功能_內部結構及應用電路)

芯片lm2596s開關電壓調節器的中文資料_引腳圖及功能_內部結構及原理圖_電路圖及封裝

芯片lm2596s開關電壓調節器的中文資料_引腳圖及功能_內部結構及原理圖_電路圖及封裝

芯片UA741運算放大器的資料及參數_引腳圖及功能_電路原理圖?ua741運算放大器的替代型號有哪些?

芯片UA741運算放大器的資料及參數_引腳圖及功能_電路原理圖?ua741運算放大器的替代型號有哪些?

28nm光刻機卡住“02專項”——對于督工部分觀點的批判(睡前消息353期)

28nm光刻機卡住“02專項”——對于督工部分觀點的批判(睡前消息353期)

拍明芯城微信圖標

各大手機應用商城搜索“拍明芯城”

下載客戶端,隨時隨地買賣元器件!

拍明芯城公眾號
拍明芯城抖音
拍明芯城b站
拍明芯城頭條
拍明芯城微博
拍明芯城視頻號
拍明
廣告
恒捷廣告
廣告
深亞廣告
廣告
原廠直供
廣告