欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
MiniGUI 1.3.3 移植詳解2
MiniGUI 1.3.3 移植詳解2 [轉]

OK ,下面是把 minigui 移植到你的板子上去了。

我在 /opt 目錄下建立了一個(gè) rootfs 目錄,即 /opt/rootfs  ,用來(lái)建立我的嵌入式系統的根目錄,現在我需要把 minigui 的庫文件放到里面去,

建立目錄
[Root]# mkdir –p /opt/rootfs/usr/local/[lib,etc]

把 /usr/local/arm/2.95.3/arm-linux/lib 中相應的庫拷到 /opt/rootfs/usr/local/lib 目錄下去
下面是我拷的庫文件:

libjpeg.a          libmgext-1.3.so.3        libminigui.a   libpng.so.2            libttf.a                 libz.so
libjpeg.la         libmgext-1.3.so.3.0.0    libminigui.la  libpng.so.2.1.0.10rc1  libttf.so              libz.so.1
libjpeg.so        libmgext.a               libminigui.so  libpopt.a              libvcongui-1.3.so.3      libz.so.1.2.3
libjpeg.so.62      libmgext.la              libm.so        libpopt.la             libvcongui-1.3.so.3.0.0  minigui
libjpeg.so.62.0.0  libmgext.so              libm.so.6      libpopt.so             libvcongui.a             shared
libm-2.2.3.so      libminigui-1.3.so.3      libpng.a       libpopt.so.0           libvcongui.la
libm.a             libminigui-1.3.so.3.0.0  libpng.so      libpopt.so.0.0.0       libvcongui.so

其中一些 .a 的靜態(tài)庫是不需要拷過(guò)去的,我圖方便,一起拷了,呵,懶人的做法

同時(shí)修改 /opt/rootfs/etc/ld.so.conf ,在里面最后新加入一行  /usr/local/lib

然后執行 [Root] ldconfig –r /opt/rootfs     //把 rootfs 當成根目錄,執行

OK,庫文件準備完畢

下面把資源文件也拷過(guò)來(lái),還記得嗎,在前面 搭建 PC 環(huán)境中講過(guò)安裝資源文件,它被裝在了 /usr/local/lib 目錄下,一個(gè)叫 minigui 的目錄,我們要做的就是把它拷過(guò)來(lái)

[Root]# cp –r –a /usr/local/lib/minigui  /opt/rootfs/usr/local/    連目錄一起拷過(guò)來(lái),目錄結構和主機一樣

把配置文件也拷過(guò)來(lái)

[Root]# cp /usr/local/etc/MiniGUI.cfg   /opt/rootfs/usr/local/etc/   記住,保持目錄結構的一致

修改 MiniGUI.cfg ,如下

[system]
# GAL engine
gal_engine=fbcon     //這里修改

# IAL engine
ial_engine=dummy      // 這里修改,我不知道你會(huì )用什么觸摸屏,所以就用dummy肯定不會(huì )錯

mdev=/dev/touchscreen/0raw  //解摸屏,如果前面是 dummy ,則這里改不改無(wú)所謂
mtype=none

[fbcon]
defaultmode=240x320-16bpp  // 根據你的LCD大小自己設置,設置錯誤minigui 就啟動(dòng)不了


ial_engine 一開(kāi)始建議用 dummy ,先讓 minigui 跑起來(lái),以后再把 觸摸屏 加進(jìn)去,保證盡可能減少錯誤的發(fā)生

保存,退出。 OK ,你的板子上的系統也搭建完畢了,現在來(lái)讓真正的圖形界面跑起來(lái)?。海?p>注意:你Build 你的 嵌入式 Linux 內核時(shí),在 Console 中一定要先上 FrameBuffer ,從4位色一直到 16 位色的支持,全選上吧,同時(shí)把 VGA TextOut 選項勾掉,不要選它?。。。。。。。。?!

內核啟動(dòng)時(shí)就要激活 FrameBuffer ,不然 minigui 沒(méi)法啟動(dòng)起來(lái),激活的方法就是給它傳內核參數 vga=xxx 之類(lèi)的。


3.啟動(dòng)你的 MiniGUI 的圖形界面

看看你的 Windows 操作系統,左下方是一個(gè) [開(kāi)始] 按鈕,然后是 任務(wù)條 ,MiniGUI 也提供了類(lèi)似的界面,這就是一個(gè)叫 mginit 的程序,它啟動(dòng)后就跟widnows的界面很像了,它就在 mde 包里面,還記得最初讓你下載的那個(gè)程序包嗎??  現在我們就來(lái)安裝它?。。海?p>[user]# tar zxf mde-1.3.0.tar.gz
[user]# cd mde-1.3.0

//我們先對 mginit 程序做一點(diǎn)小修改,呵

[user]#  cd mginit ; vi mginit.c


在 297 行處,把下面代碼注釋掉

