《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于S3C2440的MiniGUI移植
基于S3C2440的MiniGUI移植
山西電子技術
龔惠紅
摘要: 隨著嵌入式系統的發展,嵌入式圖形用戶界面需求越來越明顯,MiniGUI是目前比較成熟的嵌入式Linux系統的圖形用戶界面。為了滿足嵌入式圖形用戶界面的需求,將MiniGUI移植到基于S3C2440的處理器目標板。首先說明了如何建立交叉環境,接著討論MiniGUI1.6.10庫和資源的移植,最后閘述運行環境的配置。實現了對S3C2440開發板的MiniGUI移植,完成嵌入式Linux圖形用戶界面的構建,并為其他嵌入式設備的移植提供借鑒。
Abstract:
Key words :

隨著嵌入式系統的迅速發展,圖形用戶界面(Graphic User Interface,GUI)需求越來越明顯。MiniGUI是面向實時嵌入式系統的輕量級圖形用戶界面支持系統,以輕型、占用資源少、高性能、可配置等特點廣泛應用于通信、醫療、工控、電子、機頂盒、多媒體等領域。本文正是針對這種需求,介紹如何在S3C240上移植MiniGUI的全過程。

1 圖形用戶界面MiniGUI
MiniGUI是由原清華大學教師魏永明主持開發的輕量級圖形系統,遵循GPL公約。所支持的操作系統已不僅僅限于Linux,它還可以在μCli nux,μC/OS-Ⅱ,eCos和VxWorks等系統上運行。已驗證的硬件平臺包括Intelx86,ARM(ARM7/AMR9/StrongARM/xScale),Power-PC,MIP S,M68K(DragonBall/ColdFire)等。
1.1 MiniGUI與嵌入式系統的關系
MiniGUI具有良好的軟件架構,通過抽象層將MiniGUI上層和底層操作系統隔離開來。如圖1所示,基于MiniGUI的應用程序一般通過ANSIC庫以及MiniGUI自身提供的API來實現自己的功能;MiniGUI中的“可移植層”可將特定操作系統及底層硬件的細節隱藏起來,而上層應用程序則無需關系底層的硬件平臺輸出和輸入設備。

a.JPG


1.2 MiniGUI體系結構
從結構上看,MiniGUI是分層設計的,層次結構如圖2所示。在底層,GAL和IAL為MiniGUI提供了底層的Linux控制臺或者X Window上的圖形接口以及輸入接口。中間層是MiniGUI的核心層,其中包括了窗口系統必不可少的各個模塊。最頂層的API向應用設計提供編程接口。

b.JPG



2 S3C2440開發平臺簡介
本文使用的目標平臺是三星公司推出的高度集成的S3C2440(ARM920T core with MMC),最高主頻可達532 MHz微處理器,提供64MB SDRA M,64 MBNAND FLASH以及2 MB NOR FLASH的存儲設備,另外包括IDE和PCMICA接口的豐富的外圍電路和多功能的擴展接口。S3C2440采用高性能ARM9微處理器以其優化的片上性能,在視頻會議、樓宇的對講系統、網絡監控、GPS定位/導航儀、醫療電子設備、多媒體終端產品等應用領域有廣泛應用。

3 MiniGUI的移植
宿主主機系統為redhat Linux 9.0,要求完全安裝,移植步驟如下:
3.1 建立交叉編譯環境
在移植之前首先建立好交叉編譯環境,簡單地說是指在一個平臺上可以生成能在另一個平臺上運行的代碼,編譯工具為arm-linux-gcc-3.3.2。
#tar-xvjf rm-linux-gcc-3.3.2
默認的安裝路徑是/usr/local,為了避免每次設置PATH,在.bash_profile文件中增加PATH=/usr/local/arm/3.4.1bin:MYMPA TH,并運行以下命令:
#source.bash_profile
3.2 源代碼準備
從http://www.minigui.org/res.shtml下載源代碼包如下:
(1)libminigui-1.6.10.tar.gz:MiniGUI函數庫源代碼。
MiniGUI由3個函數庫的組成,它們分別是libminigui,libmgext和libvcongui。libminigui是提供窗口管理和圖形接口的核心函數庫,也提供了大量的標準控件;libmgext是libminigui的一個擴展庫,提供了一些高級控件及“文件打開”、“顏色選擇”對話框等;libvcon gui則為Linux操作系統提供了一個應用程序可用的虛擬控制臺窗口,從而可以方便地在MiniGUI環境中運行字符界面的應用程序,libmgext和libvcongui庫已經包含在這個源代碼包中。
(2)minigui-res-1.6.10.tar.gz:MiniGUI所使用的資源,包括基本字體、圖標、位圖和鼠標光標。
(3)mg-smaples-1.6.10.tar.gz:配套示例程序。

