• 招生咨詢熱線:4008-569-579 
  • 手機(jī)版
    用手機(jī)掃描二維碼直達(dá)商品手機(jī)版
招生咨詢熱線
4008-569-579
機(jī)構(gòu)主頁 > 培訓(xùn)資料 > 嵌入式培訓(xùn)機(jī)構(gòu)科普嵌入式優(yōu)化技巧
機(jī)構(gòu)主頁 > 培訓(xùn)資料>嵌入式培訓(xùn)機(jī)構(gòu)科普嵌入式優(yōu)化技巧

嵌入式培訓(xùn)機(jī)構(gòu)科普嵌入式優(yōu)化技巧

來源:廣州達(dá)內(nèi)教育        時(shí)間:2023-05-30        熱度:30℃        返回列表

      嵌入式的普遍被運(yùn)用,讓嵌入式被越來越多的人所認(rèn)識(shí),而在運(yùn)用嵌入式技術(shù)的時(shí)候優(yōu)化軟件也是嵌入式工程師必不可少做的一件事情了。那么嵌入式技術(shù)優(yōu)化有一些什么樣的小技巧呢?下面達(dá)內(nèi)科技的小編就給大家講解下,讓大家在運(yùn)用到這些小技巧的時(shí)候可以更加的得心應(yīng)手。

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


  創(chuàng)建基準(zhǔn)用于比較優(yōu)化結(jié)果的必要性顯而易見,令人驚訝的是開發(fā)團(tuán)隊(duì)常常在沒有任何基準(zhǔn)的情況下匆忙開展優(yōu)化?;鶞?zhǔn)測(cè)量很重要,因?yàn)槊看蝺?yōu)化得到的改進(jìn)會(huì)越來越小。舉例來說,遍能耗優(yōu)化可能有20%的改進(jìn),第二次有10%,第三次5%,以此類推。開發(fā)人員應(yīng)了解這種趨勢(shì),并將他們?cè)谙到y(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)識(shí)到自己在優(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é)果對(duì)當(dāng)前應(yīng)用來說足夠好,優(yōu)化過程已經(jīng)完成。


  技巧3—使用正確的測(cè)量工具


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


  對(duì)性能優(yōu)化感興趣的開發(fā)人員可以看一看我在“親自動(dòng)手:Segger系統(tǒng)查看工具”中介紹的Segger系統(tǒng)查看工具,這款工具對(duì)于了解哪些 函數(shù)正在獨(dú)占CPU非常有用。如果沒有能夠精確測(cè)量或可供開發(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í)候外部工具可能不是必需的,只要選擇正確的工具鏈就足夠了。在Coremark測(cè)試中,對(duì)于相同的微控制器和相同的測(cè)試條件,商用編譯器的得分總是高于GCC等開源編譯器。


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


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


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


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


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


  以上就是達(dá)內(nèi)科技的小編給大家整理的關(guān)于嵌入式技巧優(yōu)化的內(nèi)容,希望對(duì)大家有一定的幫助,如果說對(duì)于嵌入式技術(shù)你有遇到什么樣的難題的話,可以點(diǎn)擊咨詢我們的在線客服,會(huì)有專業(yè)的講師給你進(jìn)行解答。想要學(xué)習(xí)嵌入式技術(shù)的話也可以來我們公司進(jìn)行實(shí)地考察,或者是點(diǎn)擊我們文章下面的獲取試聽資格按鈕來獲取我們的嵌入式培訓(xùn)免費(fèi)課程試聽資格,來和我們的講師進(jìn)行面對(duì)面的交流和溝通。

電話咨詢

電話咨詢

咨詢電話:
4008-569-579
回到頂部

回到頂部