国产91蜜臀视频-久久久久精品久久九九-日韩人妻激情在线观看-国产熟女精品女视频-搡老熟女一区二区三区四区视频-国产成人精品在线观看免费-一级特黄大片欧美久久久久l99-欧美在线视频一区在线观看-欧美日韩亚洲国产自拍偷拍,日韩成人av电影网,99久久人妻丰满熟妇,国产一区二区三区青青草

您好,歡迎進(jìn)入上海涌迪工業(yè)自動(dòng)化有限公司網(wǎng)站!
一鍵分享網(wǎng)站到:
產(chǎn)品搜索
PRODUCT SEARCH
產(chǎn)品分類
PRODUCT CLASSIFICATION
您現(xiàn)在的位置:首頁(yè) >> 新聞動(dòng)態(tài) >> 6RA80直流調(diào)速器淺析嵌入式程序設(shè)計(jì)中的優(yōu)化
6RA80直流調(diào)速器淺析嵌入式程序設(shè)計(jì)中的優(yōu)化
瀏覽次數(shù):1326發(fā)布日期:2022-06-25
   直流調(diào)速器在數(shù)控機(jī)床、造紙印刷、紡織印染、光纜線纜設(shè)備、包裝機(jī)械、電工機(jī)械、食品加工機(jī)械、橡膠機(jī)械、生物設(shè)備、印制電路板設(shè)備、實(shí)驗(yàn)設(shè)備、焊接切割、輕工機(jī)械、物流輸送設(shè)備、機(jī)車車輛、醫(yī)設(shè)備、通訊設(shè)備、雷達(dá)設(shè)備、衛(wèi)星地面接受系統(tǒng)等行業(yè)廣泛應(yīng)用。
  直流調(diào)速器淺析嵌入式程序設(shè)計(jì)中的優(yōu)化:
  嵌入式系統(tǒng)由于受功耗、成本和體積等因素的制約,嵌入式微處理器的處理能力與桌面系統(tǒng)處理器相比也存在較大差距,故嵌入式系統(tǒng)對(duì)程序運(yùn)行的空間和時(shí)間要求更為苛刻。通常,需要對(duì)嵌入式應(yīng)用程序進(jìn)行性能優(yōu)化,以滿足嵌入式應(yīng)用的性能需求。
  1 嵌入式程序優(yōu)化的類型
  嵌入式應(yīng)用程序優(yōu)化,指在不改變程序功能的情況下,通過修改原來程序的算法、結(jié)構(gòu),并利用軟件開發(fā)工具對(duì)程序進(jìn)行改進(jìn),使修改后的程序運(yùn)行速度更高或代碼尺寸更小。
  按照優(yōu)化的側(cè)重點(diǎn)不同,程序優(yōu)化可分為運(yùn)行速度優(yōu)化和代碼尺寸優(yōu)化。運(yùn)行速度優(yōu)化是指在充分掌握軟硬件特性的基礎(chǔ)上,通過應(yīng)用程序結(jié)構(gòu)調(diào)整等手段來縮短完成定任務(wù)所需的運(yùn)行時(shí)間;代碼尺寸優(yōu)化則是指應(yīng)用程序在能夠正確實(shí)現(xiàn)所需功能的前提下,盡可能減小程序的代碼量。實(shí)際應(yīng)用中,這兩者往往是相互矛盾的,為了提高程序運(yùn)行速度,就要以增加代碼量為代價(jià);而為了減小程序代碼尺寸,可能又要以降低程序運(yùn)行速度為代價(jià)。因此,在對(duì)程序進(jìn)行優(yōu)化之前,應(yīng)根據(jù)實(shí)際需要來制定具體的優(yōu)化策略。隨著計(jì)算機(jī)和微電子技術(shù)的不斷發(fā)展,存儲(chǔ)空間已不再是制約嵌入式系統(tǒng)的主要因素,因此本文主要討論運(yùn)行速度優(yōu)化。
  2 嵌入式程序優(yōu)化遵循的原則
  嵌入式程序優(yōu)化主要遵循以下3個(gè)原則。
 ?、俚刃г瓌t:優(yōu)化前后程序?qū)崿F(xiàn)的功能一致。
  ②有效原則:優(yōu)化后要比優(yōu)化前運(yùn)行速度快或占用存儲(chǔ)空間小,或二者兼有。
 ?、劢?jīng)濟(jì)原則:優(yōu)化程序要付出較小的代價(jià),取得較好的結(jié)果。
  3 嵌入式程序優(yōu)化的主要方面
  嵌入式程序的優(yōu)化分為3個(gè)方面:算法和數(shù)據(jù)結(jié)構(gòu)優(yōu)化、編譯優(yōu)化以及代碼優(yōu)化。
  3.1 算法和數(shù)據(jù)結(jié)構(gòu)優(yōu)化
  算法和數(shù)據(jù)結(jié)構(gòu)是程序設(shè)計(jì)的核心所在,算法的好壞在很大程度上決定了程序的優(yōu)劣。為了實(shí)現(xiàn)某種功能,通??梢圆捎枚喾N算法,不同算法的復(fù)雜度和效率差別很大。選擇一種高效的算法或?qū)λ惴ㄟM(jìn)行優(yōu)化,可以使應(yīng)用程序獲得更高的優(yōu)化性能。例如:在數(shù)據(jù)搜索時(shí),二分查找法要比順序查找法快。遞歸程序需要大量的過程調(diào)用,并在堆棧中保存所有返回過程的局部變量,時(shí)間效率和空間效率都非常低;若根據(jù)實(shí)際情況對(duì)遞歸程序采用迭代、堆棧等方法進(jìn)行非遞歸轉(zhuǎn)換,則可大幅度提高程序的性能。
  數(shù)據(jù)結(jié)構(gòu)在程序的設(shè)計(jì)中也占有重要的地位。例如:如果在一些無(wú)序的數(shù)據(jù)中多次進(jìn)行插入、刪除數(shù)據(jù)項(xiàng)操作,那么采用鏈表結(jié)構(gòu)就會(huì)比較快。
  算法和數(shù)據(jù)結(jié)構(gòu)優(yōu)化是的優(yōu)化技術(shù)。
  3.2 編譯優(yōu)化
  現(xiàn)在,很多的編譯器都具有一定的代碼優(yōu)化功能。在編譯時(shí),借用并行程序設(shè)計(jì)技術(shù),進(jìn)行相關(guān)性分析;獲得源程序的語(yǔ)義信息,采用軟件流水線、數(shù)據(jù)規(guī)劃、循環(huán)重構(gòu)等技術(shù),自動(dòng)進(jìn)行一些與處理器體系無(wú)關(guān)的優(yōu)化,生成高質(zhì)量的代碼。許多編譯器有不同級(jí)別的優(yōu)化選項(xiàng),可以選用一種合適的優(yōu)化方式。通常情況下,如果選用了高級(jí)別的優(yōu)化方式,那么編譯器將片面追求代碼的優(yōu)化,有時(shí)會(huì)導(dǎo)致錯(cuò)誤。
  另外,還有一些專用的編譯器針對(duì)某些體系結(jié)構(gòu)進(jìn)行了優(yōu)化設(shè)計(jì),可以充分利用硬件資源來生成高質(zhì)量的代碼。例如:Microsoft eMbedded Visual C++版的Intel編譯器*針對(duì)Intel XScale體系,經(jīng)過高度優(yōu)化,能創(chuàng)建運(yùn)行速度更快的代碼。此編譯器采用了多種優(yōu)化技術(shù),包括優(yōu)化指令管道操作的調(diào)度技術(shù)、雙重加載與存儲(chǔ)Intel XScale技術(shù)功能支持以及過程間優(yōu)化(將函數(shù)使用的變量存放到寄存器,以便快速訪問)等。
  在嵌入式軟件開發(fā)過程中應(yīng)選擇一種優(yōu)化能力強(qiáng)的編譯器,充分利用其代碼優(yōu)化功能,生成高效的代碼,提高程序的運(yùn)行效率。
  3.3 代碼優(yōu)化
  代碼優(yōu)化,就是采用匯編語(yǔ)言或更精簡(jiǎn)的程序代碼來代替原有的代碼,使編譯后的程序運(yùn)行效率更高。編譯器可以自動(dòng)完成程序段和代碼塊范圍內(nèi)的優(yōu)化,但很難獲取程序語(yǔ)義信息、算法流程和程序運(yùn)行狀態(tài)信息,因而需要編程人員進(jìn)行手工優(yōu)化。以下是一些常用的優(yōu)化技術(shù)和技巧。
  (1)代碼替換
  使用周期短的指令代替周期長(zhǎng)的指令,以降低運(yùn)算的強(qiáng)度。
 ?、贉p少除法運(yùn)算。用關(guān)系運(yùn)算符兩邊乘除數(shù)避免除法操作,還有一些除法和取模的運(yùn)算可以用位操作來代替。因?yàn)槲徊僮髦噶钪恍枰粋€(gè)指令周期,而“/”運(yùn)算則需要調(diào)用子程序,代碼長(zhǎng),執(zhí)行慢。例如:
  優(yōu)化前if((a/b)>c)和a=a/4
  優(yōu)化后if(a>(b*c))和a=a>>2
  ②減少乘方運(yùn)算。例如:
  優(yōu)化前a=pow(a,3.0)
  優(yōu)化后a=a*a*a
 ?、凼褂冒准?、自減指令。例如:
  優(yōu)化前a=a+1、a=a-l
  優(yōu)化后a++、a--或inc、dec
 ?、鼙M量使用小的數(shù)據(jù)類型。在所定義的變量滿足使用要求的條件下,優(yōu)先使用順序?yàn)椋鹤址?char)>整型(im)>長(zhǎng)整型(long int)>浮點(diǎn)型(float)。
  對(duì)除法來說,使用無(wú)符號(hào)數(shù)比有符號(hào)數(shù)會(huì)有更高的效率。在實(shí)際調(diào)用中,盡量減少數(shù)據(jù)類型的強(qiáng)制轉(zhuǎn)換;少用浮點(diǎn)運(yùn)算,如果運(yùn)算的結(jié)果能夠控制在誤差之內(nèi),則可用長(zhǎng)整型代替浮點(diǎn)型。
  (2)全局變量與局部變量
  少用全局變量,多用局部變量。全局變量是放在數(shù)據(jù)存儲(chǔ)器中的,定義了全局變量,MCU就少了一個(gè)可以利用的數(shù)據(jù)存儲(chǔ)器空間,太多的全局變量,會(huì)導(dǎo)致編譯器無(wú)足夠的內(nèi)存分配;而局部變量則大多定位于MCU內(nèi)部的寄存器中。在絕大多數(shù)的MCU中,使用寄存器的操作速度比數(shù)據(jù)存儲(chǔ)器快,指令也更靈活,有利于生成質(zhì)量更高的代碼,而且局部變量所占用的寄存器和數(shù)據(jù)存儲(chǔ)器在不同的模塊中可以重復(fù)利用。
  (3)使用寄存器變量
  當(dāng)一個(gè)變量被頻繁讀/寫時(shí),需要反復(fù)訪問內(nèi)存,花費(fèi)大量的存取時(shí)間。為了提高訪問效率,可以使用CPU寄存器變量,不需要訪問內(nèi)存,直接進(jìn)行讀/寫。循環(huán)次數(shù)較多的循環(huán)控制變量及循環(huán)體內(nèi)反復(fù)使用的變量均可定義為寄存器變量,而循環(huán)計(jì)數(shù)是應(yīng)用寄存器變量的*。只有局部自動(dòng)變量和形參才可以定義為寄存器變量。因?yàn)榧拇嫫髯兞繉儆趧?dòng)態(tài)存儲(chǔ)方式,因此凡需要采用靜態(tài)存儲(chǔ)方式的變量都不能定義為寄存器變量。寄存器變量的說明符是register。下面是一個(gè)采用寄存器變量的例子:
  (4)減少或避免執(zhí)行耗時(shí)的操作
  應(yīng)用程序的大量運(yùn)行時(shí)問通常花費(fèi)在關(guān)鍵程序模塊,關(guān)鍵模塊往往包含循環(huán)或嵌套循環(huán)。減少循環(huán)中耗時(shí)的操作,可以提高程序的執(zhí)行速度。常見的耗時(shí)操作有:輸入/輸出操作、文件訪問、圖形界面操作和系統(tǒng)調(diào)用等。其中,如果無(wú)法避免文件的讀/寫,那么對(duì)文件的訪問將是影響程序運(yùn)行速度的一大因素。提高文件訪問速度的方法有兩種:一種是采用內(nèi)存映射文件;另一種是使用內(nèi)存緩存。
  (5)switch語(yǔ)句用法的優(yōu)化
  編程時(shí),對(duì)case值按照可能性排序,將最可能發(fā)生的情況放在第一個(gè),最不可能的情況放在最后一個(gè),可以提高switch語(yǔ)句塊的執(zhí)行速度。
  (6)循環(huán)體的優(yōu)化
  循環(huán)體是程序設(shè)計(jì)和優(yōu)化的重點(diǎn),對(duì)于一些不需要循環(huán)變量參加運(yùn)算的模塊,可以把它放到循環(huán)的外面。對(duì)于次數(shù)固定的循環(huán)體,for循環(huán)比while循環(huán)效率更高,減計(jì)數(shù)循環(huán)比增計(jì)數(shù)循環(huán)速度快。例如:
  實(shí)際運(yùn)行時(shí),每次循環(huán)需要在循環(huán)體外加兩條指令:一條減法指令(減少循環(huán)計(jì)數(shù)值)和一條條件分支指令。這些指令稱為“循環(huán)開銷”。在ARM處理器上,減法指令需要1個(gè)周期,條件分支指令需要3個(gè)周期,這樣每個(gè)循環(huán)另加了4個(gè)周期的開銷??梢圆捎醚h(huán)展開的方法來提高循環(huán)運(yùn)行的速度,即:重復(fù)循環(huán)主題多次,并按同樣的比例減少循環(huán)次數(shù)來減小循環(huán)的開銷,以增加代碼尺寸。來?yè)Q取程序的運(yùn)行速度。。
  (7)函數(shù)調(diào)用
  高效的調(diào)用函數(shù),盡量限制使用函數(shù)的參數(shù)個(gè)數(shù),不要超過4個(gè)。ARM調(diào)用時(shí),4個(gè)以下的形參通過寄存器傳遞,第5個(gè)以上的形參通過存儲(chǔ)器棧傳遞。如果有更多的參數(shù)調(diào)用,則可將相關(guān)的參數(shù)組織在一個(gè)結(jié)構(gòu)體內(nèi),用傳遞結(jié)構(gòu)體指針來代替參數(shù)。
  (8)內(nèi)聯(lián)函數(shù)和內(nèi)嵌匯編
  對(duì)性能影響大的重要函數(shù)可以使用關(guān)鍵字_inline內(nèi)聯(lián),會(huì)省去調(diào)用函數(shù)的開銷,負(fù)面影響是增加了代碼尺寸。程序中對(duì)時(shí)間要求苛刻的部分可以用內(nèi)嵌匯編來編寫,通??梢詭硭俣壬系娘@著提高。
  (9)查表代替計(jì)算
  在程序中盡量不進(jìn)行非常復(fù)雜的運(yùn)算,如浮點(diǎn)數(shù)的開方。對(duì)于這些消耗時(shí)間和資源的運(yùn)算,可以采用空間換取時(shí)間的方法。預(yù)先將函數(shù)值計(jì)算出來,置于程序存儲(chǔ)區(qū)中,以后程序運(yùn)行時(shí)直接查表即可,減小了程序執(zhí)行過程中重復(fù)計(jì)算的工作量。
  (10)使用針對(duì)硬件優(yōu)化的函數(shù)庫(kù)
  Intel公司為XScale處理器設(shè)計(jì)的GPP(Graphics Performance Primitives library)/IPP(Integrated Perform-ance Primitives library)庫(kù),針對(duì)多媒體處理、圖形處理和數(shù)值運(yùn)算的一些典型操作和算法進(jìn)行了手工優(yōu)化,可以很好地發(fā)揮XScale硬件的計(jì)算潛能,達(dá)到很高的執(zhí)行效率。
  (11)利用硬件特性
  為了提高程序的運(yùn)行效率,要充分利用硬件特性來減小其運(yùn)行開銷,例如減少中斷次數(shù)、利用DMA傳輸方式等。
  CPU對(duì)各種存儲(chǔ)器的訪問速度排序依次為:CPU內(nèi)部RAM>外部同步RAM>外部異步RAM>Flash/ROM。對(duì)于已經(jīng)燒錄在Flash或ROM中的程序代碼,如果讓CPU直接從中讀取代碼執(zhí)行,運(yùn)行速度較慢,則可在系統(tǒng)啟動(dòng)后將Flash或ROM中的目標(biāo)代碼拷貝至RAM中后執(zhí)行,以提高程序的運(yùn)行速度。
  4 結(jié)論
  嵌入式程序的性能優(yōu)化與軟件的開發(fā)周期、開發(fā)成本、軟件的可讀性之聞通常存在矛盾。要權(quán)衡利弊,作出折中的選擇。將算法和數(shù)據(jù)結(jié)構(gòu)優(yōu)化作為選優(yōu)化技術(shù);然后根據(jù)功能、性能差異和投資預(yù)算等因素選擇高效的編譯器、系統(tǒng)運(yùn)行庫(kù)和圖形庫(kù);使用性能監(jiān)測(cè)工具偵測(cè)占主要運(yùn)行時(shí)間的程序熱點(diǎn),采用代碼優(yōu)化手段對(duì)其進(jìn)行優(yōu)化;最后使用高效的編譯器進(jìn)行編譯優(yōu)化,從而得到高質(zhì)量的代碼。