3.3 編譯安裝
(1)建立工作目錄
# mkdir/minigui
# cd/minigui
(2)編譯安裝MiniGUI庫
# cd/minigui
# tar xzvf libminigui-1.6.10.tar.gz-C/minigui
# cd/minigui/libminigui-1.6.10
#./configure-prefix=/home/-host=i386-redhat-linux-target=arm-linux--build=arm-linuxCC=arm-linux-gcc--disa-ble-vbfsu pport
prefix選項用于指定MiniGUI函數庫的安裝路徑,默認的安裝路徑是/usr/local,這里應該是所使用的交叉編譯環境中系統頭文件目錄include庫目錄lib所在的目錄,本例中是/home,這樣一來,MiniGUI的函數庫和頭文件也將被分別安裝到lib和include目錄中。在后續進行MiniGUI應用程序的交叉編譯時,就可以正確地找到MiniGUI的頭文件和函數庫。其中:
target選項用于指定目標平臺,這里使用arm-linux;
host選項用來指明宿主機的類型,這里使用i386-redhat-linux;
build選項指定了交叉編譯的系統環境,這里使用arm-linux;
CC用來指定使用的交叉編譯器,這里使用arm-linux-gcc。
運行.configure腳本成功后,就成了定制的Make-file文件,接下來只需編譯和安裝即可。
# make
# make install
(3)編譯安裝MiniGUI資源文件
# tar xzvf minigui-res-1.6.10.tar.gz-C/minigui
# cd/minigui/minigui-res-1.6.10
# make install
(4)編譯安裝配套應用程序
# tar mg-smaples-1.6.10.tar.gz-C/minigui
# cd/minigui/mg-smaples-1.6.10# make install
3.4 拷貝MiniGUI資源到開發板
把/home/lib目錄下的所有庫文件(注:-prefix=/home/)拷貝到開發板的/lib目錄下;把/minigui/res目錄下的所有文件拷貝到開發板上/usr/local/lib目錄下,其開發板上的目錄如下形式/usr/local/lib/minigui/res/……;把/home/etc下的MiniGUI.c fg拷貝到開發板上的/etc目錄下;最后把配套應用程序拷貝到開發板目錄下。
3.5 配置開發板的運行環境
(1)/etc目錄下建立ld.so.conf文件,并添加如下內容:
/usr/local/lib
/lib
這樣程序運行的時候可以找到相應的庫文件。
(2)修改開發板上的/etc/MiniGUI.cfg文件,主要修改是圖形引擎和輸入引擎。本開發平臺的Linux中自帶有VESAFrameBuffer設備驅動程序,并且初始狀態已經激活。FrameBuffer是Linux內核中的一種驅動程序接口,這種接口將顯示設備抽象為幀緩沖區,用戶可以將它看成是顯示內存的一個映像。將其映射到進程地址空間之后,就可以直接進行讀寫操作,而寫操作可以立即反映在屏幕上。這樣,MiniGUI就可以使用FrameBuffer作為圖形引擎進行圖像顯示。LCD顯示器的像素為240x320,因此圖形引擎的顯示模式defaultmode為240x320-16bpp。并在輸入引擎中添加usb鼠標設備文件和鼠標協議。修改如下:
d.JPG
同時在/etc/init.d/rcS腳本文件里添加鼠標設備,內容如下:
/bin/ln-s/devr/vc/0/dev/tty0
/bin/ln-s/dev/input/mouse0/dev//mouse

