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

          新聞中心

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

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

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


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

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

          引言

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

          三種嵌入式GUI的移植

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

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

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

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

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

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

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


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

            MiniGUI使用了自由軟件常用的“automake”和“autoconf”接口,因此其配置和編譯非常容易。進(jìn)入MiniGUI源代碼樹,運(yùn)行autogen.sh腳本文件,該文件可以簡單地重新生成所有與配置相關(guān)的文件,然后為當(dāng)前的構(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指定了目標(biāo)機(jī)類型,build指定了交叉編譯的系統(tǒng)環(huán)境,Prefix指定了MiniGUI安裝的函數(shù)庫、頭文件和手冊頁等資源的安裝路徑,enable-lite指定將MiniGUI配置為Lite版本。關(guān)于其他的配置選項可以根據(jù)應(yīng)用的特殊要求來打開或者關(guān)閉,例如disable-jpgsupport去掉對jpeg庫的支持。關(guān)于這些配置選項的詳細(xì)說明可以使用help打印清單或者參考《MiniGUI用戶手冊》。

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

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

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

            最后將安裝目錄下的庫文件、運(yùn)行時自動查找的配置文件及編譯后生成的可執(zhí)行文件加入到Linux文件系統(tǒng)中去,重新制作ramdisk文件系統(tǒng)映像,再將新的文件系統(tǒng)下載到板子上,重新燒寫FLASH就可以進(jìn)行調(diào)試了。運(yùn)行時需要先執(zhí)行一個Mginit服務(wù)器進(jìn)程,它將啟動一個虛擬控制臺窗口,然后在這個窗口中運(yùn)行應(yīng)用程序,如運(yùn)行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ā)的重點(diǎn)在于窗口系統(tǒng)如圖形接口。在MiniGUI的開發(fā)中,引入了圖形抽象層和輸入抽象層(GAL和IAL)的概念。利用GAL和IAL,MiniGUI才可以在多種圖形引擎上運(yùn)行,并且便于移植。它盡量保持與Win32的兼容,這樣在WinCE應(yīng)用的任何場合,也可以使用MiniGUI。

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

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

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

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

          結(jié)語

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

          參考文獻(xiàn):

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

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



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

          評論


          相關(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); })();