新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應用 > 三種主流嵌入式圖形用戶界面的移植及性能比較

三種主流嵌入式圖形用戶界面的移植及性能比較

作者:國防科技大學(長沙)電子科學與工程學院407教研室 丁丁 習勇 魏急波 時間:2004-09-16 來源:電子產(chǎn)品世界 收藏


摘  要:本文在ARM920T開發(fā)板上對MiniGUI、MicroWindows和Qt/Embedded三種GUI進行了移植,并在此基礎(chǔ)上對這三種目前主流的GUI進行了性能上的比較。

關(guān)鍵詞:GUI;圖形用戶界面;交叉編譯;移植

引言

  與通用的GUI系統(tǒng)相比,嵌入式系統(tǒng)下對GUI基本要求包括:輕型、占用資源少、高性能、高可靠性和可配置。目前,面向嵌入式Linux系統(tǒng)的有代表性的GUI系統(tǒng)有北京飛漫軟件公司的MiniGUI、美國Century軟件公司的MicroWindows、挪威Troltech公司的Qt/Embedded。本文對這三種主流的GUI系統(tǒng)進行了移植,并對它們的性能進行了比較。

三種嵌入式GUI的移植

  我們采用的項目平臺是華恒科技公司提供的用于高端手持設(shè)備、微型智能控制設(shè)備的HHARM2410-FEC-R1開發(fā)套件,采用203MHz 的ARM920T 內(nèi)核的處理器S3C2410。

  HHARM2410-FEC-R1 套件由核心板和底板(外設(shè)板或稱基本板)組成,核心板上集成Samsung 公司S3C2410 處理器,64MB SDRAM以及16MB 的FLASH(閃存),為我們進行嵌入式GUI研發(fā)提供了足夠的空間。底板上則提供以下外設(shè)接口:一個四線RS-232 串口(COM1),一個10M/100M自適應以太網(wǎng)接口,一個TFT LCD接口, 一個觸摸屏接口。核心板和底板配合即構(gòu)成一個最小的完整應用系統(tǒng)。

  移植過程中我們采取了宿主機和目標板的開發(fā)模式。宿主機是一臺運行Linux 的PC 機服務器,目標板即開發(fā)板。先在宿主機上調(diào)試通過后,再移植到目標板上。

移植工作主要集中在兩個方面:

  在華恒開發(fā)板附帶的軟件包中,已經(jīng)包括有了交叉編譯所需要的二進制工具Binutils、標準C函數(shù)庫libc以及生成ARM平臺代碼的x86交叉編譯器gcc、g++等工具軟件包。將這些工具軟件安裝到宿主機上,將該安裝路徑添加至PATH環(huán)境變量中去,以便shell能夠找得到,這樣就完成了交叉編譯環(huán)境的設(shè)置。

  接下來就可以將GUI運行所需要的資源文件和可執(zhí)行文件都采取交叉的方式進行編譯,然后將編譯生成的文件添加到原來的文件系統(tǒng)中去,就可以將其下載到目標板上進行調(diào)試了。

  下面著重對Mini GUI系統(tǒng)的移植進行介紹。


  MiniGUI圖形系統(tǒng)由函數(shù)庫、資源、演示程序三部分組成,相應地在對MiniGUI進行移植時也要對這三部分分別進行移植。

  MiniGUI使用了自由軟件常用的“automake”和“autoconf”接口,因此其配置和編譯非常容易。進入MiniGUI源代碼樹,運行autogen.sh腳本文件,該文件可以簡單地重新生成所有與配置相關(guān)的文件,然后為當前的構(gòu)建環(huán)境配置軟件。配置MiniGUI,加上啟動交叉編譯的選項,關(guān)鍵有如下幾個選項:

CC=armv4l-unknown-linux-gcc

-host=arm-linux

-build=i686-pc-linux-gnu

-prefix=/opt/host/armv4l/armv4l-unknown-linux

