新聞中心

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

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

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

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

本文引用地址:http://m.butianyuan.cn/article/201610/306025.htm

c.jpg


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

d.jpg


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

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



評論


相關推薦

技術專區(qū)

關閉