專(zhuān)利名稱(chēng):一種移植qt到arm的系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種移植QT到ARM的系統(tǒng),屬于程序移植技術(shù)領(lǐng)域。
背景技術(shù):
自從1945年人類(lèi)歷史上第一臺(tái)現(xiàn)代意義的電子計(jì)算機(jī)ENIAC誕生以來(lái),計(jì)算機(jī)技術(shù)已經(jīng)發(fā)生了翻天覆地的變化,隨著技術(shù)進(jìn)步的不斷加速,我們有理由相信計(jì)算機(jī)還將繼續(xù)快速發(fā)展并進(jìn)一步改變我們的生活,讓計(jì)算變得“無(wú)所不能”、“無(wú)處不在”。其中“無(wú)所不能”將是人工智能技術(shù)和超級(jí)計(jì)算機(jī)的結(jié)合,而“無(wú)所不在”則是嵌入式技術(shù)應(yīng)用的廣闊天地?,F(xiàn)在普通消費(fèi)者已經(jīng)可以從市場(chǎng)中買(mǎi)到數(shù)碼相機(jī)、移動(dòng)電話(huà)、MP3等等,這些其實(shí)都只是嵌入式應(yīng)用的冰山一角,不遠(yuǎn)的將來(lái)嵌入式設(shè)備將會(huì)嵌入在桌子、椅子、餐具、窗簾等各種日常用品中,全面走入人類(lèi)的生活,而且還會(huì)在人類(lèi)的工業(yè)、軍事、自然探索等各方面廣泛應(yīng)用。ARM (Advanced RISC Machines,精簡(jiǎn)指令集計(jì)算機(jī))處理器作為嵌入式領(lǐng)域的代表,引領(lǐng)著嵌入式行業(yè)的發(fā)展。ARM處理器在不斷地推陳出新,ARM9應(yīng)用相當(dāng)?shù)膹V泛,可供參考的資源也是相當(dāng)?shù)膹V泛。但隨著嵌入式行業(yè)的發(fā)展,ARMll的廣泛使用將會(huì)是必然趨勢(shì)。QT(C++圖形用戶(hù)界面庫(kù))做為圖形界面的代名詞,在嵌入式領(lǐng)域的應(yīng)用也是十分的普遍,包括Win7、Linux、Mac OS X等,但QT在A(yíng)RMll上的應(yīng)用卻沒(méi)有豐富且完整的案例。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種能夠?qū)T移植到ARM上的系統(tǒng)。本發(fā)明的目的是通過(guò)以下技術(shù)方案實(shí)現(xiàn)的一種移植QT到ARM的系統(tǒng),包括交叉編譯模塊,設(shè)置在執(zhí)行主機(jī)中,用于對(duì)QT程序進(jìn)行交叉編譯,以使經(jīng)過(guò)交叉編譯的QT程序能夠在A(yíng)RM上運(yùn)行;TSLIB庫(kù)模塊,設(shè)置在執(zhí)行主機(jī)中,用于在A(yíng)RM上實(shí)現(xiàn)觸摸輸入;QT模塊,設(shè)置在執(zhí)行主機(jī)中,用于提供對(duì)QT程序的支持。本發(fā)明提供的安全監(jiān)控設(shè)備,通過(guò)對(duì)QT程序的交叉編譯,使經(jīng)過(guò)交叉編譯的QT程序能夠在A(yíng)RM上運(yùn)行,從而實(shí)現(xiàn)將QT移植到ARM上。
圖1是本發(fā)明具體實(shí)施方式
提供的移植QT到ARM的系統(tǒng)的結(jié)構(gòu)示意圖;圖2是本發(fā)明具體實(shí)施方式
提供的增加了測(cè)試單元的移植QT到ARM的系統(tǒng)的結(jié)構(gòu)示意圖。
具體實(shí)施例方式本發(fā)明具體實(shí)施方式
提供了一種移植QT到ARM的系統(tǒng),如圖1所示,該系統(tǒng)具體包括交叉編譯模塊1,設(shè)置在執(zhí)行主機(jī)中,用于對(duì)QT程序進(jìn)行交叉編譯,以使經(jīng)過(guò)交叉編譯的QT程序能夠在A(yíng)RM上運(yùn)行;TSLIB庫(kù)模塊2,設(shè)置在執(zhí)行主機(jī)中,用于在A(yíng)RM上實(shí)現(xiàn)觸摸輸入;QT模塊3,設(shè)置在執(zhí)行主機(jī)中,用于提供對(duì)QT程序的支持。具體的,執(zhí)行主機(jī)作為工作站,用來(lái)完成程序的編譯和鏈接,最后生成能夠在目標(biāo)主機(jī)上運(yùn)行的可執(zhí)行程序;交叉編譯模塊1設(shè)置在執(zhí)行主機(jī)中,由于傳統(tǒng)的PC處理器和 AMR處理器是兩種不同架構(gòu)的處理器,在PC上能夠運(yùn)行的QT程序在A(yíng)RM上是不能直接運(yùn)行的,因此需要有一個(gè)交叉編譯環(huán)境,能夠使在PC上編譯通過(guò)的QT程序能夠在A(yíng)RM上運(yùn)行, 這個(gè)過(guò)程稱(chēng)為交叉編譯;TSLIB庫(kù)模塊2設(shè)置在執(zhí)行主機(jī)中,由于TSLIB是一個(gè)開(kāi)源的觸摸屏庫(kù),能夠做到對(duì)觸摸屏的支持,由于A(yíng)RMll的開(kāi)發(fā)板上配備有觸摸屏,因此需要移植這個(gè)開(kāi)源的庫(kù),來(lái)對(duì)觸摸屏進(jìn)行支持;QT模塊3設(shè)置在執(zhí)行主機(jī)中,是一個(gè)QT圖形界面軟件包, 是由Trolltech (奇趣)公司提供的一個(gè)開(kāi)源的,針對(duì)嵌入式產(chǎn)品開(kāi)發(fā)的軟件包,移植的最終目的就是要在A(yíng)RMll開(kāi)發(fā)板上運(yùn)行這套圖形界面環(huán)境;目標(biāo)主機(jī)為ARMll開(kāi)發(fā)板。進(jìn)一步地,如圖2所示,本具體實(shí)施方式
還可以包括一個(gè)測(cè)試子單元4,用于測(cè)試移植的QT程序是否能在A(yíng)RM上運(yùn)行。測(cè)試單元4即是QT軟件包自帶的一個(gè)應(yīng)用程序,通過(guò)測(cè)試單元來(lái)檢測(cè)移植是否成功。具體移植步驟包括1.移植環(huán)境主機(jī)系統(tǒng)Ubuntu9. 04主機(jī)編譯器gcc版本4. 3. 3交叉編譯器arm-linux-gcc-4. 1. 2軟件資源qt-embedded-1 inux-opensource-src-4. 5. 3. tar. gz tslib-1. 4. tar. gz2.移植步驟2. 1安裝交叉編譯器· 1 才巴 arm920t-eabi-4. 1. 2. tar. gz 拷至Ij /home 下· 2 :cd/home· 3 :tar zxvf arm920t-eabi-4. 1. 2. tar. gz~C/· 4 :gedit/etc/bash. bashrc·在該文件的末尾加上 export PATH = $PATH :/opt/toolchains/arm920teabi/ bin· 5 :source/etc/bash. bashrc2. 2Tslib 移植· 1 : tslib-1. 4. tar. gz 拷至Ij /home 下· 2 :#cd/home· 3 :#tar zxvf tslib-1. 4. tar. gz· 4 :#cd tslib· 5 :#. /autogen. sh(注此步需要一些工具,ubuntu 下需要安裝 automake>autoconf、libtool,可以執(zhí)行下面語(yǔ)句安裝 #sudo apt-get install automake autoconf libtool) 6 /configure__prefix = /home/tslib/__host = arm-1inuxac_cv_func_ ma110 c_0_nonnu11 = yes 7 :#make 8 :#make install 9 :#gedit/home/tslib/etc/ts. conf說(shuō)明把該文件中的所有內(nèi)容都刪除,加上如下內(nèi)容module—raw inputmodule pthres pmin = 1module variance delta = 30module dejitter delta = 100module linear2. 3QT 移植1 :把 qt-embedded-linux-opensource-src-4. 5. 3. tar. gz 拷至Ij /home 下2 :#cd/home3 :#tar zxvf qt-embedded-linux-opensource-src-4. 5. 3. tar. gz4:#cd qt-embedded-linux-opensource-src-4. 5. 35 /configure-prefix/home/qt-arm/build\-conf irm-1icense\-release-shared\-fast\-pch\-no-qt3support\-qt-sql-sqlite\-no-libtiff-no-libmng\-qt-libjpeg\-qt-zlib\-qt-libpng\-qt-freetype\-no-openssl\-nomake examples-nomake demos-nomake tools\-optimized-qmake\-no-phonon\-no-nis\-no-opengl\-no-cups\-no-xcursor-no-xfixes-no-xrandr-no-xrender-no-xkb-no-sm\-no-xinerama-no-xshape\0076]-no-separate-debug-info\
0077]-χρlatform qws/1inux-arm-g++\
0078]-embedded arm\
0079]-depths 16\
0080]-no-qvfb\
0081]-qt-gfx-linuxfb\
0082]-no-gfx-qvfb-no-kbd-qvfb-no-mouse-qvfb\
0083]-qt-kbd-usb\
0084]-no-armfpa\
0085]-qt-mouse_tslib\
0086]-L/home/tslib/lib\
0087]-I/home/tslib/include
0088](如果提示找不到g++,運(yùn)行apt-getinatall g++命令,然后再運(yùn)行上面的命令)
0089]6 :#make
0090]7 :#make install
0091]3.測(cè)試
0092]3. 1掛載NFS文件系統(tǒng)
0093]1 裝 NFS 月艮務(wù)器 #apt—get install nfs-kernel-server
0094]2 修改 NFS 配制 #gedit/etc/exports
0095]在該文件末尾加入
0096]/home/nfs 192.168. 102. 125(rw, sync,no_root一squash)
0097](說(shuō)明192.168. 102. 125為開(kāi)發(fā)板的IP地址)
0098]3 :#mkdir/home/nfs
0099]4:重啟NFS服務(wù)
0100]#/etc/init. d/portmap restart
0101]#/etc/init. d/nfs-kernel-server restart
0102]3. 2修改文件系統(tǒng)
0103]1 把 urbetter-rootfs-qt-2. 2. 0. tgz 拷到 /home/nfs
0104]2 :#cd/home/nfs
0105]3 :#tar zxvf urbetter-rootfs-qt-2. 2. 0. tgz
0106]4 把/home/nfs/opt/Qtopia下所有內(nèi)容都刪除
0107]5 把/home/nfs/usr/local下的所有內(nèi)容都刪除
0108]6 把 /home/qt-arm/build 目錄下 lib 文件夾拷 /home/nfs/opt/Qtopia 下
0109]7 打開(kāi) /home/nfs/etc/init. d/rcS 文件,刪除如下內(nèi)容
0110]/bin/qtopia &
0111]echo “ ‘‘ >/dev/ttyl
0112]echo“ Starting Qtopia, please waiting. . . " >/dev/ttyl
0113]echo""
0114]echo" Starting Qtopia, please waiting..."
8 :#mv/home/tslib/home/nfs/usr/local/3. 3設(shè)置環(huán)境變量1 :#gedit/home/nfs/etc/profile2 在該文件末尾加上如下內(nèi)容export QTDIR = /opt/Qtopiaexport PATH = $QTDIR/bin: $PATHexport QT_QWS_F0NTDIR = /opt/Qtopia/lib/fontsexport TSLIB_R00T = /usr/local/tslibexport TSLIB_TSDEVICE = /dev/input/eventlexport TSLIB_CALIBFILE = /etc/pointercalexport TSLIB_C0NS0LEDEVICE = noneexport TSLIB_C0NFFILE = $TSLIB_R00T/etc/ts. confexport TSLIB_PLUGINDIR = $TSLIB_R00T/lib/tsexportLD_LIBRARY_PATH = $TSLIB_R00T/lib:$QTDIR/lib:$LD_LIBRARY_PATHexport TSLIB_FBDEVICE = /dev/fbOTS_INF0_FILE = /sys/devices/platform/uevent3. 4運(yùn)行QT程序1 :#gedit/etc/bash. bashrc2 在文件末尾加上 export PATH = $PATH /home/qt-arm/build/bin3 :#source/etc/bash. bashrc4 把/home/qt-embedded-linux-opensource-src-4. 5. 3/demos 下的 embedded 巨錄拷到/home/nfs下5 :#cd/home/qt_arm/build/bin6 :#cp qmake qmake-arm7 :#cd /home/nfs/embedded8 :#qmake_arm9 :#make3. 5 測(cè)試1:連接網(wǎng)線(xiàn)串口3 進(jìn)入開(kāi)發(fā)板的串口連接的終端2 :#cd/embedded/fluidlauncher3 :#·/fluidlauncher-qws采用本實(shí)施例提供的技術(shù)方案,通過(guò)對(duì)QT程序的交叉編譯,使經(jīng)過(guò)交叉編譯的QT 程序能夠在A(yíng)RM上運(yùn)行,從而實(shí)現(xiàn)將QT移植到ARM上,為在嵌入式產(chǎn)品上應(yīng)用更多的基于 QT的應(yīng)用程序做好準(zhǔn)備,同時(shí)也彌補(bǔ)了 ARMll學(xué)習(xí)資源相對(duì)匱乏的局面。以上所述,僅為本發(fā)明較佳的具體實(shí)施方式
,但本發(fā)明的保護(hù)范圍并不局限于此, 任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換, 都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種移植QT到ARM的系統(tǒng),其特征在于,包括交叉編譯模塊,設(shè)置在執(zhí)行主機(jī)中,用于對(duì)QT程序進(jìn)行交叉編譯,以使經(jīng)過(guò)交叉編譯的QT程序能夠在A(yíng)RM上運(yùn)行;TSLIB庫(kù)模塊,設(shè)置在執(zhí)行主機(jī)中,用于在A(yíng)RM上實(shí)現(xiàn)觸摸輸入; QT模塊,設(shè)置在執(zhí)行主機(jī)中,用于提供對(duì)QT程序的支持。
2.根據(jù)權(quán)利要求1所述的移植QT到ARM的系統(tǒng),其特征在于,在QT模塊中包括 測(cè)試子單元,用于測(cè)試移植的QT程序是否能在A(yíng)RM上運(yùn)行。
全文摘要
本發(fā)明提供了一種移植QT到ARM的系統(tǒng),屬于程序移植技術(shù)領(lǐng)域,該系統(tǒng)包括交叉編譯模塊,設(shè)置在執(zhí)行主機(jī)中,用于對(duì)QT程序進(jìn)行交叉編譯,以使經(jīng)過(guò)交叉編譯的QT程序能夠在A(yíng)RM上運(yùn)行;TSLIB庫(kù)模塊,設(shè)置在執(zhí)行主機(jī)中,用于在A(yíng)RM上實(shí)現(xiàn)觸摸輸入;QT模塊,設(shè)置在執(zhí)行主機(jī)中,用于提供對(duì)QT程序的支持。本發(fā)明通過(guò)對(duì)QT程序的交叉編譯,使經(jīng)過(guò)交叉編譯的QT程序能夠在A(yíng)RM上運(yùn)行,從而實(shí)現(xiàn)將QT移植到ARM上。
文檔編號(hào)G06F9/44GK102214102SQ201110188550
公開(kāi)日2011年10月12日 申請(qǐng)日期2011年7月6日 優(yōu)先權(quán)日2011年7月6日
發(fā)明者任繼梅, 張立為, 楊勝齊, 陳宮 申請(qǐng)人:上海智翔信息科技股份有限公司