-enable-lite

  armv4l-unknown-linux-gcc是ARM的交叉編譯器,它被安在/opt/host/armv4l/armv4l-unknown-linux目錄下。Host指定了目標機類型,build指定了交叉編譯的系統(tǒng)環(huán)境,Prefix指定了MiniGUI安裝的函數(shù)庫、頭文件和手冊頁等資源的安裝路徑,enable-lite指定將MiniGUI配置為Lite版本。關(guān)于其他的配置選項可以根據(jù)應用的特殊要求來打開或者關(guān)閉,例如disable-jpgsupport去掉對jpeg庫的支持。關(guān)于這些配置選項的詳細說明可以使用help打印清單或者參考《MiniGUI用戶手冊》。

  configure結(jié)果生成了一個標準的Makefile文件。接下來只要進行簡單的編譯、安裝就可以了。

  安裝MiniGUI資源文件minigui-res比較簡單,只要修改目錄樹下的config.linux文件,將prefix選項改為和剛才的安裝路徑一致就可以了。然后直接執(zhí)行make install。

  參照以上步驟對MiniGUI的演示程序MDE進行交叉編譯,過程類似,不再贅述。

  最后將安裝目錄下的庫文件、運行時自動查找的配置文件及編譯后生成的可執(zhí)行文件加入到Linux文件系統(tǒng)中去,重新制作ramdisk文件系統(tǒng)映像,再將新的文件系統(tǒng)下載到板子上,重新燒寫FLASH就可以進行調(diào)試了。運行時需要先執(zhí)行一個Mginit服務器進程,它將啟動一個虛擬控制臺窗口,然后在這個窗口中運行應用程序,如運行bomb后可以在LCD上看到和Windows中類似的掃雷界面。

Mcrowindows的資源包可以從http://microwindows.org下載,介紹從略。

Qt/Embedded的資源可以從http://www.trolltech.com下載,介紹從略。

三種主流嵌入式GUI的比較

  由于嵌入式GUI系統(tǒng)的開發(fā)人員對實時嵌入式系統(tǒng)在理解上的不同,使得這些GUI系統(tǒng)在接口定義、體系結(jié)構(gòu)、功能特性等方面存在著很大的差別,還有就是它們所采用的技術(shù)路線也有所不同。

  MiniGUI的策略是首先建立在比較成熟的圖形引擎之上,比如 SVGALib和LibGGI,開發(fā)的重點在于窗口系統(tǒng)如圖形接口。在MiniGUI的開發(fā)中,引入了圖形抽象層和輸入抽象層(GAL和IAL)的概念。利用GAL和IAL,MiniGUI才可以在多種圖形引擎上運行,并且便于移植。它盡量保持與Win32的兼容,這樣在WinCE應用的任何場合,也可以使用MiniGUI。

  MicroWindows目前的開發(fā)重點則在底層的圖形引擎,窗口系統(tǒng)和圖形接口方面的功能還比較欠缺。但是它能夠在沒有任何操作系統(tǒng)或其他圖形系統(tǒng)的支持下運行,它能夠?qū)β泔@示設(shè)備進行直接操作,因而顯得十分小巧,便于移植到各種硬件和軟件系統(tǒng)上。最上層的API支持Win32和Nano X接口,這樣就與Win32和X Window窗口系統(tǒng)保持了兼容,在這些系統(tǒng)間移植應用軟件就很容易了。

  Qt/Embedded是一個多平臺的C++圖形用戶界面應用程序框架,它注重于能給用戶提供精美的圖形用戶界面所需要的所有元素。而且它是基于一種面向?qū)ο蟮乃枷?,所以用戶對其對象的擴展是相當容易的,并且它還支持真正的組件編程。

  另外,這些GUI系統(tǒng)所使用的授權(quán)條款也各有不同。MiniGUI、MicroWindows和Qt/Embedded均為自由軟件,只是所遵循的條款不同。

  上述GUI的詳細性能比較如表1所示。

結(jié)語

  MiniGUI最初是為了滿足一個工業(yè)控制系統(tǒng)(計算機數(shù)控系統(tǒng))的需求而設(shè)計和開發(fā)的,它在設(shè)計之初就考慮到了小巧、高性能和高效率,因此比較適合于工控領(lǐng)域的簡單應用;而MicroWindows和Qt/Embedded則偏重于便攜式和手持PC/Device的需求。MiniGUI是由我國開發(fā)的,中文的支持文檔比較多,大都可以從飛漫公司的網(wǎng)站(http://www.minigui.com)上免費獲得;而MicroWindows和Qt/Embedded均是外國項目,相對來說發(fā)展得較成熟,文檔大多是英文的,在Qt的中文站點(http://www.qiliang.net)上也有部分翻譯文檔?!?/P>

參考文獻:

1.  北京飛漫軟件技術(shù)有限公司,MiniGUI技術(shù)白皮書,版本1.2FM

2.  吳升艷、胡冰、岳春,‘Micro Windows體系結(jié)構(gòu)及應用程序接口’,單片機與嵌入式系統(tǒng)應用,2003,5



關(guān)鍵詞: 嵌入式 嵌入式

評論


相關(guān)推薦

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

關(guān)閉