日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 嵌入式 > 嵌入式教程
[導讀]基于S3C2440的MiniGUI移植

摘要:隨著嵌入式系統(tǒng)的發(fā)展,嵌入式圖形用戶界面需求越來越明顯,MiniGUI是目前比較成熟的嵌入式Linux系統(tǒng)的圖形用戶界面。為了滿足嵌入式圖形用戶界面的需求,將MiniGUI移植到基于S3C2440的處理器目標板。首先說明了如何建立交叉環(huán)境,接著討論MiniGUI 1.6.10庫和資源的移植,最后閘述運行環(huán)境的配置。實現(xiàn)了對S3C2440開發(fā)板的MiniGUI移植,完成嵌入式Linux圖形用戶界面的構(gòu)建,并為其他嵌入式設備的移植提供借鑒。
關鍵詞:嵌入式系統(tǒng);MiniGUI;S3C2440;移植

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

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


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



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

3 MiniGUI的移植
    宿主主機系統(tǒng)為redhat Linux 9.0,要求完全安裝,移植步驟如下:
3.1 建立交叉編譯環(huán)境
    在移植之前首先建立好交叉編譯環(huán)境,簡單地說是指在一個平臺上可以生成能在另一個平臺上運行的代碼,編譯工具為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函數(shù)庫源代碼。
    MiniGUI由3個函數(shù)庫的組成,它們分別是libminigui,libmgext和libvcongui。libminigui是提供窗口管理和圖形接口的核心函數(shù)庫,也提供了大量的標準控件;libmgext是libminigui的一個擴展庫,提供了一些高級控件及“文件打開”、“顏色選擇”對話框等;libvcon gui則為Linux操作系統(tǒng)提供了一個應用程序可用的虛擬控制臺窗口,從而可以方便地在MiniGUI環(huán)境中運行字符界面的應用程序,libmgext和libvcongui庫已經(jīng)包含在這個源代碼包中。
    (2)minigui-res-1.6.10.tar.gz:MiniGUI所使用的資源,包括基本字體、圖標、位圖和鼠標光標。
    (3)mg-smaples-1.6.10.tar.gz:配套示例程序。[!--empirenews.page--]
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函數(shù)庫的安裝路徑,默認的安裝路徑是/usr/local,這里應該是所使用的交叉編譯環(huán)境中系統(tǒng)頭文件目錄include庫目錄lib所在的目錄,本例中是/home,這樣一來,MiniGUI的函數(shù)庫和頭文件也將被分別安裝到lib和include目錄中。在后續(xù)進行MiniGUI應用程序的交叉編譯時,就可以正確地找到MiniGUI的頭文件和函數(shù)庫。其中:
    target選項用于指定目標平臺,這里使用arm-linux;
    host選項用來指明宿主機的類型,這里使用i386-redhat-linux;
    build選項指定了交叉編譯的系統(tǒng)環(huán)境,這里使用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資源到開發(fā)板
    把/home/lib目錄下的所有庫文件(注:-prefix=/home/)拷貝到開發(fā)板的/lib目錄下;把/minigui/res目錄下的所有文件拷貝到開發(fā)板上/usr/local/lib目錄下,其開發(fā)板上的目錄如下形式/usr/local/lib/minigui/res/……;把/home/etc下的MiniGUI.c fg拷貝到開發(fā)板上的/etc目錄下;最后把配套應用程序拷貝到開發(fā)板目錄下。
3.5 配置開發(fā)板的運行環(huán)境
    (1)/etc目錄下建立ld.so.conf文件,并添加如下內(nèi)容:
    /usr/local/lib
    /lib
    這樣程序運行的時候可以找到相應的庫文件。
    (2)修改開發(fā)板上的/etc/MiniGUI.cfg文件,主要修改是圖形引擎和輸入引擎。本開發(fā)平臺的Linux中自帶有VESAFrameBuffer設備驅(qū)動程序,并且初始狀態(tài)已經(jīng)激活。FrameBuffer是Linux內(nèi)核中的一種驅(qū)動程序接口,這種接口將顯示設備抽象為幀緩沖區(qū),用戶可以將它看成是顯示內(nèi)存的一個映像。將其映射到進程地址空間之后,就可以直接進行讀寫操作,而寫操作可以立即反映在屏幕上。這樣,MiniGUI就可以使用FrameBuffer作為圖形引擎進行圖像顯示。LCD顯示器的像素為240x320,因此圖形引擎的顯示模式defaultmode為240x320-16bpp。并在輸入引擎中添加usb鼠標設備文件和鼠標協(xié)議。修改如下:
   
    同時在/etc/init.d/rcS腳本文件里添加鼠標設備,內(nèi)容如下:
    /bin/ln-s/devr/vc/0/dev/tty0
    /bin/ln-s/dev/input/mouse0/dev//mouse

4 結(jié)語
    把圖形用戶界面移植到嵌入式設備中是嵌入式系統(tǒng)發(fā)展的趨勢,本文詳細介紹了MiniGUI移植S3C2440的過程,并最終能穩(wěn)定得在目標平臺上運行。該方法對于移植到其他的目標平臺有良好的借鑒作用。MiniGUI作為源代碼開放的自由軟件,在嵌入式圖形用戶界面領域?qū)⒂懈玫膶嵱脙r值,并隨著MiniGUI的功能日趨強大,應用將越來越廣泛。

本站聲明: 本文章由作者或相關機構(gòu)授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: 驅(qū)動電源

在工業(yè)自動化蓬勃發(fā)展的當下,工業(yè)電機作為核心動力設備,其驅(qū)動電源的性能直接關系到整個系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護是驅(qū)動電源設計中至關重要的兩個環(huán)節(jié),集成化方案的設計成為提升電機驅(qū)動性能的關鍵。

關鍵字: 工業(yè)電機 驅(qū)動電源

LED 驅(qū)動電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個照明設備的使用壽命。然而,在實際應用中,LED 驅(qū)動電源易損壞的問題卻十分常見,不僅增加了維護成本,還影響了用戶體驗。要解決這一問題,需從設計、生...

關鍵字: 驅(qū)動電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動電源的公式,電感內(nèi)電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關鍵字: LED 設計 驅(qū)動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動汽車的核心技術之一是電機驅(qū)動控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機驅(qū)動系統(tǒng)中的關鍵元件,其性能直接影響到電動汽車的動力性能和...

關鍵字: 電動汽車 新能源 驅(qū)動電源

在現(xiàn)代城市建設中,街道及停車場照明作為基礎設施的重要組成部分,其質(zhì)量和效率直接關系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進步,高亮度白光發(fā)光二極管(LED)因其獨特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關鍵字: 發(fā)光二極管 驅(qū)動電源 LED

LED通用照明設計工程師會遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關鍵字: LED 驅(qū)動電源 功率因數(shù)校正

在LED照明技術日益普及的今天,LED驅(qū)動電源的電磁干擾(EMI)問題成為了一個不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關鍵字: LED照明技術 電磁干擾 驅(qū)動電源

開關電源具有效率高的特性,而且開關電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機重量也有所下降,所以,現(xiàn)在的LED驅(qū)動電源

關鍵字: LED 驅(qū)動電源 開關電源

LED驅(qū)動電源是把電源供應轉(zhuǎn)換為特定的電壓電流以驅(qū)動LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: LED 隧道燈 驅(qū)動電源
關閉