單片機(jī)編程軟件很簡(jiǎn)單(22),keil單片機(jī)編程軟件優(yōu)化等級(jí)+概念解析
單片機(jī)編程軟件是單片機(jī)使用過(guò)程中不可缺少的一環(huán),因此對(duì)于單片機(jī)編程軟件,相關(guān)人員應(yīng)當(dāng)具備一定了解。往期文章中,小編對(duì)單片機(jī)編程軟件有過(guò)諸多介紹。本文對(duì)于單片機(jī)編程軟件的介紹基于兩點(diǎn):1.keil單片機(jī)編程軟件編譯環(huán)境優(yōu)化等級(jí)說(shuō)明,2.keil單片機(jī)編程軟件中兩大概念名詞解析。如果你對(duì)單片機(jī)編程軟件具有一定興趣,不妨繼續(xù)往下閱讀哦。
一、KEIL編譯環(huán)境優(yōu)化等級(jí)
優(yōu)化級(jí)別說(shuō)明(僅供參考):
Keil軟件中的 Code Optimization 欄就是用來(lái)設(shè)置C51的優(yōu)化級(jí)別。共有9個(gè)優(yōu)化級(jí)別(書(shū)上這么寫(xiě)的),高優(yōu)化級(jí)別中包含了前面所有的優(yōu)化級(jí)別。現(xiàn)將各個(gè)級(jí)別說(shuō)明如下:
0級(jí)優(yōu)化:
1、常數(shù)折疊:只要有可能,編譯器就執(zhí)行將表達(dá)式化為常數(shù)數(shù)字的計(jì)算,其中包括運(yùn)行地址的計(jì)算。
2、簡(jiǎn)單訪問(wèn)優(yōu)化:對(duì)8051系統(tǒng)的內(nèi)部數(shù)據(jù)和位地址進(jìn)行訪問(wèn)優(yōu)化。
3、跳轉(zhuǎn)優(yōu)化:編譯器總是將跳轉(zhuǎn)延至最終目標(biāo)上,因此跳轉(zhuǎn)到跳轉(zhuǎn)之間的命令被刪除。
1級(jí)優(yōu)化:
1、死碼消除:無(wú)用的代碼段被消除。
2、跳轉(zhuǎn)否決:根據(jù)一個(gè)測(cè)試回溯,條件跳轉(zhuǎn)被仔細(xì)檢查,以決定是否能夠簡(jiǎn)化或刪除。
2級(jí)優(yōu)化:
1、數(shù)據(jù)覆蓋:適于靜態(tài)覆蓋的數(shù)據(jù)和位段被鑒別并標(biāo)記出來(lái)。連接定位器BL51通過(guò)對(duì)全局?jǐn)?shù)據(jù)流的分析,選擇可靜態(tài)覆蓋的段。
3級(jí)優(yōu)化:
1、“窺孔”優(yōu)化:將冗余的MOV命令去掉,包括不必要的從存儲(chǔ)器裝入對(duì)象及裝入常數(shù)的操作。另外如果能節(jié)省存儲(chǔ)空間或者程序執(zhí)行時(shí)間,復(fù)雜操作將由簡(jiǎn)單操作所代替。
4級(jí)優(yōu)化:
1、寄存器變量:使自動(dòng)變量和函數(shù)參數(shù)盡可能位于工作寄存器中,只要有可能,將不為這些變量保留數(shù)據(jù)存儲(chǔ)器空間。
2、擴(kuò)展訪問(wèn)優(yōu)化:來(lái)自IDATA、XDATA、PDATA和CODE區(qū)域的變量直接包含在操作之中,因此大多數(shù)時(shí)候沒(méi)有必要將其裝入中間寄存器。
3、局部公共子式消除:如果表達(dá)式中有一個(gè)重復(fù)執(zhí)行的計(jì)算,第一次計(jì)算的結(jié)果被保存,只要有可能,將被用作后續(xù)的計(jì)算,因此可從代碼中消除繁雜的計(jì)算。
4、CASE/SWITCH語(yǔ)句優(yōu)化:將CASE/SWITCH語(yǔ)句作為跳轉(zhuǎn)表或跳轉(zhuǎn)串優(yōu)化。
5級(jí)優(yōu)化:
1、全局公共子式消除:只要有可能,函數(shù)內(nèi)部相同的子表達(dá)式只計(jì)算一次。中間結(jié)果存入一個(gè)寄存器以代替新的計(jì)算。
2、簡(jiǎn)單循環(huán)優(yōu)化:以常量占據(jù)一段內(nèi)存的循環(huán)再運(yùn)行時(shí)被優(yōu)化。
6級(jí)優(yōu)化:
1、回路循環(huán):如果程序代碼能更快更有效地執(zhí)行,程序回路將進(jìn)行循環(huán)。
7級(jí)優(yōu)化:
1、擴(kuò)展入口優(yōu)化:在適合時(shí)對(duì)寄存器變量使用DPTR數(shù)據(jù)指針,指針和數(shù)組訪問(wèn)被優(yōu)化以減小程序代碼和提高執(zhí)行速度。
8級(jí)優(yōu)化:
1、公共尾部合并:對(duì)同一個(gè)函數(shù)有多處調(diào)用時(shí),一些設(shè)置代碼可被重復(fù)使用,從而減小程序代碼長(zhǎng)度。
9級(jí)優(yōu)化:
1、公共子程序塊:檢測(cè)重復(fù)使用的指令序列,并將它們轉(zhuǎn)換為子程序。C51甚至?xí)匦掳才糯a以獲得更多的重復(fù)使用指令序列。
當(dāng)然,優(yōu)化級(jí)別并非越高越好,應(yīng)該根據(jù)具體要求適當(dāng)選擇。
二、KEIL軟件概念名詞解析
1. uVision
uVision是KEIL公司開(kāi)發(fā)的一個(gè)集成開(kāi)發(fā)環(huán)境(IDE),和Eclipse類似。它包括工程管理,源代碼編輯,編譯設(shè)uVision置,下載調(diào)試和模擬仿真等功能,uVision有uVision2、uVision3、uVision4、uVision5四個(gè)版本,目前最新的版本是uVision5。它提供一個(gè)環(huán)境,讓開(kāi)發(fā)者易于操作,并不提供能具體的編譯和下載功能,需要軟件開(kāi)發(fā)者添加。uVisionu通用于KEIL的開(kāi)發(fā)工具中,例如MDK,PK51,PK166,DK251等。
2. MDK
MDK(Microcontroller Development Kit),也稱MDK-ARM、KEIL MDK、RealView MDK、KEIL For ARM,都是同一個(gè)東西。ARM公司現(xiàn)在統(tǒng)一使用MDK-ARM的稱呼,MDK的設(shè)備數(shù)據(jù)庫(kù)中有很多廠商的芯片,是專為微控制器開(kāi)發(fā)的工具,為滿足基于MCU進(jìn)行嵌入式軟件開(kāi)發(fā)的工程師需求而設(shè)計(jì),支持ARM7,ARM9,Cortex-M4/M3/M1,Cortex-R0/R3/R4等ARM微控制器內(nèi)核。
以上便是此次小編帶來(lái)的“單片機(jī)編程軟件”相關(guān)內(nèi)容,通過(guò)本文,希望大家對(duì)keil單片機(jī)編程軟件的編譯環(huán)境優(yōu)化等級(jí)以及uVision和MDK具備一定的了解。如果你喜歡本文,不妨持續(xù)關(guān)注我們網(wǎng)站哦,小編將于后期帶來(lái)更多精彩內(nèi)容。最后,十分感謝大家的閱讀,have a nice day!