您好,  [请登录] [QQ登录]  [支付宝登录[免费注册]

商品分类

分享到: 百度搜藏 搜狐微博 新浪微博 腾讯微博 QQ收藏 人人网 Facebook Twitter

MiniGUI1.33开源版移植for ARMSYS2410-B linux

发布日期:2011-05-27

    &nbarmsys2410 2440 armsys2440 qt移植 s3c2410 linux移植 uboot移植 2410 s3c2410 uboot移植 minigui1.6 minigui1.6.10安装 minigui1.6.10 在s3c2410上移植yaf minigui1.33下载 sp; MiniGUI1.33开源版在ARMSYS2410-B上的移植

     0 。准备
    (a)    创建如下目次:
        minigui
              |--build_x86                /创建PC上运行的MiniGUI
              |--build_arm                /创建ARM上运行的MiniGUI
              |--tarball                   /全部的包资源存放点
    (b)   download MiniGUI:
        从www.minigui.com下载libminigui-1.3.3.tar.gz 和minigui-res-1.3.3.tar.gz并且放
        tarball目次
        (肇始目次:minigui)
             #cd build_x86
             #tar zxvf ../tarball/libminigui-1.3.3.tar.gz
             #tar zxvf ../tarball/minigui-res-1.3.3.tar.gz
             #cd ../build_arm
             #tar zxvf ../tarball/libminigui-1.3.3.tar.gz
             #cd ..
       ©    download and install qvfb:
        从www.minigui.com下载qvfb-1.0.tar.gz,放入tarball目次
        #cd build_x86
              #tar zxvf ../tarball/qvfb-1.0.tar.gz
             #cd qvfb-1.0
             #./configure
             #make
             #make install
             #cd ..
      (d)    创建典范步伐:
        test.c
              --------------------------------------------------------------------------test.c begin
             #include <minigui/common.h>
             #include <minigui/minigui.h>
             #include <minigui/gdi.h>
             #include <minigui/window.h>
             #include <minigui/control.h>
 
     #define MWINDOW_LX 10
     #define MWINDOW_TY 50
     #define MWINDOW_RX 230
     #define MWINDOW_BY 180
 
     static char * hello_str = "HelloMiniGUI!";
 
     HWND hMainWnd;
 
     static int WinProc (HWND hWnd, int message, WPARAM wParam, LPARAM lParam)
{
HDC hdc;
RECT rc;
 

switch (message)
{
case MSG_PAINT :
        hdc = BeginPaint(hWnd);
        GetClientRect(hWnd, &rc);
        DrawText(hdc, hello_str, -1, &rc, DT_LEFT);
        EndPaint(hWnd, hdc);
        break;
case MSG_CLOSE :
        DestroyMainWindow(hWnd);
        PostQuitMessage(hWnd);
        break;
default        :
        return(DefaultMainWinProc(hWnd, message, wParam, lParam));
}
return(0);
}
 

int InitMainWindow(void)
{
MAINWINCREATE window_info;
 

window_info.dwStyle       = WS_VISIBLE | WS_BORDER | WS_CAPTION;
window_info.dwExStyle   = WS_EX_NONE;
window_info.spCaption     = "MiniGUI";
window_info.hMenu        = 0;
window_info.hCursor       = GetSystemCursor(0);
window_info.hIcon        = 0;
window_info.MainWindowProc   = WinProc;
window_info.lx              = MWINDOW_LX;
window_info.ty             = MWINDOW_TY;
window_info.rx             = MWINDOW_RX;
window_info.by             = MWINDOW_BY;
window_info.iBkColor       = COLOR_lightwhite;
window_info.dwAddData  = 0;
window_info.hHosting      = HWND_DESKTOP;
hMainWnd         = CreateMainWindow(&window_info);
if (hMainWnd == HWND_INVALID)
return(0);
else
return(1);
}
 

int MiniGUIMain (int argc, const char ** argv)
{
MSG Msg;
 

#ifdef _LITE_VERSION
SetDesktopRect(0, 0, 800, 600);
#endif
 

InitMainWindow();
ShowWindow(hMainWnd, SW_SHOWNORMAL);
 

while (GetMessage(&Msg, hMainWnd))
{
TranslateMessage(&Msg);
DispatchMessage(&Msg);
}
MainWindowThreadCleanup(hMainWnd);
return(0);
}
 

#ifndef _LITE_VERSION
#include <minigui/dti.c>
#endif
--------------------------------------------------------------------------test.c end
 

1.  Build MiniGUI for PC:
(a) build lib
#Cd build_x86
#Cd libminigui-1.3.3
#./configure
#make
#make install
#cd ..
(b) install resource
        #cd minigui-res-1.3.3
        #make install
        #cd ..
        (资源被安置到/usr/local/lib/minigui/中)
© build and run test
        #gcc –o test test.c –lpthread –lminigui –ljpeg –lpng –lz –lttf
        把/usr/local/etc/MiniGUI.cfg中[system]组的gal_engine和ial_engine的值都改成qvfb
              #qvfb –width 640 –height 480 –depth 16 &
        #./test
        #cd ..
 
     2.  Build MiniGUI for ARM
(a)    build lib
#cd build_arm
#cd libminigui-1.3.3
#make menuconfig
在默认的设置下
将“GAL engine options”中的“NEWGAL”改成“OLDGAL”;
将“Font options”中的末了三项保存,别的全部不选;
将“Image options”中对JPG和PNG的support去失;
将“Development environment options”中“Compiler”设置成“arm-linux-gcc”,“Path prefix”设置成“/usr/local/arm/2.95.3/arm-linux”(假设交错编译环境安置在/usr/local/arm)。别的选项全部取默认值。生存修改并退出menuconfig
#make
#make install
#cd ..
(b)    build test.c
#arm-linux-gcc –o test test.c –lpthread –lminigui
如许就会孕育产生一个名为test的文件。
©    设置root file system
假设已经有一个可以用的root file system
把先前安置在/usr/local/arm/2.95.3/arm-linux/lib下的库文件复制到目标文件体系的/lib目次下。要是分不明白那个目次下哪些是必要复制的库文件,可以重复一次2.(a)的进程,并且把此中“Path prefix”的值改成你事先创建的一个空的目次的路径。比如,我创建了一个新的目次/root/need,并且把“Path prefix”的值改成了“/root/need”, 那么在实行完2.(a)后,/root/need/lib目次下的全部文件便是我们所必要复制的MiniGUI库文件。(这个步伐很冗余-_-)
把/usr/local/etc/MiniGUI.cfg文件复制到目标文件体系的/usr/local/etc/目次下,并且修改该文件,将[system]组中的gal_engine的值改成“fbcon” ial_engine的值改成“console” mdev的值改成“/dev/mouse” mtype的值改成“PS2”,将[fbcon]组中的defaultmode改成“640x480-16bpp”(根据实际环境而定)。
把/usr/local/lib/minigui/res整个目次复制到目标文件体系的/usr/local/lib/minigui中。
末了把刚才编译好的test文件复制到目标文件体系的/bin下面。
(d)    设置鼠标
我的LCD没有带触摸屏,以是要设置鼠标,我的鼠标是USB口的。
修改文件体系的/etc/init.d/rcS,添加一行:“ln /dev/input/mice /dev/mouse”
(e)    run
给板子上电,通过minicom实行:
#test &
就能在LCD上看到运行结果了。