新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 嵌入式機器視覺系統優化研究

        嵌入式機器視覺系統優化研究

        作者: 時間:2016-10-10 來源:網絡 收藏

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

        本文引用地址:http://www.104case.com/article/201610/306025.htm

        c.jpg


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

        d.jpg


        應用在移動載體上的嵌入式機器通常對能耗也有較高的要求。Beagleboard—xM是一款功耗較低的產品,不需要風扇冷卻。電源管理主要是由PMIC模塊實現的。另外,通過更改系統的顯示設置,如屏保時間、待機時間等,來降低能耗。

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



        關鍵詞: 嵌入式 視覺系統

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 安新县| 东乌| 宁南县| 布拖县| 铜川市| 即墨市| 海南省| 都江堰市| 瑞丽市| 台南市| 奉贤区| 上虞市| 溆浦县| 江门市| 沂南县| 沛县| 农安县| 南汇区| 柯坪县| 镇远县| 盐城市| 吕梁市| 凤冈县| 江源县| 平利县| 襄城县| 油尖旺区| 丹巴县| 多伦县| 炎陵县| 军事| 绥化市| 华容县| 班戈县| 黄骅市| 团风县| 隆回县| 隆安县| 辰溪县| 安多县| 石棉县|