新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于ARM-Linux的MiniGUI的仿真與移植

        基于ARM-Linux的MiniGUI的仿真與移植

        作者: 時間:2009-12-16 來源:網絡 收藏
        近幾年,隨著嵌入式系統的日益發展和32位嵌入式處理器以及圖形顯示設備的廣泛應用,目標產品對GUI(圖形用戶界面)的需求越來越多。由于嵌入式系統一般實時性要求很高,所以嵌入式系統下的GUI需要具有輕量級型、占用資源少、高性能等特點。此外,嵌入式系統往往是一種定制設備,它對GUI的需求各不相同,因此,GUI必須也可以定制。而是一個非常適合實時嵌入式產品的高效、可靠、可定制、小巧靈活的圖形用戶界面支持系統,被廣泛的應用于高端科技產品中。利用開發出良好的人機交互界面已成為嵌入式開發中的迫切需求。本文實現了在環境下進行QVFB的的模擬開發、調試,通過在PC機上的模擬,將應用程序完成之后,利用交叉編譯工具編譯產生在目標機上運行的代碼,然后把MiniGUI和可執行應用程序到S3C2410目標板上,這樣既節省了開發時間,又提高了開發效率和質量。
        1MiniGUI的特點和體系結構
        MiniGUI項目的最初目標是為Linux的實時嵌入式操作系統提供一個輕量級的圖像用戶界面支持系統。作為操作系統和應用程序之間的中間件,MiniGUI將底層操作系統與硬件平臺之間的差別隱藏起來,并對上層應用程序提供了一致的功能特性。
        1.1MiniGUI的特點
        (1)占用資源少:MiniGUI本身占用的空間非常小,整個MiniGUI系統占用空間在2~4MB,在某些系統上,MiniGUI系統本身所占用的空間可進一步縮小到1MB以內。
        (2)高性能、高可靠性:MiniGUI良好的體系結構及優化的圖形接口,可確保最快的圖形繪制速度。
        (3)可定制配置:和Linux內核類似,MiniGUI也具有大量的編譯配置選項,通過這些選項可指定MiniGUI庫中包括哪些用戶所需要的功能。
        (4)跨操作系統支持:MiniGUI支持Linux/uClinux、eCos、uC/OS-II、VxWorks等嵌入式操作系統。同時,在不同操作系統上的MiniGUI,提供完全兼容的API接口。
        1.2MiniGUI的體系結構
        從整體結構上看,MiniGUI采用的是分層設計的,結構如圖1所示。

        圖1MiniGUI的分層體系結構
        在最底層,GAL(圖形抽象層)和IAL(輸入抽象層)及鼠標和鍵盤的驅動;中間層是MiniGUI的核心層,包括窗口系統必不可少的各個模塊;最頂層是API,即編程接口。GAL和IAL為MiniGUI提供了底層的Linux控制臺或者X-Window上的圖形接口以及輸入接口,而Pthread用于提供內核級線程支持的C函數庫。利用GAL和IAL,大大提高了MiniGUI的可性,并且使程序開發和調試變得更加容易。
        2MiniGUI在QVFB上的應用
        MiniGUI能夠在PC機上運行,也能夠到目標板上運行。在運行Linux的PC機上,MiniGUI應用程序可以通過以下兩種方式運行:
        (1)在X-Window上,在虛擬FrameBuffer的QVFB中運行;
        (2)在Linux的字符控制臺上,在Linux內核提供的FrameBuffer驅動上運行;
        這里主要介紹MiniGUI在QVFB中的運行。QVFB是Qt(Qt是Linux窗口管理器KDE使用的底層函數庫)提供的一個虛擬FrameBuffer工具,該程序是Qt開發的。
        2.1建立MiniGUI在Linux上的運行環境
        在Linux環境下,將已經下載好的壓縮安裝文件qvfb-1.0.tar.gz復制到/opt目錄下,在該目錄下解壓,利用makeinstall命令把QVFB安裝到系統默認的/usr/local/bin目錄下。在X-Window環境下,打開終端,鍵入qvfb命令,啟動QVFB模擬程序。接下來對QVFB的運行環境進行配置,這里配置為640×480,Depth為16bit。QVFB提供了一種軟件的方法,通過這種方法,可以看到自己的圖像應用程序在PC上運行的效果。它能模擬不同的分辨率及顯示的顏色數,因此可以模擬目標機上的嵌入式顯示屏,從而大大方便了應用程序的開發與調試。
        2.2安裝資源文件和配置MiniGUI的庫文件
        在Linux環境下,將已下載好的壓縮資源文件
        minigui-res-1.3.3.tar.gz(該文件包含字體、光標、圖標、位圖等資源)復制到/opt/emulation目錄下(emulation目錄為新創建的目錄),然后運行./configure腳本成功通過,就可以執行make和makeinstall命令,將資源文件安裝到系統默認的/usr/local/lib/minigui/res目錄中。將下載好的壓縮庫文件libminigui-1.3.3.tar.gz復制到/opt/emulation目錄下,輸入解壓縮命令然后進入解壓后的目錄,在該目錄下輸入makemenuconfig,啟動圖像界面的配置工具,當配置完成后,輸入make對庫文件進行重新編譯,如果編譯成功,輸入makeinstall命令,將MiniGUI庫安裝到默認的/usr/local/lib/目錄下。接下來,查看文件/etc/ld.so.conf,如果文件中沒有/usr/local/lib這一行,將該行添加到文件的最后,然后執行ldconfig。
        2.3MiniGUI在QVFB上的仿真
        將已下載的mg-samples-1.3.1和mde-1.3.0.tar.gz復制到/opt/emlation/目錄下,在終端下進入該目錄,依次執行./configure和make命令,將這些示例程序編譯成能夠在QVFB上可執行的程序。首先修改/usr/local/etc目錄下的配置文件MiniGUI.cfg,將gal_engine=fbcon改為gal_engine=qvfb,ial_engine=console改為ial_engine=qvfb。然后使用qvfb命令啟動qvfb,運行/opt/emulation/mg-samples/src目錄中的可執行程序,如bomb,即可看到運行在QVFB內的MiniGUI程序,如圖2所示:

        圖2MiniGUI在QVFB上的仿真
        linux操作系統文章專題:linux操作系統詳解(linux不再難懂)

        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 宁南县| 太康县| 莲花县| 中超| 益阳市| 呼伦贝尔市| 平谷区| 贵定县| 郎溪县| 堆龙德庆县| 武邑县| 十堰市| 甘谷县| 扬中市| 芒康县| 丰原市| 苗栗市| 鸡泽县| 琼海市| 资中县| 仁怀市| 色达县| 长寿区| 永福县| 微山县| 深州市| 繁峙县| 英超| 遂溪县| 涟水县| 麻栗坡县| 江川县| 盘锦市| 景洪市| 永嘉县| 临夏市| 绥棱县| 巴中市| 贡觉县| 深水埗区| 汾阳市|