4 結語
把圖形用戶界面移植到嵌入式設備中是嵌入式系統發展的趨勢,本文詳細介紹了MiniGUI移植到S3C2440的過程,并最終能穩定得在目標平臺上運行。該方法對于移植到其他的目標平臺有良好的借鑒作用。MiniGUI作為源代碼開放的自由軟件,在嵌入式圖形用戶界面領域將有更好的實用價值,并隨著MiniGUI的功能日趨強大,應用將越來越廣泛。

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
欧美成人午夜激情视频| 国产精品久久久免费| 亚洲免费视频一区二区| 99天天综合性| 亚洲精品乱码| 亚洲九九九在线观看| 亚洲欧洲在线视频| 亚洲人成人77777线观看| 亚洲国产美女| 亚洲人成7777| 日韩视频中文| 野花国产精品入口| 99精品免费视频| 一区二区三区视频在线| 亚洲视频在线观看视频| 亚洲综合日韩中文字幕v在线| 一本久久综合亚洲鲁鲁五月天| 亚洲精品久久久久久久久久久久| 亚洲欧洲在线播放| 99re成人精品视频| 这里只有精品视频| 午夜精品一区二区三区四区 | 国产亚洲欧美日韩美女| 国产一区美女| 亚洲第一精品久久忘忧草社区| 亚洲国产精品精华液网站| 亚洲黄一区二区三区| 亚洲伦理中文字幕| 亚洲视频成人| 性色一区二区| 亚洲缚视频在线观看| 亚洲日本成人网| 亚洲图色在线| 久久激情五月婷婷| 欧美国产大片| 国产精品看片你懂得| 国产日韩欧美综合| 亚洲电影自拍| 夜夜夜久久久| 欧美一区二区三区四区高清| 亚洲欧洲日产国产综合网| 一区二区三区视频观看| 亚洲欧美日韩在线观看a三区| 久久久99免费视频| 欧美日本一区二区高清播放视频| 国产精品国产福利国产秒拍| 国际精品欧美精品| 亚洲韩国一区二区三区| 亚洲一区观看| 亚洲精品少妇30p| 香蕉久久久久久久av网站| 麻豆成人精品| 国产精品超碰97尤物18| 精品va天堂亚洲国产| 日韩小视频在线观看| 欧美一区二区三区精品| 一区二区欧美激情| 久久九九热re6这里有精品| 欧美激情小视频| 国产日本精品| 日韩亚洲欧美精品| 久久精品亚洲一区| 亚洲欧美成人精品| 欧美成人日本| 国产一区二区丝袜高跟鞋图片| 亚洲精品国产精品国产自| 欧美一区二区视频97| 亚洲午夜电影| 欧美国产日韩一区二区在线观看| 国产欧美日本一区二区三区| 日韩香蕉视频| 亚洲欧洲精品一区二区三区 | 一区二区三区视频在线观看| 久久精品综合一区| 欧美日韩在线播放一区二区| 国产亚洲精品久久飘花| 亚洲免费电影在线| 亚洲高清视频在线观看| 午夜视频一区二区| 欧美美女操人视频| 在线观看中文字幕亚洲| 先锋a资源在线看亚洲| 亚洲无人区一区| 女女同性女同一区二区三区91| 国产女人aaa级久久久级| 99国产精品视频免费观看| 亚洲精品久久久久久下一站 | 亚洲国产另类久久久精品极度| 午夜精品一区二区三区四区| 一区二区三区四区精品| 欧美电影美腿模特1979在线看| 国产色产综合产在线视频| 夜夜爽www精品| 一本久道久久综合婷婷鲸鱼| 久热国产精品视频| 国产一区在线观看视频| 亚洲欧美日韩中文在线制服| 亚洲影院色在线观看免费| 欧美精品一级| 亚洲国产欧美国产综合一区 | 亚洲毛片在线看| 免费欧美日韩国产三级电影| 国产一区二区三区久久悠悠色av| 亚洲香蕉在线观看| 亚洲香蕉在线观看| 欧美日韩一区二区免费在线观看| 最新亚洲一区| 亚洲精品日韩欧美| 欧美大片91| 亚洲国产精品久久| 亚洲精品网址在线观看| 欧美成人高清| 亚洲激情成人网| 日韩一级黄色片| 欧美人与禽猛交乱配视频| 亚洲经典一区| 亚洲精品影视在线观看| 欧美国产在线电影| 亚洲国产裸拍裸体视频在线观看乱了中文 | 亚洲美女中出| 欧美激情精品久久久久| 亚洲国产精品999| 亚洲精品乱码久久久久久按摩观 | 亚洲高清视频在线| 亚洲剧情一区二区| 欧美精品1区2区| 亚洲美女色禁图| 亚洲天堂av在线免费观看| 欧美日韩伦理在线免费| 亚洲作爱视频| 午夜欧美大片免费观看| 国产日产欧产精品推荐色| 欧美一区二区三区播放老司机| 久久免费黄色| 亚洲国产精品第一区二区| 99视频精品免费观看| 欧美色欧美亚洲另类七区| 亚洲午夜精品久久久久久浪潮| 欧美一区二区啪啪| 狠狠88综合久久久久综合网| 亚洲国产美国国产综合一区二区| 欧美成人自拍视频| 99视频在线精品国自产拍免费观看| 亚洲一级二级| 国产有码一区二区| 亚洲另类一区二区| 国产精品久久久久久户外露出 | 亚洲经典视频在线观看| 欧美精品一区二区三区蜜臀| 一本一本a久久| 久久er精品视频| 18成人免费观看视频| av成人黄色| 国产精一区二区三区| 亚洲电影av在线| 欧美日韩国产影院| 亚洲综合丁香| 男同欧美伦乱| 一区二区免费在线视频| 久久狠狠久久综合桃花| 亚洲国产裸拍裸体视频在线观看乱了| 亚洲视频精品| 黄色亚洲网站| 亚洲视频免费在线| 国内精品视频一区| 一区二区三区精密机械公司 | 亚洲一级在线观看| 国产一区二区三区成人欧美日韩在线观看| 亚洲激情影院| 国产精品一区2区| 亚洲精品国精品久久99热一| 国产精品视频久久久| 亚洲国产精品精华液网站| 欧美视频导航| 亚洲国产一区二区三区a毛片| 国产精品电影观看| 亚洲日本欧美| 国产伦精品一区二区三区视频孕妇 | 亚洲另类视频| 久久久欧美一区二区| 亚洲免费成人av| 卡通动漫国产精品| 亚洲一区二区黄色| 欧美国产日韩在线观看| 欧美一区二区三区视频在线 | 亚洲激情社区| 国产日韩欧美91| 亚洲视频免费在线观看| 伊人婷婷欧美激情| 午夜激情久久久| 日韩亚洲在线观看| 欧美成人激情视频免费观看| 亚洲欧美日韩综合国产aⅴ| 欧美日韩国产在线一区| 亚洲国产精品久久久久婷婷884| 国产精品视频免费| 亚洲一区二区免费视频| 亚洲国产精品成人综合| 久久久久www| 亚洲欧美日韩国产一区|