日韩av成人在线观看_欧美裸体xxxxx_高清一区二区三区四区五区_亚洲福利视频久久

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

滬公網安備 31011802005521號

日韩av成人在线观看_欧美裸体xxxxx_高清一区二区三区四区五区_亚洲福利视频久久
99久久久久久99| 播五月开心婷婷综合| 欧美电影精品一区二区| 黑人巨大精品欧美黑白配亚洲| 欧美精品一区二区在线观看| 丁香婷婷综合网| 亚洲激情在线播放| 欧美一级黄色片| 丰满白嫩尤物一区二区| 亚洲自拍偷拍麻豆| 欧美成人午夜电影| 99热精品一区二区| 日韩和欧美一区二区三区| 久久久精品影视| 91极品视觉盛宴| 久久99九九99精品| 国产精品免费看片| 91.麻豆视频| 国产·精品毛片| 亚洲成人精品影院| 国产亚洲精品中文字幕| 欧美色综合久久| 国产一区二区三区| 亚洲线精品一区二区三区八戒| 精品免费日韩av| 91麻豆6部合集magnet| 久久国产视频网| 亚洲欧美日韩国产综合在线| 日韩欧美中文字幕精品| voyeur盗摄精品| 美女视频黄 久久| 最新高清无码专区| 精品国产免费人成电影在线观看四季 | 成人免费视频视频在线观看免费 | 久久婷婷久久一区二区三区| 色综合咪咪久久| 精品一区二区久久| 夜夜亚洲天天久久| 国产无人区一区二区三区| 欧美日韩中文字幕一区| 风间由美一区二区av101| 日日摸夜夜添夜夜添国产精品 | 亚洲欧美另类小说视频| 精品福利在线导航| 欧美色图激情小说| 北条麻妃一区二区三区| 另类小说视频一区二区| 一区二区三区国产精华| 亚洲国产精品精华液ab| 欧美一区二区三区在线看| 欧美xxxxx牲另类人与| 欧美在线999| 成人黄色大片在线观看| 久久69国产一区二区蜜臀| 一区二区三区产品免费精品久久75| 久久久久久久久蜜桃| 欧美顶级少妇做爰| 在线精品国精品国产尤物884a| 国产成人在线视频网址| 免费在线观看一区二区三区| 亚洲一区免费观看| 国产精品盗摄一区二区三区| 久久毛片高清国产| 欧美一级艳片视频免费观看| 欧美中文字幕亚洲一区二区va在线 | 色哟哟一区二区在线观看| 国产福利不卡视频| 美女国产一区二区三区| 婷婷激情综合网| 一区二区三区色| 中文字幕综合网| 国产欧美视频在线观看| 精品国产乱码久久久久久影片| 在线观看不卡一区| 91免费看片在线观看| 成人激情文学综合网| 国产成人av福利| 国产自产v一区二区三区c| 麻豆精品新av中文字幕| 日本人妖一区二区| 日韩精品免费专区| 日韩精品高清不卡| 天堂影院一区二区| 日韩国产欧美三级| 日韩成人伦理电影在线观看| 丝袜美腿高跟呻吟高潮一区| 婷婷国产v国产偷v亚洲高清| 亚洲大尺度视频在线观看| 亚洲一区二区成人在线观看| 亚洲综合色成人| 亚洲国产视频a| 亚洲成人免费看| 日韩一区精品视频| 蜜臀91精品一区二区三区| 久久精品国产99久久6| 另类小说一区二区三区| 精久久久久久久久久久| 国产一区在线看| 国产精品69毛片高清亚洲| 国产suv精品一区二区6| 成人免费不卡视频| 老司机免费视频一区二区三区| 图片区日韩欧美亚洲| 亚洲aaa精品| 婷婷综合五月天| 香港成人在线视频| 亚洲777理论| 亚洲一区二区精品视频| 亚洲成人免费电影| 午夜精品123| 日本色综合中文字幕| 日韩av午夜在线观看| 亚州成人在线电影| 美腿丝袜亚洲色图| 久久99精品久久久久久 | 一区二区三区日韩精品视频| 中文字幕在线观看一区| 亚洲私人黄色宅男| 亚洲欧洲成人精品av97| 亚洲欧洲av一区二区三区久久| 中文字幕一区二区三区在线播放| 亚洲欧洲国产日韩| 亚洲精品亚洲人成人网| 伊人性伊人情综合网| 亚洲一区在线观看免费| 日本亚洲天堂网| 九色综合国产一区二区三区| 国产一区二区三区电影在线观看| 国产精品亚洲а∨天堂免在线| 国产一区二区毛片| 久久日韩精品一区二区五区| 久久精品亚洲麻豆av一区二区 | 成人黄色777网| 色综合久久天天综合网| 欧美久久久久久蜜桃| 日韩三级高清在线| 国产日韩成人精品| 亚洲欧美日韩一区| 天天综合网天天综合色| 日韩电影在线一区| 国产99久久久国产精品潘金 | 欧美日韩你懂的| 4438亚洲最大| 国产欧美一区视频| 亚洲靠逼com| 三级欧美在线一区| 国产一区在线视频| 97se亚洲国产综合自在线观| 91精品国产色综合久久不卡蜜臀| ww亚洲ww在线观看国产| 亚洲欧美综合另类在线卡通| 亚洲国产视频一区| 国产一区二区三区香蕉| 不卡的av在线播放| 91精品欧美一区二区三区综合在 | 欧美日韩国产综合视频在线观看 | 国产三级欧美三级日产三级99| 国产欧美一区二区精品秋霞影院| 亚洲国产日日夜夜| 激情综合色播激情啊| 99re视频精品| 欧美一区二区久久| 国产精品久久久久久久久免费相片| 三级久久三级久久| 丁香啪啪综合成人亚洲小说| 欧美日韩日日夜夜| 国产亲近乱来精品视频| 亚洲图片欧美一区| 国产又粗又猛又爽又黄91精品| 色综合久久天天综合网| 日韩午夜激情视频| |精品福利一区二区三区| 日本中文在线一区| av激情亚洲男人天堂| 日韩视频一区二区三区在线播放 | 9191久久久久久久久久久| 欧美极品少妇xxxxⅹ高跟鞋| 亚洲国产精品久久人人爱| 国产乱一区二区| 欧美一级片免费看| 亚洲婷婷国产精品电影人久久| 一本大道久久a久久精二百| 91精品国产丝袜白色高跟鞋| 国产精品大尺度| 激情文学综合网| 欧美日韩免费高清一区色橹橹| 中文字幕日韩精品一区| 麻豆91精品视频| 在线精品视频免费播放| 久久精品日产第一区二区三区高清版 | 欧美精品一二三区| 国产精品久久久久一区二区三区| 亚洲色图色小说| 久久电影网电视剧免费观看| 欧美日韩在线三级| 国产精品入口麻豆原神| 久久av中文字幕片| 欧美视频在线观看一区| 国产精品久久久久久久裸模| 国产一区二区三区在线观看免费视频 |