滬公網(wǎng)安備 31011802005521號(hào)

久久久久久久久久久久久久久一区-国产 中文字幕在线观看-麻豆无套内谢少妇在线观看-91久久精品国产成人 | 日韩美女淫语av在线-国产中文字幕在线免费-超碰在线免费日-一区二区三区 欧美视频 | 国内精品麻豆美女在线播放视频-国产99精品久久久久-国产又粗又猛又黄的软件-日韩欧美综合久久久 久久久91大神精品-久久婷婷精品二区二区蜜臀av-日韩丰满激情视频在线-136国产福利精品导航网址 伊人久久一二三区-国产69精品久久久久久-蜜桃一区二区三区在线毛片-欧美日韩中文字幕制服丝袜 | 久久精品俺也去av-18禁精品网站久久久久久-日韩激情熟女中文字幕-91久久久久久久久久久久91 | 精品人妻久久久久久中文字幕-久久97久久精品免-99久久婷婷国产一区二区免费-2012年最好看的中文字幕 | 国内精品久久久久久久性色-亚洲午夜久久久久久97-91精品婷婷国产综合久久韩漫-超碰免日天天干夜夜爽 | 久久男人的天堂成人-国产一区二区在线红桃-久久精品国产99久久99久久免费-超碰97人人做人人爱亚洲尤物 | 综合久久777精品-高清国产av一区二区三区-国产乱子伦一区二区三区免看-日韩av大片在线免费看 | 99九九久久国产精品-99蜜桃在线观看免费视频网站-丰满人妻中文字幕合集-蜜桃一区二区在线视频 | 五月婷婷六月丁香综合-久久久久人妻精品一区-免费在线观看视频999-日韩精品久久久久久免费 | 久久精品视频一区二区三区-国产欧美一区二区三区在-国产午夜精品久久久久久综合-午夜精品久久久久久不卡av | 99久久综合国产精品-亚洲av又爽av又色av又黄-日韩毛片在线播-欧美日韩成人亚洲欧美 | 天天舔天天操天天淫-91精品1区2区3区-熟女91免费视频区-欧美极品一区二区在线 | 超碰在线免费最新-97伊人超碰国产精品-成人精品视频免费在线-国产一区二区三区999 | 91久久国产综合久久91精-午夜老司机视频在线-久久久久久久久久久欧美精品-久久一二三区狠狠婷婷 久久精品亚洲国产av-麻豆91精品91久久久的优点-欧美日韩免费做爰大片-yellow字幕中文在线 | 欧美 日韩综合在线-欧美日韩国产制服丝袜在线-欧美少妇内射精品-亚洲国产电影av麻豆 | 白石茉莉奈精品一区二区在线播放-欧美日韩色三级-天天射天天插天天爱-久久99这里只有精品6 | 制服丝袜在线人妻中文字幕-少妇体内射精一区二区-激情 色 视频-91人妻久久久久人妻 | 成人免费视频人妻视频-久久玩久久,人精品-中文字幕日韩精品在线-美女 激情 五月天 | 婷婷六月丁香久久综合-天堂av亚洲av国产av在线-99热99爱在线观看-97久久人澡人妻人人做人人爽 | 亚洲综合久久av在线-91一区二区精品综合久久久久-国精产品一区一区二区三区-91国产精品久久久久久久久 | 日本精品视频一区二区三区免费-麻豆免费在线观看视频网站-日韩高清av在线免费观看网址-激情丁香花五月天 | 精品久久久久18免费禁播-欧美日韩 经典三级-中文字幕妻一区二区-亚洲欧美日韩综合图片厕所偷拍 | 国产毛毛片一区二区三区四区-久久成人黄色在线在线-真实玩弄白嫩丰满人妻少妇三级-日韩av在线一二三区 | 91人妻成熟一区二区-国产成人a亚洲精品网-99久久精品一区二区三区免费看-国产欧美日韩亚洲一区二区三区 | 国产亚洲中文久久网久久综合-成人午夜精品一区二区三区-人妻精品久久久久中文字幕九色-国产美女淫秽一区二区三区 | 99热在线观看免费国产-九九99九九99久久精品在线-老熟妇一区二在三区-91中文看片片成人 | 超碰97日本人人做人人爱-91精品久久人人妻人人做人人爱-天天射天天舔天天射-一区二区欧美日韩亚洲 | 婷婷久久综合久网站-美女 久久免费-国产精品久久国产精品99 gif-99在线播放精品视频 | julia中文字幕久久亚洲精品-美女18禁一区二区三区视频网站-99国产精品18久久久久久白浆-欧美激情一区二区三区在线观看的 | 日韩之精品视频-北条麻妃一区二区在线视频-免费观看欧美一区二区三区-久久久久亚洲精品中文字幕蜜月 | 中文字幕mv在线播放-婷婷熟女激情精品久久久-久久久久久精品免费亚瑟-麻豆伦理片在线观看 | 中文字幕亚洲欧美国产-亚洲中文aⅴ中文字幕在线-日韩人妻精品第一页-中文字幕人成乱码人妻 | 在线观看污污的视频精品久-国产免费看一区二区三区四区-国内自拍色激情亚洲-69乱人伦国语对白 | 在线观看污污的视频精品久-国产免费看一区二区三区四区-国内自拍色激情亚洲-69乱人伦国语对白 | 视频一区二区 国产-国产老熟女另类视频-一区二区三区不卡高清视频-亚洲中文字幕日韩av | x8x8午夜黄大色黄大片美女-人人妻人人爱人人射-人妻熟女中文字幕精选-免费精品少妇熟女三区四区 亚洲少妇久久嫩13-国产在线成人小视频-91亚洲精品99久91在线传媒-蜜臀av噜噜一区二区三区 | 久久久精品久久久99-中文字幕偷拍自拍av-极品人妻美妇一区二区三区-国产区域一区二区三区 | 婷婷久久综合久网站-美女 久久免费-国产精品久久国产精品99 gif-99在线播放精品视频 | 久久夜夜五月天丁香-人妻中文字幕一区二三区-激情五月综合激情-色综合久久夜色精品国产天堂 | 超碰97日本人人做人人爱-91精品久久人人妻人人做人人爱-天天射天天舔天天射-一区二区欧美日韩亚洲 |