<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > QTE/Qtopia在Liod-270上的移植

          QTE/Qtopia在Liod-270上的移植

          ——
          作者:億道電子技術有限公司 時間:2006-07-07 來源:電子產(chǎn)品世界 收藏

          一、Qt、Liod-270平臺簡介 
           
          Qt/Embedded是著名的Qt庫開發(fā)商TrollTech(http://www.trolltech.com/)發(fā)布的面向的Qt版本。因為Qt是KDE等項目使用的GUI支持庫,所以有許多基于Qt的X Window程序可以非常方便地移植Qt/Embedded版本上。自從Qt/Embedded發(fā)布以來,就有大量的嵌入式Linux開發(fā)商轉到了Qt/Embedded系統(tǒng)上,并且有多種免費版本可以使用。本次2006年"英特爾杯"全國大學生電子競賽所用的Liod-270平臺,除了可以使用TinyX以外也可以選擇Qt。本文將以億道電子提供的Liod-270平臺為例,詳細說明QTE/Qtopia的移 植過程。
          Trolltech提供三大Qtopia版本:Qtopia手機版,Qtopia PDA版本和Qtopia消費電子產(chǎn)品平臺。本文采用的是Qtopia PDA版的免費版本。
           
          此次競賽平臺Liod是億道電子設計、生產(chǎn)并捐贈的。武耀博德信息技術有限公司( www.51board.com )是 億道電子 旗下全資控股的嵌入式方案設計公司,其前身是億道電子的嵌入式研發(fā)中心。武耀博德專業(yè)提供基于英特爾嵌入式處理器的ODM/OEM項目設計、測試、生產(chǎn)服務,涉及從高校實驗平臺、導航系統(tǒng)、數(shù)字家庭、多媒體終端、行業(yè)PDA、監(jiān)控項目、工業(yè)控制、RFID物流項目等等領域。

          二、移植過程
          1.編譯準備
          在編譯QTE和QPE之前,我們先要下載QTE和QPE的源代碼。
          上述的軟件都可以在"英特爾杯"全國大學生電子競賽的支持網(wǎng)站(www.xsbase.com )上下載得到。解壓上述的源代碼包。
          2.安裝Toolchain
          使用cp命令將 Xsbase-arm-linux-qt.tar.gz文件拷貝到PC上/usr/local/下,然后進入到/usr/local/目錄下,解壓該文件。
          為了之后在任何目錄下面都能夠使用Toolchain,必須要對路徑進行設置。打開/root/.bash_profile文件來設置路徑,用VI編輯器打開/root/.bash_profile文件并添加下述的路徑: 
           
          保存并退出該文件,使用source命令來使其路徑起作用。

          3. 編譯Qt/X11
          編譯qt-x11的唯一目的就是為編譯QTE提供uic(用戶接口編譯器)uic用來把.ui文件轉成.h和.cpp文件.uic是for x86的文件。 
           
           
          4. 編譯QTE的庫 
           
          拷貝qconfig-qpe.h文件到QTE中。 
           
          進入到qt-2.3.7文件夾里面,并進行configure。 
           
          configure 選項中:-qconfig qpe是編譯qtopia的配置參數(shù)。執(zhí)行configure的話會問到如下幾個問題:
          - 是否同意license?選擇yes。
          - 選擇colordepth時選擇16。 
          - 是否支持Qt Virtual Framebuffer?在ARM上用,可以選擇 no。Qt Virtual Framebuffer(qvfb)程序在X上實現(xiàn)Framebuffer。
          環(huán)境設置結束后彈出如下信息,因為是設置為ARM用,最下面一行的Build Type中會出現(xiàn)linux-arm-g++ -share。

          然后就可以執(zhí)行make sub-src。
          編譯結束后查看Qt/Embedded 庫來確認編譯是否正常。確認各個庫文件的連接關系。
          利用file命令確認生成的執(zhí)行文件是否適合目標平臺即生成ARM平臺的二進制文件。 
           
          前面將QT/E編譯了目標板上,但我們發(fā)現(xiàn)還不能進行操作,那是因為板子的觸摸屏設備驅(qū)動和QT/E的readMouseData()函數(shù)不匹配,需要修改QT/E源代碼。利用vi工具打開管理觸摸屏的QT/E源代碼/root/qt-2.3.7/src/kernel/qwsmouse_qws.cpp,并參考ARMLinux系統(tǒng)的觸摸屏ADS7843驅(qū)動代碼(/driver/char/ads7843_ts.c)中的讀函數(shù)來適當?shù)匦薷膮?shù)值。
          下面是修改好的readMouseData()的代碼。
          5編譯工具庫
          編譯Qtopia的時候需要用到jpeg和libuuid的庫。這兩個庫需要編譯到我們的交叉編譯工具中。
          首先編譯e2fsprogs。

          進入到e2fsprogs-1.32/lib/uuid文件夾里面,打開uuidP.h文件,把#include <ext2_types.h>改成#include "ext2_types.h"。修改e2fsprogs-1.32/lib/uuid下面的Makefile文件。 
           
          編譯后會生成我們需要的庫文件libuuid.a。
          我們需要把它拷貝到我們的工具鏈中。 
           
          Qtopia里面的BMP和JPEG格式的圖片的顯示需要調(diào)用到JPEG的庫函數(shù),因此我們需要編譯jpeg的庫。

          Configure后生產(chǎn)Makefile文件,我們需要編譯jpeg for ARM的庫,編譯前需要修改Makefile。 
           
          然后進行make 就可以了。

          6 編譯Qtopia
          所有的準備工作就完成了,就可以開始編譯QT的圖形用戶界面Qtopia了。先解壓。

          先configure一下。
          然后直接make一下就開始編譯Qtopia了。
          編譯完成后,我們可看到以下的文件夾是我們需要的。包括文件夾目錄apps , bin , etc , li8n , lib , pics , plugins ,include共八個文件夾。
          7運行Qtopia
          在文件系統(tǒng)的/usr目錄下新建一個qpe文件夾,把上面編譯好的Qtopia文件夾拷貝到這個qpe文件夾里面,同時把qt-2.3.7/lib下面的庫文件和font文件夾一起拷貝到文件系統(tǒng)的/usr/qpe/lib下面。
          運行Qtopia。運行后,首先可以看到Welcom to Qtopia,然后一些語言和時間的設置,最后就可以看到類似下面的界面,至此就移植全部完成了。讀者有任何問題可以在www.xsbase.com 上留貼。
          在這里,感謝上海交大、英特爾、億道對本文的支持。



          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();