新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 嵌入式Linux環(huán)境下MiniGUI的研究與移植

嵌入式Linux環(huán)境下MiniGUI的研究與移植

作者: 時間:2009-08-25 來源:網(wǎng)絡(luò) 收藏

  3.2.2 函數(shù)庫的安裝和編譯

  進(jìn)入目錄libminigui-1.6.9,再運行./configure腳本:

  CC= arm-linux-gcc./configure――prefix=/mnt/nfs/local――build=i386-linux――host=arm-linux――target=arm-linux――disable-lite――disable-micemoveable――disable-cursor在這里,CC是用來指定所使用的編譯器,arm-linux-gcc即為安裝到主機(jī)上的交叉編譯工具。另外,

  --prefix為函數(shù)庫的安裝目標(biāo)路徑

  --build是指執(zhí)行編譯的主機(jī)

  --host交叉編譯后的程序?qū)⑦\行的系統(tǒng)

  --target是運行該編譯器所產(chǎn)生的目標(biāo)文件的平臺

  --disable-lite建立-Threads版本的應(yīng)用程序

  --disable-micemoveable禁止窗口移動

  --disable-cursor由于系統(tǒng)采用觸摸屏,所以用此選項用來關(guān)閉鼠標(biāo)光標(biāo)顯示

  如果運行./configure腳本成功通過,就可繼續(xù)進(jìn)行下面的編譯了,執(zhí)行make和make install命令編譯安裝libminigui。這里要注意的是,執(zhí)行make install命令時要切換到Root用戶權(quán)限下,不然安裝時沒法把文件裝到指定目錄下。安裝成功后,MiniGUI 的函數(shù)庫和頭文件以及配置文件等資源將被安裝到/usr/local/arm/2.95.3/arm-linux/目錄中,具體情況為:函數(shù)庫被裝在lib/ 子目錄中;頭文件被裝在include/ 子目錄中;手冊被裝在man/ 子目錄中;配置文件被裝在etc/ 子目錄中。

  3.2.3 MiniGUI資源的編譯安裝

  主機(jī)上解壓資源文件:tar zxf miniguires-1.6.9.tar.gz,可生成miniguires-1.6.9目錄。在安裝之前先要修改目錄中的configure.linux文件,執(zhí)行vi configure.linux打開文件,把prefix選項部分的默認(rèn)值 /usr/local/ 改為 /usr/local/arm/2.95.3/arm-linux/,這樣運行make install安裝命令后MiniGUI資源將被安裝到目標(biāo)系統(tǒng)中的/usr/local/arm/2.95.3/arm-linux/lib/minigui-

  /res的目錄下。

  3.2.4 實例程序的編譯安裝

  解壓mde-1.6.9.tar.gz并進(jìn)入該目錄,修改目錄下配置文件configure.in,把其中的AC_CHECK_HEADERS(minigui/commmon.h, have_libminigui=yes, foo=bar)改為

  AC_CHECK_HEADERS($prefix/include/minigui/common.h,have_libminigui=yes,foo=bar),來指定交叉編譯時搜minigui的頭文件路徑,防止編譯時系統(tǒng)找不到頭文件;在所有LIB=$LIB后加入CL{prefix}/lib來指定編譯時所需要庫文件的路徑。并將libpopt-dev-arm-cross-1.6.tgz解壓所生成的頭文件和庫文件分別放入目標(biāo)目錄的include和lib中,用以支持mde中程序在ARM下的交叉編譯。

  然后執(zhí)行./autogen.sh,重新生成configure腳本,使用上面配置的腳本然后執(zhí)行make命令,即可完成實例程序的編譯。

  4 拷貝MiniGUI資源到開發(fā)板

  編譯完MiniGUI和實例程序之后,需要把MiniGUI庫、資源和應(yīng)用程序拷貝到為目標(biāo)機(jī)器準(zhǔn)備的文件系統(tǒng)目錄中,然后生成文件系統(tǒng)映像,再下載到目標(biāo)板上運行??梢酝ㄟ^串口、USB口或以太網(wǎng)口將文件系統(tǒng)映像下載到目標(biāo)機(jī)器中。如果發(fā)現(xiàn)子目錄lib 中的MiniGUI 庫文件很大,很難全部拷貝到開發(fā)板上的話,可以對庫文件執(zhí)行arm-linux-strip操作,arm-linux-strip指令會除去文件中的調(diào)試信息,使文件體積大大縮小。另外需要注意的是,有些庫函數(shù)是鏈接文件,如果單純的拷貝,會將原先的鏈接信息丟失,造成不必要的麻煩。使用tar命令將所需拷貝的資源打包,其中包括etc子目錄下的配置文件MiniGUI.cfg;lib 子目錄下的libmgext-1.6.9.so.0.0、libminigui-1.6.9.so.0.0、libvcongui-1.6.9.so.0.0和minigui子目錄;mde-1.6.9目錄下的可執(zhí)行程序。將這些資源燒寫進(jìn)ramdisk文件系統(tǒng)中,解壓后將MiniGUI的配置文件MiniGUI.cfg放入/usr/local/etc目錄中,MiniGUI的庫文件放入/usr/local/lib目錄中。在執(zhí)行程序之前,還有一件重要的事情要做,就是在開發(fā)板上的中配置好MiniGUI的運行

  5板載配置

  MiniGUI可以使用多種圖形引擎進(jìn)行圖像顯示,有qvfb、SVGALib、LibGGI等等,當(dāng)然也可以自己編寫一個圖形引擎供MiniGUI使用。這里我們使用qvfb來作為MiniGUI的圖形引擎進(jìn)行圖像顯示。qvfb(vitural framebuffer)是在宿主機(jī)上模擬幀緩沖的,它是X Window用來運行和測試應(yīng)用程序的系統(tǒng)程序,允許我們在桌面及其上開發(fā)Qt程序,而不需要在命令臺和程序之間來回切換。qvfb使用了共享存儲區(qū)域(虛擬的幀緩沖)來模擬幀緩沖并且在一個窗口中(qvfb)模擬一個應(yīng)用來顯示幀緩沖,顯示的區(qū)域被周期性的改變和更新。通過指定顯示設(shè)備的寬度和顏色深度,虛擬出來的緩沖幀和物理的顯示設(shè)備在每個像素上保持一致。這樣我們在每次調(diào)試應(yīng)用時不需要總是刷新設(shè)備的FLASH存儲空間,從而加速了應(yīng)用的編譯、連接和運行周期。

  首先對qvfb進(jìn)行安裝,可以從這里下載http://www.minigui.com/downloads/dep-libs/qvfb

  -1.0.tar.gz),下載下來后進(jìn)行解壓:tar zxf qvfb-1.0.tar.gz并進(jìn)入到qvfb-1.0目錄,執(zhí)行./configure腳本后即可用make和make install命令進(jìn)行編譯安裝。

  更改MiniGUI的配置文件MiniGUI.cfg設(shè)置設(shè)備驅(qū)動程序,設(shè)置顯示區(qū)域及字體等內(nèi)容。修改/usr/local/etc目錄下的配置文件MiniGUI.cfg,將其中的驅(qū)動引擎gal_engine和ial_engine設(shè)置為qvfb,再將其中qvfb的defaultmode設(shè)置為合適的顯示模式。然后把qvfb加到可執(zhí)行路徑中去,執(zhí)行vi .bashrc命令,在 .bashrc最后面加上export PATH=/usr/local/arm/2.95.3/bin -:$PATH,保存退出后用source .bashrc命令執(zhí)行一下即可。

  在X Window中,打開一個終端仿真程序,執(zhí)行qvfb 命令。在qvfb中選中File Configure,將qvfb設(shè)置成開發(fā)系統(tǒng)的液晶屏的大小。合理設(shè)置MiniGUI的配置文件后,接著就可以運行MiniGUI應(yīng)用程序了。

  執(zhí)行應(yīng)用程序順利的話,屏幕上可以看到程序的運行界面。至此,MiniGUI已經(jīng)成功到目標(biāo)系統(tǒng)上。此后,我們可以根據(jù)需要,繼續(xù)修改MiniGUI庫函數(shù)及各種資源,并且編寫自己的應(yīng)用程序,使圖形用戶界面更加完善。

  6 結(jié)束語

  隨著嵌入式產(chǎn)品應(yīng)用領(lǐng)域的日益增長,開發(fā)出優(yōu)秀的人機(jī)交互界面,是嵌入式發(fā)展的趨勢,擁有廣闊的市場前景。MiniGUI可以穩(wěn)定可靠的運行在系統(tǒng)下,通過上述具體的和后續(xù)的MiniGUI下嵌入式軟件的開發(fā)過程,能快速構(gòu)建一個嵌入式可視化軟件系統(tǒng),相信這種嵌入式系統(tǒng)將會得到越來越多的應(yīng)用。

linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

上一頁 1 2 3 下一頁

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