當前位置:學問君>學習教育>畢業論文>

MiniGUI到EV44B0Ⅱ上的移植研究

學問君 人氣:2.06W

摘  要:MiniGUI建立在比較成熟的圖形引擎之上,其特點是小巧精緻並儘量保持與Win32的相容。講解MiniGUI到EV44B0II的移植工作,提出MiniGUI軟件移植的基本步驟。
關鍵詞:MiniGUI;圖形引擎;EV44B0II;移植
        引言
        要在自己的ARM嵌入式系統[1]中使用MiniGUI,首先目標板要有足夠的硬件資源;之後爲目標板編寫MiniGUI的圖形引擎(GAL)和輸入引擎(IAL)[2];接下來就可以配置MiniGUI交叉編譯MiniGUI函數庫及其應用程序;編譯透過後,就可以在目標板上搭建MiniGUI應用環境;最後就可以啓動MiniGUI應用程序了。
        1 MiniGUI
        只要某個硬件平臺上執行有MiniGUI所支援的操作系統,MiniGUI就能在這個平臺上執行。MiniGUI本身的佔用空間非常小,在2MB到4M左右。在某些系統上,尤其是在傳統嵌入式操作系統中,功能完備的MiniGUI系統本身所佔用的空間可進一步縮小到1MB以內。和其它針對嵌入式產品的`圖形系統相比,MiniGUI對系統的需求具有如下幾大優勢:可伸縮性強、輕型、佔用資源少、高性能、高可靠性和可配置性。
        2 移植過程
        2.1在PC機上安裝MiniGUI
        將MiniGUI函數庫原始碼、資源檔案複製到PC機的Linux操作系統的特定目錄下,解壓,以便於進行交叉編譯。在“終端”視窗使用以下命令完成解壓,對於較長的檔案名或目錄名,可以使用“*”通配符指定。
        #cd  /home/minigui
        #tar  zxf  lib*.gz
        #tar  zxf  mini*.gz
        #tar  zxf  mg*.gz
        2.2 MiniGUI的GAL移植
        MiniGUI引入了圖形抽象層和輸入抽象層(Graphics and Input Abstract Layers,即GAL和IAL)的概念。在libminigui-str-1.6.2/src/gal/native目錄下建立一個源檔案commlcd.c,編寫老的GAL接口的幾個接口函數[3]。
        //使用native圖形引擎的數據結構和fb(Framebuffer)的驅動程序
        #include  "native.h"
        #include  "fb.h"
        #include  "lcddrive.h"
        //圖形引擎初始化函數
        //初始化正確返回PSD結構,否則返回NULL
        Static PSD  fb_open(PSD psd)
        { PSUBDRIVER subdriver;
        TftInit();
        Fprintf(stderr,"GAL Common engine:Init LCM!n");
        psd->planes=1;  //單屏
        #if SWAP_XY_EN==1
        psd->xres=GUI_LCM_YMAX;
        psd->yres=GUI_LCM_XMAX;
        #else
        psd->xres=GUI_LCM_XMAX;
        psd->yres=GUI_LCM_YMAX;
        #endif
        };
        在libminigui-str-1.6.2/src/gal/native目錄下建立液晶驅動程序檔案lcddrive.c和lcddrive.h,由於在lcddrive.c檔案中使用了S3C44B0的頭檔案,所以要將此檔案複製到libminigui-str-1.6.2/src/gal/native目錄下。設定libminigui-str-1.6.2/src/gal/native目錄下的Makefile.am檔案,在lib_native_la_SOURCES變量最後加入lcddrive.c和commlcd.c等檔案。

MiniGUI到EV44B0Ⅱ上的移植研究

      爲了使MiniGUI能夠正確使用移植的圖形引擎,還需要進行註冊[4]。
        2.3 MiniGUI的IAL移植
        在libminigui-str-1.6.2/src/ial目錄下建立源檔案comminput.c及頭檔案comminput.h,在comminput.c檔案中編寫IAL接口的幾個接口函數。