 |
 |
培訓信息 |
|
|
|
 |
 |
贊助商 |
|
|
|
|
 |
 |
MiniGUI1.33開源版在ARMSYS2410-B上的移植 |
|
|
| MiniGUI1.33開源版在ARMSYS2410-B上的移植 |
| 作者:佚名 來源:不詳 錄入:jdzj868 更新時間:2009-6-4 10:21:47 點擊數:1 |
【字體:
】 |
|
| | <!--插入廣告JS代碼--> | 準備 (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 ..(c) 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);elsereturn(1);} int MiniGUIMain (int argc, const char ** argv){MSG Msg; #ifdef _LITE_VERSIONSetDesktopRect(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/中)(c) 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的文件。(c) 設置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上看到運行結果了。
|
|
發表評論 告訴好友 打印此文 收藏此頁 關閉窗口 返回頂部 |
|
|
 |
 |
網友評論:(只顯示最新5條。) |
|
|
|
|
|