<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 嵌入式機(jī)器視覺系統(tǒng)優(yōu)化研究

          嵌入式機(jī)器視覺系統(tǒng)優(yōu)化研究

          作者: 時(shí)間:2016-10-10 來源:網(wǎng)絡(luò) 收藏

          2 LinuX操作系統(tǒng)優(yōu)化
          系統(tǒng)硬件資源較為有限,作為以應(yīng)用為中心的專用計(jì)算機(jī)系統(tǒng),需要對(duì)其在啟動(dòng)速度、實(shí)時(shí)性、系統(tǒng)尺寸、電源管理等方面進(jìn)行優(yōu)化。近年來,Linux憑借其優(yōu)良特性廣泛地應(yīng)用于系統(tǒng)。但是,作為一種原本為PC機(jī)設(shè)計(jì)的操作系統(tǒng),設(shè)計(jì)者開始并沒有考慮嵌入式應(yīng)用對(duì)啟動(dòng)速度的要求,導(dǎo)致其典型的啟動(dòng)時(shí)間一般在幾十秒或以上,這對(duì)用戶來說是不能容忍的。此外,隨著Linux內(nèi)核的不斷膨脹,啟動(dòng)時(shí)間越來越長(zhǎng)。因此,加快啟動(dòng)速度已經(jīng)成為嵌入式Linux系統(tǒng)亟待解決的關(guān)鍵問題之一。
          由于成本的考慮,Beagleboard—xM平臺(tái)沒有Flash,它是從MicroSD卡啟動(dòng)的。嵌入式Linux系統(tǒng)啟動(dòng)時(shí)序如表1所示。系統(tǒng)上電后,內(nèi)部ROM程序會(huì)從SD卡加載x—loader到SRAM。x—loader負(fù)責(zé)初始化系統(tǒng)(如時(shí)鐘、RAM等),并將u—boot從SD卡中加載到RAM。u—boot負(fù)責(zé)將內(nèi)核鏡像從SD卡加載到RAM中。內(nèi)核解壓并運(yùn)行,掛載文件系統(tǒng),執(zhí)行init進(jìn)程,登錄系統(tǒng),最終完成系統(tǒng)的啟動(dòng)。編寫perl腳本記錄串口輸出的時(shí)間,開機(jī)啟動(dòng)過程各部分耗時(shí)如圖3所示。在系統(tǒng)啟動(dòng)過程中,內(nèi)核解壓與運(yùn)行時(shí)間、系統(tǒng)自啟動(dòng)項(xiàng)加載時(shí)間占了整個(gè)系統(tǒng)啟動(dòng)的大部分時(shí)間。

          本文引用地址:http://www.ex-cimer.com/article/201610/306025.htm

          c.jpg


          本文對(duì)嵌入式Linux操作系統(tǒng)采取的優(yōu)化策略如下。
          1)修改并重新編譯u—boot源碼,取消開機(jī)3 s等待時(shí)間
          系統(tǒng)會(huì)檢測(cè)在開機(jī)等待時(shí)間內(nèi)用戶按鈕是否被按下,如果被按下,則可以進(jìn)行設(shè)置系統(tǒng)環(huán)境變量,修改啟動(dòng)選項(xiàng)等操作。這里可以跳過這一步,減少開機(jī)時(shí)間。
          2)裁剪內(nèi)核中不必要的功能部分
          嵌入式Ldnux操作系統(tǒng)內(nèi)核中除了進(jìn)程管理、內(nèi)存管理、任務(wù)調(diào)度等核心部分外,還提供了多種文件系統(tǒng)、網(wǎng)絡(luò)、硬件驅(qū)動(dòng)、內(nèi)核調(diào)試等功能模塊,但它們并非必不可少,例如手持移動(dòng)終端通常不需要NTFS等文件系統(tǒng),也不需要RAID和SCSI設(shè)備支持。所以,根據(jù)嵌入式系統(tǒng)應(yīng)用的具體需求配置Linux內(nèi)核才能減小Linux內(nèi)核的靜態(tài)映像體積,同時(shí)也能夠相應(yīng)減少這些功能模塊運(yùn)行時(shí)間的開銷。
          3)采用“-Os - mthumb”編譯選項(xiàng)進(jìn)行優(yōu)化以減小內(nèi)核鏡像大小
          -Os是gcc優(yōu)化選項(xiàng)中最深層次的優(yōu)化,相當(dāng)于是對(duì)代碼進(jìn)行了-O2的優(yōu)化,但不增加代碼尺寸。-mthumb表示使用16位短指令集,它具有更高的代碼密度,即占用存儲(chǔ)空間小,僅為32位ARM代碼規(guī)格的65%,但其性能卻下降的很少。
          4)去掉內(nèi)核打印輸出
          Linux系統(tǒng)啟動(dòng)時(shí),一般使用串口控制臺(tái)或VGA控制臺(tái)打印內(nèi)核啟動(dòng)信息,打印速度取決于串口的速度和處理器的速度,這在大多數(shù)嵌入式系統(tǒng)中要用數(shù)百毫秒的時(shí)間。
          5)用buildroot構(gòu)建輕量級(jí)的根文件系統(tǒng)
          常用于構(gòu)建根文件系統(tǒng)的工具有OE(OpenEmbedded)和buildroot等。OE是重量型的交叉編譯系統(tǒng)工具,可以用來構(gòu)建復(fù)雜的根文件系統(tǒng),但配置和定制過程難度很大,而且要耗費(fèi)約20 G的硬盤空間和十幾個(gè)小時(shí)的編譯時(shí)間。buildroot則是一個(gè)相當(dāng)小巧靈活的交叉編譯工具,用它定制和調(diào)整軟件包十分方便,而且buildroot提供了類似Linux kernel配置采用的配置菜單,易于使用。
          6)桌面環(huán)境使用X11而非Gnome或KDE
          X11即X Window系統(tǒng),它是一種可以用于Unix和類Unix操作系統(tǒng)的位圖顯示視窗系統(tǒng)。Gnome和KDE是兩種相對(duì)復(fù)雜的桌面環(huán)境。對(duì)于嵌入式機(jī)器,如果用戶界面不追求華麗,可以使用更為簡(jiǎn)潔的X11,以及簡(jiǎn)單的桌面管理器twm。
          7)禁用或暫緩啟動(dòng)某些啟動(dòng)項(xiàng)
          為了加速啟動(dòng),可以禁用不必要的啟動(dòng)項(xiàng),甚至一些必要的啟動(dòng)項(xiàng)可以在系統(tǒng)完成登錄后再啟動(dòng)。具體可以通過修改/etc/init.d/下自啟動(dòng)項(xiàng)快捷方式名稱的方法實(shí)現(xiàn)。
          $cd/etc/init.d/
          $mv S20network K20network
          當(dāng)系統(tǒng)完成開機(jī)啟動(dòng)后再啟動(dòng)該項(xiàng)目,可以用如下命令:
          $K20network start
          如表2所示,經(jīng)過優(yōu)化后,內(nèi)核鏡像大小由3.046 MB減小到2.797 MB,系統(tǒng)的啟動(dòng)時(shí)間(從復(fù)位到開啟應(yīng)用程序)由35.171 s縮短到10.056 s,基本滿足實(shí)際應(yīng)用的需要。嵌入式Linux操作系統(tǒng)優(yōu)化取得了明顯的效果。

          d.jpg


          應(yīng)用在移動(dòng)載體上的嵌入式機(jī)器通常對(duì)能耗也有較高的要求。Beagleboard—xM是一款功耗較低的產(chǎn)品,不需要風(fēng)扇冷卻。電源管理主要是由PMIC模塊實(shí)現(xiàn)的。另外,通過更改系統(tǒng)的顯示設(shè)置,如屏保時(shí)間、待機(jī)時(shí)間等,來降低能耗。

          3 應(yīng)用程序優(yōu)化
          機(jī)器往往涉及大量復(fù)雜的計(jì)算,大多采用C/C++等高效率的語(yǔ)言進(jìn)行開發(fā)。嵌入式系統(tǒng)對(duì)應(yīng)用軟件的質(zhì)量要求很高,在嵌入式開發(fā)中須注意對(duì)代碼進(jìn)行優(yōu)化,盡可能地提高代碼效率。本文從算法、代碼效率以及處理器的特性等方面出發(fā),為開發(fā)高效率嵌入式機(jī)器視覺應(yīng)用程序提供了些經(jīng)驗(yàn)。



          關(guān)鍵詞: 嵌入式 視覺系統(tǒng)

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();