/***************
   AboutMiniGUI ();
AboutMDE ();
**************/
保存,退出即可。

因為我們沒(méi)有 觸摸屏 現在,沒(méi)法點(diǎn)它的 確認 按鈕,所以把這些 About 信息去掉:)

好了,現在來(lái)編譯吧,在mde-1.3.0 目錄里
[user]# ./configure --prefix=/opt/rootfs/usr/local --host=arm-linux
[user]# make

如果你發(fā)現 mginit 目錄下的程序沒(méi)有被編譯,那就說(shuō)明你的 libminigui 配置不正確,記住,你必須是配置為 Lite 模式,這個(gè)程序才會(huì )被編譯


[user]# make install

事實(shí)上證明,make install,根本沒(méi)用,它什么都沒(méi)做,do nothing
所以還是我們自己動(dòng)手來(lái)做吧,呵

[Root]# mkdir –p /opt/rootfs/usr/local/lib/shared/miniguiapps    //建立了一個(gè)我們自己的目錄,好長(cháng),呵

[Root]# cp –r –a  mde-1.3.0/*   /opt/rootfs/usr/local/lib/shared/miniguiapps

直接全部拷過(guò)去,然后到 /opt/rootfs/usr/local/lib/shared/miniguiapps 的各個(gè)程序目錄下去,比如 mginit , bomb , painter 之類(lèi)的,把不用的 .c .h .o Makefile 之類(lèi)的全刪除掉,保留 可執行文件和相應的 res 目錄下的資源

注意,保持目錄的結構,mginit.rc 文件不要刪了,這個(gè)對mginit 程序很重要


OK,最后一步了,修改配置文件

[Root]#  vi  /opt/rootfs/linuxrc 文件

一般你配置嵌入式系統的時(shí)候都會(huì )有這個(gè)文件,用來(lái)執行一些系統的初始化工作,如果沒(méi)有,就在你相應的初始化腳本(例如 etc/inittab)中加入下面的語(yǔ)句

mknod /dev/ttyp5 c 3 5
mknod /dev/ptyp5 c 2 5

cd /usr/local/lib/shared/miniguiapps/mginit
./mginit

注意:最后執行 mginit 命令的方式,先進(jìn)入到它所在的目錄,然后再執行,千萬(wàn)不要只寫(xiě)成

/usr/local/lib/shared/miniguiapps/mginit/mginit

因為 mginit 執行時(shí)在“當前目錄”的res文件夾下搜索顯示的資源,這種寫(xiě)法則“當前目錄”為 / 根目錄,所以會(huì )找不到 res 文件夾,于是顯示錯誤
“ Can not create taskbar! ” 就退出了!

如果運行時(shí)顯示沒(méi)有 mknod 命令,請檢查一下你的 busybox 的配置 :)

切記切記!


好了,一切成功了,現在放到你的板子上去試試吧:)

[Root]# cd /opt
[Root]# mkcramfs  rootfs  root.cramfs  制作根文件系統鏡像,把 root.cramfs 燒到你的板子里面就OK了,啟動(dòng),就可以看到 minigui 的圖形界面啟動(dòng)了 :)


注意: 因為你的 minigui 是按 Lite 模式編譯的,如果必須 mginit 首先運行起來(lái),你其它的程序(比如 bomb ,或是 helloword)才能執行,如果 mginit 沒(méi)有運行起來(lái)你就執行 helloword 的話(huà),就會(huì )顯示錯誤

“ Can not attach shared resource ! ”

4.為  minigui 開(kāi)發(fā)程序


環(huán)境配好了,現在是開(kāi)發(fā)自己的程序了,呵呵,寫(xiě)個(gè)簡(jiǎn)單的 Helloword 程序


/*
** $Id: helloworld.c,v 1.7 2003/06/13 07:15:49 weiym Exp $
**
** Listing 2.1
**
** helloworld.c: Sample program for MiniGUI Programming Guide
**      The first MiniGUI application.
**
** Copyright (C) 2003 Feynman Software.
**
** License: GPL
*/

#include <stdio.h>

#include <minigui/common.h>
#include <minigui/minigui.h>
#include <minigui/gdi.h>
#include <minigui/window.h>

static int HelloWinProc(HWND hWnd, int message, WPARAM wParam, LPARAM lParam)
{
   HDC hdc;
   switch (message) {
       case MSG_PAINT:
           hdc = BeginPaint (hWnd);
           TextOut (hdc, 100, 100, "Hello, world!");
           EndPaint (hWnd, hdc);
           return 0;

       case MSG_CLOSE:
           DestroyMainWindow (hWnd);
           PostQuitMessage (hWnd);
           return 0;
   }

   return DefaultMainWinProc(hWnd, message, wParam, lParam);
}

