<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

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

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

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

  1.2.2微客戶(hù)/服務(wù)器結構

  在多線(xiàn)程中,與多進(jìn)程間的通訊機制類(lèi)似,線(xiàn)程之間也有交互和同步的需求。比如, 用來(lái)管理窗口的線(xiàn)程維持全局的窗口列表, 而其他線(xiàn)程不能直接修改這些全局的數據結構, 而必須依據“先來(lái)先服務(wù)”的原則,依次處理每個(gè)線(xiàn)程的請求,這就是一般性的客戶(hù)/服務(wù)器模式。利用線(xiàn)程之間的同步操作實(shí)現了客戶(hù)線(xiàn)程和服務(wù)器線(xiàn)程之間的微客戶(hù)/服務(wù)器機制。

  2 開(kāi)發(fā)

  H2410EB開(kāi)發(fā)板由北京恒頤高科技術(shù)有限公司設計開(kāi)發(fā),它基于Samsung公司的S3C2410A20ARM處理器。S3C2410A20內嵌 ARM920T 核,帶有全性能的MMU,具有高性能、低功耗、低成本、小體積等優(yōu)點(diǎn),適用于手持設備、汽車(chē)等領(lǐng)域。

  H2410EB除帶有大容量的SDRAM和Flash以外,還擴展了RS-232C串行接口、10Mbps以太網(wǎng)接口、觸摸屏接口、音頻輸入/輸出接口、USB Host、USB Slave、UART接口、IIC接口、用戶(hù)自定義鍵盤(pán)、LCD顯示器,方便用戶(hù)使用和進(jìn)行參考設計。它支持操作系統的運行,支持MP3/MPEG播放、GUI、Web 服務(wù)及其它服務(wù),同時(shí)可根據用戶(hù)需求開(kāi)發(fā)特定軟件與設備驅動(dòng)程序。

  操作系統采用裁減后的, Kernel版本為v2.4.18,系統使用的交叉編譯器是arm-Linux-gcc。另外,還有驅動(dòng)程序源碼和測試程序源碼等代碼模塊。

  3

  本文中使用的主機系統為Red Hat Linux 9.0,目標系統為L(cháng)inux2.4.18,的版本是1.6.9。在主機上交叉編譯MiniGUI鏈接庫,然后將針對目標機編譯的庫文件,與根文件系統一起燒寫(xiě)到目標板的RAM空間,以后將運行在目標板上的圖形用戶(hù)界面直接鏈接到該庫,脫離主機獨立運行。

  3.1 Linux交叉編譯的構建

  GUI的編譯通常都是在PC機上執行的,也就是說(shuō),編譯器本身能夠在PC機上執行,同時(shí)編譯源代碼生成的二進(jìn)制文件必須能在目標機上執行,這類(lèi)編譯器通常稱(chēng)為交叉編譯器。對于A(yíng)RM平臺,我們安裝了cross-arm-binutils-2.10-1.i386.rpm、cross-arm-gcc-2.95.3

  -2.i386.rpm、cross-arm-glibc-2.1.3-2.i386.rpm這三個(gè)包。這些包都可以從網(wǎng)上免費獲取。arm-binutils這個(gè)包一般包含了一些針對ARM平臺的二進(jìn)制工具,比如arm-strip、arm-ar等命令;arm-glibc這個(gè)包包含的是標準C的函數庫的ARM的版本以及對應的頭文件;arm-gcc中包含的則是生成ARM平臺代碼的x86上的交叉編譯器。執行rpm命令將這些包安裝到PC機上,若不在系統默認搜索目錄下,則必須將安裝目錄加到系統的PATH環(huán)境變量中,這樣在每次編譯時(shí)系統才能找得到編譯器。

  以root用戶(hù)登陸Linux系統,在主機上用rpm指令安裝交叉編譯工具,arm-linux-gcc將被安裝到/usr/local/arm/2.95.3/下面。此時(shí),gcc為 /usr/local/arm/2.95.3/bin/arm-linux-gcc,而它的include為 /usr/local/arm/2.95.3/arm-linux/include,對應的lib為 /usr/local/arm/2.95.3

  -/arm-linux/lib。然后,在你的bashrc 中添加環(huán)境變量即可

  vi .bashrc

  最后一行加入:export PATH=$PATH:/usr/local/arm/2.95.3/bin路徑

  保存退出后執行source .bashrc

  另外需要注意的是,編譯時(shí)所用的函數庫版本要與目標版上運行時(shí)所用的函數庫版本一致。經(jīng)過(guò)上述步驟,就已經(jīng)建立了交叉編譯環(huán)境,接下來(lái)的就是進(jìn)行MiniGUI的選項配置和交叉編譯。

  3.2 MiniGUI的配置和交叉編譯

  我們可以從網(wǎng)上http://www.minigui.com/download)免費得到MiniGUI-1.6.9的資源文件壓縮包,MiniGUI1.6.9的源程序包包括以下三個(gè)部分:

  libminigui-1.6.9.tar.gz-MiniGUI函數庫源代碼;

  miniguires-1.6.9.tar.gz-MiniGUI所使用的資源,包括基本字體、圖標、位圖、輸入法等;

  mde-1.6.9.tar.gz-MiniGUI的綜合演示程序。

  3.2.1 配置MiniGUI選項

  把函數庫文件包解壓:tar zxf libminigui-1.6.9.tar.gz,進(jìn)入libminigui-1.6.9這個(gè)目錄,執行make menuconfig命令

  -system wide options中選擇Build MiniGUI-Lite,并取消Use incore (built-in) resource選項;

  -Gal engine options 圖形引擎,根據目標機的顯示方式確認,這里只勾選了 NEWGal engine on Linux FrameBuffer console,其它的不選;

  -Ial engine options輸入引擎,可用觸摸屏只選了SMDK2410 Touch Screen;

  -Font Options 中取消選擇Var bitmap font,可能是因為Bug的原因,當選擇了該選項后,編譯測試例子的時(shí)候總是提示unreferenced vfb_Courier …之類(lèi)的錯誤;

  -Image options選擇了Includes SaveBitmap-related functions。GIF、JPG、PNG圖形格式也勾選上;

  -Development environment options 里使用Linux平臺,arm-linux-gcc編譯器,安裝路徑設置在 /usr/local/arm/2.95.3/arm-linux/。

  其它的用缺省選項就可以了,保存退出。

linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)


評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>