日韩床上生活一级视频|能看毛片的操逼网站|色悠悠网站在线观看视频|国产免费观看A淫色免费|国产av久久久久久久|免费A级视频美女网站黄|国产毛片av日韩小黄片|热久久免费国产视频|中文字幕无码色色|成人在线视频99久久久

機電之家資源網(wǎng)
單片機首頁|單片機基礎(chǔ)|單片機應(yīng)用|單片機開發(fā)|單片機文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓(xùn)信息
贊助商
寶刀解密——KEIL技巧談(2)
寶刀解密——KEIL技巧談(2)
 更新時間:2008-8-17 16:48:19  點擊數(shù):6
【字體: 字體顏色

寶刀解密——KEIL技巧談(2)

 
   

3。優(yōu)化論

談到優(yōu)化,其實很多人都哭笑不得,因為在一個C51軟件工程師的生涯中,總要被KEIL的優(yōu)化耍那么一次到幾次。我被耍過,想必看著文章的你也被耍過,如果你回答說不,那只能說你寫的C51程序不多!
看看KEILC的優(yōu)化級別選項吧:
 

0-9共10個級別的優(yōu)化,0是最低,9最高,一個普通的程序,設(shè)置最高級別和最低級別,編譯后代碼量有時會相差很遠,以DX板DEMO程序為例,0級優(yōu)化后是14K的CODE,9級優(yōu)化后是10K的CODE,前后相差了4K。可見這個差別是多么的大。
事實上我們不需要知道對應(yīng)的各個級別KEIL會如何優(yōu)化你的程序或優(yōu)化了些什么,我們只需要以一種嚴(yán)謹(jǐn)?shù)膽B(tài)度去編寫和對待你的程序就可以了。在我個人的觀念中,程序在9級優(yōu)化后依然能保持完美無誤的運行,你才算了解KEIL的脾氣。
好了,還是說點正點的:
有些人習(xí)慣整體程序都選擇同一個優(yōu)化級,事實上每個C文件都可以有獨立的優(yōu)化級別的:

在工作區(qū)右鍵選擇你的模塊(.C)然后選取Options for File xxx就會出現(xiàn)如下界面:
 

在C51選項中就可以選擇優(yōu)化級別和警告級別等東西了,被獨立設(shè)置過的C文件會有特殊的標(biāo)記的:
 

用以提醒你這個文件的編譯處理并非默認(rèn)設(shè)置!
如果你覺得模塊優(yōu)化都不夠細的話,你可以考慮局部優(yōu)化,也就是說對某個函數(shù)實行某個級別的優(yōu)化。當(dāng)你發(fā)現(xiàn)9級優(yōu)化的時候某個函數(shù)總是變的不正常,但你又希望其它函數(shù)和程序段保持最高的簡潔度,那么局部優(yōu)化可以說是相當(dāng)有用的了。在KEIL手冊中有介紹這個功能:
#pragma OPTIMIZE(x) x就是你希望的優(yōu)化級別,一般應(yīng)用如下:

#pragma OPTIMIZE(6)
void FunA()
{
}
......
......

#pragma OPTIMIZE(9)
void FunB()
{
}

上面的意思就是說,在void FunA()到void FunB()之前的所有函數(shù),包括FunA在內(nèi),都采用6級的優(yōu)化,而從FunB開始直到之后,只要沒碰上#pragma OPTIMIZE,都采用9級優(yōu)化了。
OPTIMIZE還可以多一個參數(shù),就是speed和size,
用法: #pragma OPTIMIZE(9,speed)或#pragma OPTIMIZE(5,size)
對應(yīng)的就是9級優(yōu)化,以速度為主,或5級優(yōu)化,以空間最小為主。

4.StartUp.a51
在之前第一節(jié)的建立工程中就曾經(jīng)提到過StartUp.a51這個東西了,就是在工程初建的時候有個對話框用于選擇是否為工程添加這個a51文件。
 

其實這個文件給大家最最深刻的感覺就是:開機清空RAM。事實上它還有其他特別的用途的,例如初始化堆棧(很多人不知道KEILC一開始把堆棧設(shè)定為多少,事實上可以通過軟件仿真的時候從這個文件找到答案),然后是再入函數(shù)的虛擬堆棧的設(shè)置,還有更高級一點的,BANK的初始化。
舊版本KEIL自動為每個工程默認(rèn)添加相同的StartUp文件,后期的KEIL就有了上圖的選擇,如果選擇添加,則會為每個工程添加一個獨立的StartUp。用戶可以通過手工改寫StartUp.a51實現(xiàn)某些必要的上電初始化。例如最通常的:取消單片機開機清RAM功能!
關(guān)于STARTUP的介紹,我建議大家看看以下的文章,它的解釋非常詳盡。

[1] [2]  下一頁
  • 上一篇: 滅火裝置控制盒檢測儀的研制
  • 下一篇: 如何優(yōu)化C語言代碼
  • 發(fā)表評論   告訴好友   打印此文  收藏此頁  關(guān)閉窗口  返回頂部
    熱點文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機電之家 | 會員助手 | 免費鏈接

    點擊這里給我發(fā)消息66821730(技術(shù)支持)點擊這里給我發(fā)消息66821730(廣告投放) 點擊這里給我發(fā)消息41031197(編輯) 點擊這里給我發(fā)消息58733127(審核)
    本站提供的機電設(shè)備,機電供求等信息由機電企業(yè)自行提供,該企業(yè)負(fù)責(zé)信息內(nèi)容的真實性、準(zhǔn)確性和合法性。
    機電之家對此不承擔(dān)任何保證責(zé)任,有侵犯您利益的地方請聯(lián)系機電之家,機電之家將及時作出處理。
    Copyright 2007 機電之家 Inc All Rights Reserved.機電之家-由機電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機電一體化學(xué)會
    中國行業(yè)電子商務(wù)100強網(wǎng)站

    網(wǎng)站經(jīng)營許可證:浙B2-20080178-1