移植平臺:
ubuntu:14.04 開發板:s5pv210(A8) Minigui版本:3.0.12
-----------------------------------------------------
以下軟件是開發板正常運行的必須安裝包,在MiniGui官網可以下載 http://www.minigui.org/zhcn/【已放在嵌入式軟件組資料共享文件夾】
-----------------------------------------------------
├── freetype-2.3.9-fm20100818.tar.gz
├── jpegsrc.v7.tar.gz
├── libmgplus-1.2.4.tar.gz
├── libminigui-gpl-3.0.12.tar.gz
├── libpng-1.2.37.tar.gz
├── mg-samples-3.0.12.tar.gz
├── minigui-res-be-3.0.12.tar.gz
└── zlib-1.2.2.tar.gz
依賴關系:
libpng (zlib);
libmgplus(libminigui)
mg-samples(libminigui,libmgplus)
----------------------------------------------------------------------------------------
PS:本教程的安裝目錄為 /opt/minigui/arm/cross 安裝包都放在 /opt/minigui/arm
在安裝之前,確保ubuntu安裝了gawk、automake、autoconf、m4、g++等
在其他平臺移植也適用,把交叉工具鏈修改對應的就行。
----------------------------------------------------------------------------------------
-----------------------------------------------------
1.編譯Freetype庫:【指定交叉工具鏈,指定安裝地址】
-----------------------------------------------------
(1)./configure --host=arm-linux --enable-static --prefix=/opt/minigui/arm/cross
(2)make
(3)make install
【若出錯,沒有internal,在對應報錯的路徑自行創建 internal文件夾 】
-----------------------------------------------------
2.編譯jpeg庫:【指定交叉工具鏈,指定安裝地址】
-----------------------------------------------------
(1)CXX=arm-linux-g++ LD=arm-linux-ld AS=arm-linux-as AR=arm-linux-ar ./configure --prefix=/opt/minigui/arm/cross --build=i386-linux --host=arm-linux --target=arm-linux --enable-shared
(2)make
(3)make install
-----------------------------------------------------
3.編譯zlib庫:【先安裝zlib,因為libpng依賴zlib,指定交叉工具鏈,指定安裝地址】
-----------------------------------------------------
(1)CC=arm-linux-gcc CXX=arm-linux-g++ LD=arm-linux-ld AS=arm-linux-as AR=arm-linux-ar ./configure -prefix=/opt/minigui/arm/cross --shared
(2)make
(3)make install
-----------------------------------------------------
4.編譯png庫:【指定交叉工具鏈,指定安裝地址】
-----------------------------------------------------
(1)export LDFLAGS='-L/opt/minigui/arm/cross/lib'
(2)export CPPFLAGS='-I/opt/minigui/arm/cross/include'
(3)./configure --prefix=/opt/minigui/arm/cross --build=i386-linux --host=arm-linux --target=arm-linux
(4)make
(5)make install
-----------------------------------------------------
5.編譯libmgplus-1.2.4庫:【指定交叉工具鏈,指定安裝地址】
-----------------------------------------------------
(1)./configure --target=arm-unknown-linux --host=arm-unknown-linux --prefix=/opt/minigui/arm/cross CC=arm-linux-gcc CPP=arm-linux-cpp CXX=arm-linux-g++ LD=arm-linux-ld AR=arm-linux-ar RANLIB=arm-linux-ranlib STRIP=arm-none-linux-gnueabi-strip
(2)make
(3)make install
【若出錯:
configure: WARNING: using cross tools not prefixed with host triplet
checking pkg-config is at least version 0.9.0... yes
checking for MINIGUI... configure: error: Package requirements (minigui >= 3.0.10) were not met:
No package 'minigui' found
Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.
Alternatively, you may set the environment variables MINIGUI_CFLAGS
and MINIGUI_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
【解決辦法】
export PKG_CONFIG_PATH=/opt/minigui/arm/cross/lib/pkgconfig/
繼續make
make install
】
-----------------------------------------------------
6.編譯資源庫minigui-res-be-3.0.12:【指定交叉工具鏈,指定安裝地址】
-----------------------------------------------------
(1)CC=arm-linux-gcc CXX=arm-linux-g++ LD=arm-linux-ld AS=arm-linux-as AR=arm-linux-ar ./configure --prefix=/opt/minigui/arm/cross
(2)make
(3)make install
-----------------------------------------------------
7.編譯核心庫libminigui-gpl-3.0.12:【指定交叉工具鏈,指定安裝地址】
-----------------------------------------------------
(1)CC=arm-linux-gcc CXX=arm-linux-g++ LD=arm-linux-ld AS=arm-linux-as AR=arm-linux-ar CFLAGS='-I/opt/minigui/arm/cross/include -I/usr/local/arm/arm-2009q3/arm-none-linux-gnueabi/include ' CPPFLAGS='-g -I/opt/minigui/arm/cross/include -I/usr/local/arm/arm-2009q3/arm-none-linux-gnueabi/include ' CXXFLAGS='-g -I/opt/minigui/arm/cross/include -I/usr/local/arm/arm-2009q3/arm-none-linux-gnueabi/include ' ./configure --prefix=/opt/minigui/arm/cross --host=arm-linux --target=arm-linux --build=i386-linux --with-osname=linux --with-targetname=fbcon --enable-autoial --disable-vbfsupport --enable-tslibial --disable-screensaver --disable-splash --enable-procs
(2)【
vim src/newgal/pcxvfb/Makefile
修改194行,將/usr/include去掉:
INCLUDES = -I$(abs_top_srcdir)/src/include -I$(abs_top_srcdir)/include
-I$(abs_top_srcdir)/src/newgal/ -I/usr/include/
否則編譯pcxvfb.c將出錯
】
(3)make
(4)make install
-----------------------------------------------------
8.編譯例程mg-samples-3.0.12:【指定鏈接動態庫】
-----------------------------------------------------
./configure CC=arm-linux-gcc CXX=arm-linux-g++ LD=arm-linux-ld AS=arm-linux-as AR=arm-linux-ar CPPFLAGS=-I/opt/minigui/arm/cross/include prefix=/opt/minigui/arm/cross PKG_CONFIG_PATH=/opt/minigui/arm/cross/lib/pkgconfig
make
make install
線程版編譯程序:
(1)arm-linux-gcc -o helloworld helloworld.c -L/opt/minigui/arm/cross/lib -lminigui_ths -ljpeg -lm -lminigui_ths -ldl -lpng -lpng12 -lts -lz -I/opt/minigui/arm/cross/include
進程版,在mg-samples-3.0.12[mginit]文件夾編譯得到例程的mginit可執行文件:
(1)arm-linux-gcc mginit.c taskbar.c desktop.c -o mginit -I/opt/minigui/arm/cross/include -L/opt/minigui/arm/cross/lib -lminigui_procs -lpng -ljpeg -lz -lm -lts
(2)arm-linux-gcc -o helloworld helloworld.c -L/opt/minigui/arm/cross/lib -ljpeg -lm -lminigui_procs -ldl -lpng -lpng12 -lts -lz -I/opt/minigui/arm/cross/include
----------------------------------------------交叉編譯安裝部分完成,下面是移植到開發板----------------------------------------------------------------
-----------------------------------------------------
9.拷貝全部安裝文件到開發板 /usr/local【自行設定】
-----------------------------------------------------
(1)cp /opt/minigui/arm/cross/* 全部復制到 /usr/local 下
(2)export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH 【設置minigui的lib的環境變量,讓程序正常運行】
-----------------------------------------------------
9.修改MiniGui的配置環境
-----------------------------------------------------
(1)修改開發板上minigui配置文件vi /usr/local/etc/MiniGUI.cfg
把其中的system段修改成如下:
[system]
# GAL engine and default options
gal_engine=fbcon
defaultmode=240x320-32bpp 【32bpp 根據開發板的顯示屏的分辨率設定,網上的基本是16bpp。這里卡住了差不多2天】
# IAL engine
ial_engine=tslib //使用觸摸功能
mdev=/dev/event0 //這里的event0可能創建在 /dev/input/event0 自行查看
mtype=IMPS2
[fbcon]
defaultmode=240x320-32bpp 【32bpp 必須是32bpp,不然顯示不正常,觸摸不正常】
-----------------------------------------------------
10.配置tslib庫(觸摸)
-----------------------------------------------------
(1)移植Tslib到開發板,本教程是放在/usr/local/tslib
(2)配置tslib環境:
export TSLIB_ROOT=/usr/local/tslib
export TSLIB_TSDEVICE=/dev/event0
export TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf
export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts
export TSLIB_CALIBFILE=/etc/pointercal_a70
export TSLIB_CONSOLEDEVICE=none
export TSLIB_FBDEVICE=/dev/fb0
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TSLIB_ROOT/lib
(3)修改/usr/local/tslib/etc/ts.conf 中的內容應該是:
module_raw input
module pthres pmin=1
module variance delta=30
module dejitter delta=100
module linear
-----------------------------------------------------
11.校準觸摸屏
-----------------------------------------------------
(1)運行/usr/local/tslib/bin/ts_calibrate
-----------------------------------------------------
12.最后把之前編譯好的helloworld 拷貝到開發板運行
-----------------------------------------------------
(1)最后把helloworld拷貝到開發板中運行。
上一篇:s5pv210 uboot——移植DM9000網卡驅動
下一篇:s5pv210 fimc 之 fimc-dev.c
推薦閱讀最新更新時間:2025-04-23 19:54

設計資源 培訓 開發板 精華推薦
- SP6669, 1.5-MHZ, 600mA 同步降壓轉換器的典型應用
- 5 1811571128 徐曉劍
- 使用 Microchip Technology 的 TC18C46MJE 的參考設計
- LTC3110EFE 500mA USB 充電/備用應用的典型應用電路,具有可變充電功率 PCHRG,取決于系統負載
- ELRS Gemini雙子座高頻頭
- LTC1643A 的典型應用電路——PCI 總線熱插拔控制器
- VC-02語音控制
- 使用 ROHM Semiconductor 的 BA15BC0WT-V5 的參考設計
- 在 SOT-23 封裝中關斷的 TC1240A 正倍增電荷泵的典型應用
- 2*2通用運放板 運放洞洞板萬能版 2x雙運放