亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于ARM的Qt/Embedded嵌入式環(huán)境部署

        2015-09-28 05:04:24盧愛紅
        現(xiàn)代計(jì)算機(jī) 2015年33期
        關(guān)鍵詞:開發(fā)板跨平臺(tái)嵌入式

        盧愛紅

        (蘇州經(jīng)貿(mào)職業(yè)技術(shù)學(xué)院,蘇州 215009)

        基于ARM的Qt/Embedded嵌入式環(huán)境部署

        盧愛紅

        (蘇州經(jīng)貿(mào)職業(yè)技術(shù)學(xué)院,蘇州215009)

        0 引言

        基于ARM的嵌入式產(chǎn)品,因CPU具有較高的主頻、豐富的接口、優(yōu)越的可移植性等性能,能適應(yīng)各種嵌入式要求,得到了廣泛的應(yīng)用。在嵌入式終端設(shè)備中,一般要求具有可視化界面。目前幾種常用的嵌入式界面包括:MiniGUI、MicroWindows、DinX、OpenGUI和Qt/Embedded。由Trolltech公司開發(fā)的Qt/Embedded嵌入式界面開發(fā)環(huán)境,是完全面向?qū)ο笏枷氲腃++開發(fā)軟件,提供應(yīng)用程序開發(fā)者藝術(shù)級(jí)圖形界面設(shè)計(jì)所需要的功能,能編程實(shí)現(xiàn)嵌入式開發(fā)板上各種形式接口,如:網(wǎng)口、串口、I2C、USB、I2S等,應(yīng)用靈活,性能優(yōu)越。由于ARM嵌入式產(chǎn)品的硬件軟件資源與個(gè)人電腦相比是有限的,不能提供在ARM產(chǎn)品上直接編輯、編譯圖形用戶界面(GUI)的功能,需要通過交叉編譯環(huán)境,將Linux發(fā)行版本中調(diào)試好的GUI界面部署到ARM產(chǎn)品。Qt/Embedded是為跨平臺(tái)軟件開發(fā)人員設(shè)計(jì)的,提供了支持Linux發(fā)行版本和Windows的Qt集成開發(fā)環(huán)境(IDE)、持續(xù)更新版本的Qt庫,將交叉編譯生成的Qt庫作為IDE的交叉編譯工具鏈,同時(shí)將Qt庫部署到嵌入式開發(fā)板,可以輕松實(shí)現(xiàn)跨平臺(tái)的GUI設(shè)計(jì)。

        1 跨平臺(tái)GUI設(shè)計(jì)

        本設(shè)計(jì)中基于Qt/Embedded進(jìn)行跨平臺(tái)的GUI設(shè)計(jì)的主要任務(wù)是在Linux發(fā)行版本或Windows的Qt集成開發(fā)環(huán)境中編輯設(shè)計(jì)GUI界面,經(jīng)過交叉編譯后,部署到ARM開發(fā)板中運(yùn)行。具體過程為:在Linux發(fā)行版本Ubuntu中安裝Qt集成開發(fā)環(huán)境Qt Creator和交叉編譯工具鏈arm-linux-g++,再交叉編譯生成版本為Qt4.8.1 的Qt庫,在Qt Creator的 “構(gòu)建和運(yùn)行”中指定Qt庫Qt4.8.1的qmake,并將Qt4.8.1部署到ARM開發(fā)板,如此,Qt Creator中編輯的GUI界面程序就可以在ARM開發(fā)板上運(yùn)行,實(shí)現(xiàn)GUI圖形用戶界面的跨平臺(tái)設(shè)計(jì)。

        跨平臺(tái)GUI設(shè)計(jì)的流程[1]如圖1所示。

        圖1 跨平臺(tái)GUI設(shè)計(jì)的流程

        2 IDE環(huán)境配置

        Qt的集成開發(fā)環(huán)境(IDE)采用Qt Creator應(yīng)用程序,可以在Windows平臺(tái)上運(yùn)行,也可以在各種Linux發(fā)行版本中運(yùn)行。開發(fā)環(huán)境基于Ubuntu平臺(tái)時(shí),集成開發(fā)環(huán)境的配置需要使用root權(quán)限。qt-creator-linuxx86-opensource.bin是Qt Creator的安裝程序,通過Ubuntu的samba共享,拷貝到Ubuntu操作系統(tǒng)中,修改安裝程序的權(quán)限為可執(zhí)行,運(yùn)行qt-creator-linux-x86-opensource.bin,自動(dòng)安裝Qt Creator應(yīng)用程序到Ubuntu操作系統(tǒng)中。具體命令如下:#chmod u+x qtcreator-linux-x86-opensource.bin;#./qt-creator-linuxx86-opensource.bin。

        安裝Qt Creator之后,新建項(xiàng)目工程仍不具備Application GUI應(yīng)用,需要安裝Qt庫文件Qt4.8.1,并配置Qt編譯環(huán)境qmake。用Ubuntu操作系統(tǒng)的root賬戶安裝Qt Sdk,下載Qt Sdk源代碼包qt-everywhere-opensource-src-4.8.1.tar.gz,將其解壓縮到/usr/local下,#tar zxvf qt-everywhere-opensource-src-4.8.1.tar.gz-C/usr/ local。安裝Qt Sdk依賴的軟件包:libX11-dev、libXextdev、libXtst-dev。執(zhí)行Qt Sdk中的配置文件configure,在/usr/local/qt-everywhere-opensource-src-4.8.1下執(zhí)行#./configure;#make;#make install。至此,Qt Sdk安裝完成,生成的Qt Sdk庫文件在/usr/local/Trolltech/Qt4.8.1/目錄下。再在Qt Creator應(yīng)用程序中配置Qt Sdk,選擇QT creator->tools->option菜單,選擇“構(gòu)建和運(yùn)行”,在Qt版本中指定手動(dòng)設(shè)置的/usr/local/Trolltech/Qt4.8.1/ bin/qmake,并在工具鏈中確認(rèn)檢測到GCC工具鏈。配置完成后,新建Qt工程時(shí),就會(huì)出現(xiàn)Application菜單中的Qt GUI應(yīng)用。

        交叉編譯生成能被ARM開發(fā)板的文件系統(tǒng)識(shí)別的Qt GUI界面設(shè)計(jì)的可執(zhí)行文件,需要交叉編譯Qt庫文件Qt4.8.1,并配置 Qt的交叉編譯環(huán)境 armqmake。執(zhí)行Qt Sdk中的配置文件configure,在/usr/local/qt-everywhere-opensource-src-4.8.1下執(zhí)行#cd qteverywhere-opensource-src-4.8.1;#echo yes|./configure -prefix/opt/Qt4.8-opensource-embedded arm-xplatform qws/linux-arm-g++-no-webkit-qt-libtiff-qtlibmng-qt-mouse-tslib-qt-mouse-pc-no-mouse-linuxtp-no-neon。上面的主要參數(shù)含義說明如下:-embedded arm:表示將編譯針對(duì)arm平臺(tái)的embedded版本;-xplatform qws/linux-arm-g++:表示使用arm-linux交叉編譯器進(jìn)行編譯;-qt-mouse-tslib:表示將使用tslib來驅(qū)動(dòng)觸摸屏;-prefix/opt/Qt4.8:表示Qt4.8最終的安裝路徑是/opt/Qt4.8,布置到ARM開發(fā)板時(shí),需要將Qt4.8拷貝到此路徑。執(zhí)行以下命令進(jìn)行編譯并安裝Qt4.8:#make;#make install。安裝完成后,在Qt Creator的“構(gòu)建和運(yùn)行”中指定qmake和交叉編譯工具鏈Linux ICC為arm-linux-g++和arm-linux-gdb。配置完成,新建Qt工程,在“項(xiàng)目”菜單欄可以指定交叉編譯的qmake和 Linux ICC工具鏈。編譯輸出的就是能被ARM開發(fā)板的文件系統(tǒng)識(shí)別的Qt GUI界面設(shè)計(jì)的可執(zhí)行文件。

        將Qt4.8部署到ARM開發(fā)板時(shí),根據(jù)Qt4.8庫文件交叉編譯時(shí)-prefix參數(shù)指定的目錄,將Qt4.8庫文件安裝在/opt/Qt4.8目錄下,在Ubuntu上將Qt4.8打包,再解壓到ARM開發(fā)板上的/opt目錄下:@#cd/opt;@# tar xvzf Qt4.8.tgz-C/opt。

        要在ARM開發(fā)板上正確運(yùn)行Qt的GUI程序,除了要求安裝Qt4.8庫文件外,還需要編寫一個(gè)腳本setqt4env,這個(gè)腳本用于設(shè)置Qt程序所需要的環(huán)境變量。腳本文件的位置是/bin/setqt4env。輸入以下命令創(chuàng)建 并 編 寫 腳 本/bin/setqt4env:@#vi/bin/setqt4env;@#chmod+x/bin/setqt4env。文件具體要修改的內(nèi)容:export set QTDIR=/opt/Qt4.8;export set QPEDIR=/opt/ Qt4.8;export set QWS_MOUSE_PROTO="TSLIB:/dev/ event1 MouseMan:/dev/mouse0"。

        3 實(shí)驗(yàn)實(shí)現(xiàn)

        選用主CPU為S3C2440的開發(fā)板,并已燒錄好內(nèi)核和文件系統(tǒng)。開發(fā)環(huán)境選用Ubuntu12.04版本,安裝Qt Creator2.5.1,Qt庫文件選用Qt4.8.1,交叉編譯工具鏈選用4.3.4版本。

        以一個(gè)簡單的基于網(wǎng)絡(luò)的服務(wù)器和客戶端信息傳輸?shù)腝t GUI程序?yàn)槔f明Qt的嵌入式開發(fā)環(huán)境部署的流程。一般來說,基于ARM的嵌入式產(chǎn)品,以ARM開發(fā)板作為網(wǎng)絡(luò)的服務(wù)器,負(fù)責(zé)監(jiān)控現(xiàn)場數(shù)據(jù)的采集、存儲(chǔ)和傳輸,以PC機(jī)作為客戶端,客戶端主動(dòng)連接服務(wù)器,并查詢現(xiàn)場數(shù)據(jù),向服務(wù)器發(fā)送執(zhí)行操作的指令。在ARM開發(fā)板上運(yùn)行服務(wù)器程序,需要在ARM開發(fā)板的文件系統(tǒng)中部署Qt的嵌入式環(huán)境,服務(wù)器程序經(jīng)過交叉編譯后,燒錄到ARM開發(fā)板,在PC機(jī)上運(yùn)行的客戶端程序采用非交叉編譯的方法編譯,最終,在服務(wù)器和客戶端設(shè)備保證網(wǎng)絡(luò)連通的基礎(chǔ)上,實(shí)現(xiàn)通信。

        Qt提供了完全使用類封裝的socket,用戶不需要接觸底層的各種結(jié)構(gòu)體。socket的類封裝,采用Qt本身的信號(hào)-槽機(jī)制,使編寫的程序更容易理解。在pro文件中添加network模塊QT+=network。Qt使用socket類提供的QTcpServer和QTcpSocket進(jìn)行TCP網(wǎng)絡(luò)編程。QTcpServer類負(fù)責(zé)TCP建立 (監(jiān)聽端口),QTcpSocket負(fù)責(zé)TCP會(huì)話(管理客戶通信數(shù)據(jù))。涉及頭文件包括:監(jiān)聽端口的QTcpServer、客戶連接管理的QTcpSocket、事件驅(qū)動(dòng)的句柄監(jiān)聽類文件QSocketNotifier。

        基于面向?qū)ο笏枷氲姆?wù)器端Qt程序流程圖[2]如圖2所示。

        圖2 服務(wù)器端Qt程序流程圖

        客戶端跟服務(wù)器端的區(qū)別在于不要進(jìn)行端口監(jiān)聽,使用QTcpSocket類的connectToHost函數(shù)連接服務(wù)器即可,其它實(shí)現(xiàn)與服務(wù)端一致。

        服務(wù)器端程序交叉編譯后,部署到ARM開發(fā)板,可以與Ubuntu主機(jī)中的客戶端程序?qū)崿F(xiàn)穩(wěn)定流暢的通信。

        4 結(jié)語

        本設(shè)計(jì)主要實(shí)現(xiàn)了Qt的嵌入式環(huán)境的部署,實(shí)現(xiàn)了Qt的IDE開發(fā)環(huán)境Qt Creator的交叉編譯條件和非交叉編譯條件的配置,ARM開發(fā)板上的文件系統(tǒng)中的Qt庫文件的部署,并在ARM開發(fā)板上用腳本程序setqt4env配置Qt運(yùn)行的環(huán)境變量,最終將交叉編譯后的Qt程序拷貝到ARM開發(fā)板后,能夠順利啟動(dòng)。本設(shè)計(jì)在Qt設(shè)計(jì)環(huán)境中,以網(wǎng)絡(luò)傳輸?shù)姆?wù)器和客戶端程序?yàn)槔?,提供了以完全面向?qū)ο蟮乃枷朐O(shè)計(jì)Qt的GUI程序的思路,實(shí)驗(yàn)證明Qt嵌入式環(huán)境部署的方法能夠很好地適應(yīng)各種Linux開發(fā)環(huán)境和ARM開發(fā)板的版本,具有很好的魯棒性。本系統(tǒng)的設(shè)計(jì)為ARM開發(fā)板的Qt的GUI應(yīng)用提供了較完整的解決方案和系統(tǒng)化的設(shè)計(jì)思路,但是功能相對(duì)簡單,在實(shí)際企業(yè)應(yīng)用中,需在此框架設(shè)計(jì)的基礎(chǔ)上,進(jìn)一步優(yōu)化細(xì)節(jié)。

        [1]盧愛紅.基于Qt/Embedded的水務(wù)數(shù)據(jù)監(jiān)測系統(tǒng).計(jì)算機(jī)時(shí)代[J],2014(12):22.

        [2]田磊.嵌入式Linux系統(tǒng)中基于QT庫的應(yīng)用程序設(shè)計(jì).實(shí)驗(yàn)室研究與探索[J],2014,33(5):84.

        [3]陳敬,向偉.基于嵌入式Linux的QT/Embedded移植與應(yīng)用開發(fā).電腦與信息技術(shù)[J],2013,21(1):57.

        [4]吳子平,徐愛鈞.基于Qt/Embedded的嵌入式GUI的研究與構(gòu)建.電腦開發(fā)與應(yīng)用[J],2012,25(1):13.

        [5]盧愛紅,劉中原,馮蓉珍.基于ARM的自助出票機(jī)便攜式終端設(shè)計(jì).計(jì)算機(jī)時(shí)代[J],2013(9):28.

        [6]MICHAEL Owens.The Definitive Guide to SQLite[M].US:Apress,2006.

        Random Sampling;JavaScript;Program Design

        A Random Sampling Program Design Based on JavaScript

        XU Peng1,XU Qing-yuan2
        (1.The 5th Electronics Research Institute of MII,Guangzhou 510610;2.Department of Electronic Communication&Software Engineering,Nanfang Colloge,Sun Yat-sen University,Guangzhou 510970)

        1007-1423(2015)33-0054-03

        10.3969/j.issn.1007-1423.2015.33.015

        盧愛紅(1981-),女,江蘇南通人,講師,在讀博士研究生,研究方向?yàn)闊o線通信、物聯(lián)網(wǎng)應(yīng)用技術(shù)

        2015-11-14

        2015-11-20

        嵌入式ARM產(chǎn)品對(duì)GUI設(shè)計(jì)的質(zhì)量要求日益提高,本設(shè)計(jì)提供在ARM開發(fā)板上部署Qt/Embedded嵌入式環(huán)境的方法,詳細(xì)描述Qt/Embedded的集成開發(fā)環(huán)境的配置過程、Qt的庫文件Qt4.8的交叉編譯和非交叉編譯的方法、ARM開發(fā)板的文件系統(tǒng)環(huán)境配置流程,最后以Qt環(huán)境下網(wǎng)絡(luò)通信的服務(wù)器和客戶端程序的設(shè)計(jì)部署為例,驗(yàn)證該設(shè)計(jì)方法。實(shí)驗(yàn)證明,基于完全面向?qū)ο笏枷氲腝t嵌入式GUI界面嵌入式環(huán)境部署的可實(shí)現(xiàn)性和優(yōu)越性,為ARM嵌入式產(chǎn)品的界面設(shè)計(jì)提供了一種有競爭力的解決方案。

        Qt/Embedded;GUI;ARM;嵌入式環(huán)境

        In daily life,one or more data is often needed to be randomly selected from a certain amount of data.Introduces a method to design a random sampling program based on JavaScript.The program flow chart is designed,analyzes the key points of programing,by an example,demonstrates the implementation effect of the random sampling program.

        猜你喜歡
        開發(fā)板跨平臺(tái)嵌入式
        跨平臺(tái)APEX接口組件的設(shè)計(jì)與實(shí)現(xiàn)
        搭建基于Qt的嵌入式開發(fā)平臺(tái)
        Microchip最新推出兩款PIC32 Curiosity開發(fā)板
        淺析單片機(jī)開發(fā)板的設(shè)計(jì)與制作
        電子制作(2017年22期)2017-02-02 07:10:14
        嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應(yīng)用
        基于QT的跨平臺(tái)輸電鐵塔監(jiān)控終端軟件設(shè)計(jì)與實(shí)現(xiàn)
        基于OPC跨平臺(tái)通信的電機(jī)監(jiān)測與診斷系統(tǒng)
        基于B/S的跨平臺(tái)用戶界面可配置算法研究
        Mouser為您呈上開發(fā)關(guān)鍵之STMicroelectronics Nucleo開發(fā)板
        Arduino和Atmel發(fā)布Arduino Zero開發(fā)板
        国产网友自拍视频在线观看| 亚洲国产av导航第一福利网| 亚洲在线视频免费视频| 人人妻人人狠人人爽天天综合网 | 亚洲日本va中文字幕久久| 尤物AV无码色AV无码麻豆| 亚洲一区二区三区18| 日韩人妻不卡一区二区三区| 日本老熟妇50岁丰满| 婷婷九月丁香| 亚洲一区二区三区在线更新| 亚洲色图视频在线免费看| 国产精品无码久久久久成人影院| 国产一区曰韩二区欧美三区| 国产美女高潮流白浆免费观看 | 国产精品办公室沙发| 欧美综合自拍亚洲综合图片区 | 极品美女扒开粉嫩小泬| 99在线无码精品秘 入口九色| 少妇又紧又爽丰满在线视频 | 日本久久精品福利视频| 精品区2区3区4区产品乱码9| 欧美亚洲日韩国产区| 日本黄色一区二区三区视频| 国产香蕉一区二区三区在线视频| 夜鲁很鲁在线视频| 亚洲AV毛片无码成人区httP | 国产精品亚洲综合久久婷婷| 亚洲色图在线视频观看| 亚洲中文字幕舔尻av网站| 国产伦久视频免费观看视频| 国产亚洲第一精品| 日本免费大片一区二区三区| 熟女人妇 成熟妇女系列视频| 久久精品国产精品亚洲毛片 | 亚洲国产av一区二区三| 一区二区三区国产在线视频| 色多多a级毛片免费看| 中国精品视频一区二区三区| 精品婷婷国产综合久久| 日本真人做人试看60分钟|