• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

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

      2015-09-28 05:04:24盧愛紅
      現代計算機 2015年33期
      關鍵詞:開發(fā)板跨平臺嵌入式

      盧愛紅

      (蘇州經貿職業(yè)技術學院,蘇州 215009)

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

      盧愛紅

      (蘇州經貿職業(yè)技術學院,蘇州215009)

      0 引言

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

      1 跨平臺GUI設計

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

      跨平臺GUI設計的流程[1]如圖1所示。

      圖1 跨平臺GUI設計的流程

      2 IDE環(huán)境配置

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

      安裝Qt Creator之后,新建項目工程仍不具備Application GUI應用,需要安裝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應用程序中配置Qt Sdk,選擇QT creator->tools->option菜單,選擇“構建和運行”,在Qt版本中指定手動設置的/usr/local/Trolltech/Qt4.8.1/ bin/qmake,并在工具鏈中確認檢測到GCC工具鏈。配置完成后,新建Qt工程時,就會出現Application菜單中的Qt GUI應用。

      交叉編譯生成能被ARM開發(fā)板的文件系統(tǒng)識別的Qt GUI界面設計的可執(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。上面的主要參數含義說明如下:-embedded arm:表示將編譯針對arm平臺的embedded版本;-xplatform qws/linux-arm-g++:表示使用arm-linux交叉編譯器進行編譯;-qt-mouse-tslib:表示將使用tslib來驅動觸摸屏;-prefix/opt/Qt4.8:表示Qt4.8最終的安裝路徑是/opt/Qt4.8,布置到ARM開發(fā)板時,需要將Qt4.8拷貝到此路徑。執(zhí)行以下命令進行編譯并安裝Qt4.8:#make;#make install。安裝完成后,在Qt Creator的“構建和運行”中指定qmake和交叉編譯工具鏈Linux ICC為arm-linux-g++和arm-linux-gdb。配置完成,新建Qt工程,在“項目”菜單欄可以指定交叉編譯的qmake和 Linux ICC工具鏈。編譯輸出的就是能被ARM開發(fā)板的文件系統(tǒng)識別的Qt GUI界面設計的可執(zhí)行文件。

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

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

      3 實驗實現

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

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

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

      基于面向對象思想的服務器端Qt程序流程圖[2]如圖2所示。

      圖2 服務器端Qt程序流程圖

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

      服務器端程序交叉編譯后,部署到ARM開發(fā)板,可以與Ubuntu主機中的客戶端程序實現穩(wěn)定流暢的通信。

      4 結語

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

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

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

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

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

      [5]盧愛紅,劉中原,馮蓉珍.基于ARM的自助出票機便攜式終端設計.計算機時代[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-),女,江蘇南通人,講師,在讀博士研究生,研究方向為無線通信、物聯(lián)網應用技術

      2015-11-14

      2015-11-20

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

      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ā)板跨平臺嵌入式
      跨平臺APEX接口組件的設計與實現
      測控技術(2018年9期)2018-11-25 07:44:58
      搭建基于Qt的嵌入式開發(fā)平臺
      Microchip最新推出兩款PIC32 Curiosity開發(fā)板
      淺析單片機開發(fā)板的設計與制作
      電子制作(2017年22期)2017-02-02 07:10:14
      嵌入式軟PLC在電鍍生產流程控制系統(tǒng)中的應用
      基于QT的跨平臺輸電鐵塔監(jiān)控終端軟件設計與實現
      基于OPC跨平臺通信的電機監(jiān)測與診斷系統(tǒng)
      基于B/S的跨平臺用戶界面可配置算法研究
      Mouser為您呈上開發(fā)關鍵之STMicroelectronics Nucleo開發(fā)板
      Arduino和Atmel發(fā)布Arduino Zero開發(fā)板
      南投市| 澄迈县| 岳普湖县| 康保县| 墨脱县| 历史| 葫芦岛市| 富裕县| 弥渡县| 红安县| 瑞昌市| 徐闻县| 慈溪市| 泸水县| 永川市| 广汉市| 哈尔滨市| 兰西县| 峡江县| 德庆县| 太谷县| 琼结县| 阳信县| 柳林县| 嘉定区| 历史| 旌德县| 神木县| 两当县| 惠水县| 吐鲁番市| 女性| 罗山县| 雷山县| 泸定县| 遂川县| 桃源县| 始兴县| 盐亭县| 张掖市| 湘阴县|