日本中文在线,最近日本韩国高清免费观看,国产又爽又粗又猛的视频,亚洲第一AV无码专区

詳解優(yōu)化嵌入式軟件的七大技巧

2018-09-13 15:52:35分類:行業(yè)資訊4581

  
 

  早前的專欄中曾討論過在許多情況下需要優(yōu)化的嵌入式系統(tǒng)的關(guān)鍵特征,包括系統(tǒng)時(shí)序、代碼大小、RAM使用率和能耗。雖然優(yōu)化每個(gè)特征通常要求不同的方法和技術(shù),但開發(fā)人員在優(yōu)化嵌入式軟件時(shí)可以遵循幾個(gè)通用技巧。

  技巧1—總是創(chuàng)建基準(zhǔn)用于比較

  創(chuàng)建基準(zhǔn)用于比較優(yōu)化結(jié)果的必要性顯而易見,令人驚訝的是開發(fā)團(tuán)隊(duì)常常在沒有任何基準(zhǔn)的情況下匆忙開展優(yōu)化。基準(zhǔn)測量很重要,因?yàn)槊看蝺?yōu)化得到的改進(jìn)會越來越小。舉例來說,第一遍能耗優(yōu)化可能有20%的改進(jìn),第二次有10%,第三次5%,以此類推。開發(fā)人員應(yīng)了解這種趨勢,并將他們在系統(tǒng)中獲得的改進(jìn)量化為輸入次數(shù)的函數(shù)。

  技巧2—設(shè)定優(yōu)化目標(biāo)

  每一次優(yōu)化都比前一次需要更多的時(shí)間才能從系統(tǒng)中獲得極少量的改進(jìn)。開發(fā)團(tuán)隊(duì)需要仔細(xì)平衡他們的時(shí)間投入,并根據(jù)改進(jìn)結(jié)果判斷是否值得花這么多時(shí)間。一味悶頭做事很容易沉迷,可能花了數(shù)周時(shí)間才認(rèn)識到自己在優(yōu)化一個(gè)不再需要優(yōu)化的系統(tǒng)。因此在優(yōu)化開始之前,開發(fā)團(tuán)隊(duì)?wèi)?yīng)設(shè)定一個(gè)目標(biāo)值,達(dá)到這個(gè)目標(biāo),就表示優(yōu)化結(jié)果對當(dāng)前應(yīng)用來說足夠好,優(yōu)化過程已經(jīng)完成。

  技巧3—使用正確的測量工具

  如果沒有合適的測量工具,優(yōu)化一個(gè)系統(tǒng)是很困難的。舉例來說,如果不使用一種精確的方法來測量系統(tǒng)和微控制器的能耗,便很難完成能耗的優(yōu)化。開發(fā)人員經(jīng)常無法區(qū)分這兩種不同的能量測量,他們試圖減少實(shí)際上無法再減少的微控制器能耗。

  對性能優(yōu)化感興趣的開發(fā)人員可以看一看我在“親自動(dòng)手:Segger系統(tǒng)查看工具”中介紹的Segger系統(tǒng)查看工具,這款工具對于了解哪些

  函數(shù)正在獨(dú)占CPU非常有用。如果沒有能夠精確測量或可供開發(fā)人員查看系統(tǒng)行為的工具,那么在優(yōu)化系統(tǒng)時(shí)便抓不住重點(diǎn)。
 


 

  技巧4—使用優(yōu)化工具

  為了減小代碼大小或提高性能,嵌入式軟件的許多方面都可以優(yōu)化。一些情況下可以使用獨(dú)立的或附屬的工具鏈。Somnium DRT優(yōu)化器就是一種很好的優(yōu)化工具,可以與GCC一起用來優(yōu)化代碼大小、能量使用率和性能。

  不過有時(shí)候外部工具可能不是必需的,只要選擇正確的工具鏈就足夠了。我最近寫了一篇題為《開源與商用編譯器》的文章,說明了這樣一個(gè)事實(shí):在Coremark測試中,對于相同的微控制器和相同的測試條件,商用編譯器的得分總是高于GCC等開源編譯器。

  技巧5—使用編譯器屬性和#pragma指令

  我一般很不喜歡用#pragma指令或編譯器屬性。屬性和#pragma指令通常是不可移植的,改變編譯器可能會造成軟件缺陷。然而,在調(diào)整嵌入式軟件時(shí),開發(fā)人員通常沒有選擇。使用屬性和#pragma指令可以提高速度,并能根據(jù)實(shí)際情況有選擇地優(yōu)化某個(gè)功能?;谶@些理由,想要優(yōu)化軟件的開發(fā)人員應(yīng)該熟悉屬性的使用,而且要閱讀《用C語言編寫可移植的優(yōu)化程序》,這樣他們才知道如何編寫出可移植的最優(yōu)程序,并且沒有負(fù)面影響。

  技巧6—多做實(shí)驗(yàn)

  在優(yōu)化系統(tǒng)方面沒有一成不變的方法,開發(fā)人員不應(yīng)該局限于任何一種特殊的技術(shù)。有時(shí)候?qū)W習(xí)和優(yōu)化系統(tǒng)的最好方法是嘗試各種實(shí)驗(yàn)并分析其結(jié)果。

  當(dāng)我首次為了低功耗而優(yōu)化系統(tǒng)時(shí),做了很多實(shí)驗(yàn),也出現(xiàn)了一些錯(cuò)誤。通過實(shí)驗(yàn)過程和所記錄的結(jié)果,我就能夠理解什么有用,什么沒用,以及做哪些事是在浪費(fèi)資源和時(shí)間。如何最好地利用printf就是一個(gè)簡單的例子: 通過嘗試不同的驅(qū)動(dòng)模型可以發(fā)現(xiàn),很多方法都可以顯著提高開發(fā)人員使用printf時(shí)獲得的實(shí)時(shí)性能,而人們設(shè)想的結(jié)果通常遠(yuǎn)好于真實(shí)結(jié)果。

  技巧7—深入研究編譯器產(chǎn)生的指令

  在資源特別有限的應(yīng)用中,開發(fā)人員有時(shí)只需挽起袖子深入理解編譯器產(chǎn)生的指令。在將要執(zhí)行的三四個(gè)廣義指令間選擇三元操作符而不是if/else是有區(qū)別的,這很可能會導(dǎo)致應(yīng)用程序崩潰。

  雖然像C這樣的語言是標(biāo)準(zhǔn)的,但每種編譯器在優(yōu)化和產(chǎn)生機(jī)器指令時(shí)有少許差異。唯一現(xiàn)實(shí)的方法是檢查匯編語言,了解編譯器在做什么。

  不同應(yīng)用程序的優(yōu)化需求各不相同。小批量產(chǎn)生的應(yīng)用程序也許根本不需要優(yōu)化;而對于另外一些應(yīng)用程序,每個(gè)時(shí)鐘周期或每毫微安電流都很重要,則可能需要開發(fā)人員花大量時(shí)間從系統(tǒng)中榨出最后一點(diǎn)性能或能量。雖然每種系統(tǒng)都是不同的,但開發(fā)人員若熟記這些技巧,便為實(shí)現(xiàn)更高效的系統(tǒng)邁出了可喜的第一步。

  小結(jié)分享

  賽億方案十三年電子產(chǎn)品硬件及嵌入式軟件開發(fā)設(shè)計(jì)經(jīng)驗(yàn),累計(jì)開發(fā)產(chǎn)品電子應(yīng)用設(shè)計(jì)完成5000多個(gè)方案設(shè)計(jì);目前為客戶提供理念超前的手機(jī)APP開發(fā)、智能家居系統(tǒng)、電子技術(shù)、電子線路設(shè)計(jì)、PCB設(shè)計(jì)、電路板設(shè)計(jì)、單片機(jī)技術(shù)、智能控制、嵌入式系統(tǒng)等。如有產(chǎn)品方案開發(fā)意向,期待您的來訪。

上一篇:下一篇:
成年女人毛片视频喷潮| 100%双露奶头| 亚洲乱码精品精大量| 高清无码免费在线播放| 高清日韩一区二区| 青久在线视频| 绥德县| 久久久精品网| 日本不卡九区| 国产成人无码一二三区| 人人艹天天狠狠| 亚洲天堂一二三区| 91蜜桃蜜桃久久久| 欧美欧美伦院在线观看| 欧美性猛交xxx乱大交3蜜桃| 日韩y网| 18禁污污污污网站| WWW284AV免费无码红杏| 亚洲欧美日韩不卡| 欧美日韩专区一二三| 欧美人妻第七页| 中文字幕无码av在线| 免费国产a国产片高清| 亚洲中熟女| 国产欧美三级| 东京热人妻无码人| 91丨九色丨国产熟女| 一本色道久久综合亚洲精品不| 久久国产乱子伦视频| 亚洲色图中文字幕小说| 毛片三A级无码久久久一区| 美日韩一级大黄片| 在线精品国产成人综合 | 这里只有精品66| 国产精品 自在自线| 亚洲精品久城| 日夲五码视频网站| 色偷偷AV老熟女| 五月婷婷六月视频| www香蕉com| 亚洲视频一区二区在线观看|