int MiniGUIMain (int argc, const char* argv[])
{
   MSG Msg;
   HWND hMainWnd;
   MAINWINCREATE CreateInfo;

#ifdef _LITE_VERSION
   SetDesktopRect(0, 0, 1024, 768);
#endif

   CreateInfo.dwstyle = WS_VISIBLE | WS_BORDER | WS_CAPTION;
   CreateInfo.dwExstyle = WS_EX_NONE;
   CreateInfo.spCaption = "Hello, world";
   CreateInfo.hMenu = 0;
   CreateInfo.hCursor = GetSystemCursor(0);
   CreateInfo.hIcon = 0;
   CreateInfo.MainWindowProc = HelloWinProc;
   CreateInfo.lx = 0;
   CreateInfo.ty = 0;
   CreateInfo.rx = 320;
   CreateInfo.by = 240;
   CreateInfo.iBkColor = COLOR_lightwhite;
   CreateInfo.dwAddData = 0;
   CreateInfo.hHosting = HWND_DESKTOP;
   
   hMainWnd = CreateMainWindow (&CreateInfo);
   
   if (hMainWnd == HWND_INVALID)
       return -1;

   ShowWindow(hMainWnd, SW_SHOWNORMAL);

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

   MainWindowThreadCleanup (hMainWnd);

   return 0;
}

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

首先在 PC 上編譯,驗證通過(guò)!

[user]# gcc  -o helloword  helloword.c  -lminigui –lmgext

如果沒(méi)有錯誤,運行 qvfb ,按前面說(shuō)的設置好,然后執行 [user]# ./helloword

一切正常,沒(méi)有錯誤,現在就要把它放到我們的 板子上去跑了

[user]# arm-linux-gcc –O2 –o helloword helloword.c –lminigui –lmgext

編譯完后,把它燒到板子的某個(gè)目錄下,就可以在 板子上跑了!

所以這里就是說(shuō),minigui 提供了讓你在 PC 上就可以調試和運行程序的方法(使用qvfb ),等你保證程序正確了以后,只需要把它重新編譯一下,放到板子上去就行了!


5.一些常見(jiàn)的問(wèn)題

這幾天遇到不一些問(wèn)題,發(fā)現論壇上也基本上沒(méi)人回答我,所以只好自己解決了,這里把一些問(wèn)題寫(xiě)出來(lái),方便有需要的人:

問(wèn)題1:在板子上跑的程序都顯示 can not find qvfb …  之類(lèi),可是我只是想讓它在板子上跑在 FrameBuffer 之上???

解決:在編譯 libminigui 的時(shí)候,把
[ ] Use incore (built-in) resource        //建議不要選這個(gè),老有問(wèn)題
[ ]   NEWGAL engine on Qt Virtual FrameBuffer     //建議不要選這個(gè),不然老讓你用qvfb


問(wèn)題2:編譯的時(shí)候老出現  unreferenced to vbf_Courier8x8()  之類(lèi)的問(wèn)題

解決:
[ ] Var bitmap font  //千萬(wàn)不要選這個(gè),不然會(huì )出現 unreferenced vfb_Courier8x8() 之類(lèi)的錯誤


問(wèn)題3:一切都搞定了,可是執行 mginit() 的時(shí)候就崩潰了,把所有的寄存器值打印了出來(lái),然后顯示了個(gè) Abort() 就退出了!

解決:
[ ] IME (GB2312) Intelligent Pinyin module   //千萬(wàn)不要選這個(gè),不然后面你的 mginit 程序一啟動(dòng)就崩潰了


問(wèn)題4: 為什么我執行 helloword 就顯示 “Can not attach shared resource!”

解決:
注意: 因為你的 minigui 是按 Lite 模式編譯的,如果必須 mginit 首先運行起來(lái),你其它的程序(比如 bomb ,或是 helloword)才能執行,如果 mginit 沒(méi)有運行起來(lái)你就執行 helloword 的話(huà),就會(huì )顯示錯誤

“ Can not attach shared resource ! ”

問(wèn)題5:怎么把自己的程序加到 minigui 的 taskbar 上去,并且排在前面??

解決:
查看 mginit 目錄下的 mginit.rc 文件,里面就是配置,我想你能看明白的 :)


問(wèn)題6:為什么我的程序顯示 can not find libminigui.so ??

解決:你是否忘了在 etc/ld.so.conf 中加入 /usr/local/lib ,并且執行 ldconfig 程序? 看前面說(shuō)的方法

好了,就寫(xiě)這么多吧,希望對新手有所幫助!

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
[轉帖]使用MiniGUI的一些FAQ
基于Video4Linux 的USB攝像頭
改進(jìn)minigui1.3.3的輸入法窗口,增加虛擬鍵盤(pán)| Linux交流區
基于A(yíng)RM<b style="color: rgb(0, 0, 0); font-size: 14px;">-Linux的MiniGUI的仿真與移植</b>
利用uboot啟動(dòng)遠程Kernel(TFTp)
Tiny210v2( S5PV210 )平臺下創(chuàng )建基本根文件系統| Linux技術(shù)交流區
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久