999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于ARM的Qt/Embedded嵌入式環境部署

2015-09-28 05:04:24盧愛紅
現代計算機 2015年33期
關鍵詞:跨平臺嵌入式程序

盧愛紅

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

基于ARM的Qt/Embedded嵌入式環境部署

盧愛紅

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

0 引言

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

1 跨平臺GUI設計

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

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

圖1 跨平臺GUI設計的流程

2 IDE環境配置

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

安裝Qt Creator之后,新建項目工程仍不具備Application GUI應用,需要安裝Qt庫文件Qt4.8.1,并配置Qt編譯環境qmake。用Ubuntu操作系統的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。執行Qt Sdk中的配置文件configure,在/usr/local/qt-everywhere-opensource-src-4.8.1下執行#./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開發板的文件系統識別的Qt GUI界面設計的可執行文件,需要交叉編譯Qt庫文件Qt4.8.1,并配置 Qt的交叉編譯環境 armqmake。執行Qt Sdk中的配置文件configure,在/usr/local/qt-everywhere-opensource-src-4.8.1下執行#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開發板時,需要將Qt4.8拷貝到此路徑。執行以下命令進行編譯并安裝Qt4.8:#make;#make install。安裝完成后,在Qt Creator的“構建和運行”中指定qmake和交叉編譯工具鏈Linux ICC為arm-linux-g++和arm-linux-gdb。配置完成,新建Qt工程,在“項目”菜單欄可以指定交叉編譯的qmake和 Linux ICC工具鏈。編譯輸出的就是能被ARM開發板的文件系統識別的Qt GUI界面設計的可執行文件。

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

要在ARM開發板上正確運行Qt的GUI程序,除了要求安裝Qt4.8庫文件外,還需要編寫一個腳本setqt4env,這個腳本用于設置Qt程序所需要的環境變量。腳本文件的位置是/bin/setqt4env。輸入以下命令創建 并 編 寫 腳 本/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的開發板,并已燒錄好內核和文件系統。開發環境選用Ubuntu12.04版本,安裝Qt Creator2.5.1,Qt庫文件選用Qt4.8.1,交叉編譯工具鏈選用4.3.4版本。

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

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

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

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

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

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

4 結語

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

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

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

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

[4]吳子平,徐愛鈞.基于Qt/Embedded的嵌入式GUI的研究與構建.電腦開發與應用[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-),女,江蘇南通人,講師,在讀博士研究生,研究方向為無線通信、物聯網應用技術

2015-11-14

2015-11-20

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

Qt/Embedded;GUI;ARM;嵌入式環境

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.

猜你喜歡
跨平臺嵌入式程序
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
跨平臺APEX接口組件的設計與實現
測控技術(2018年9期)2018-11-25 07:44:58
搭建基于Qt的嵌入式開發平臺
“程序猿”的生活什么樣
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
嵌入式軟PLC在電鍍生產流程控制系統中的應用
電鍍與環保(2016年3期)2017-01-20 08:15:32
創衛暗訪程序有待改進
中國衛生(2015年3期)2015-11-19 02:53:32
基于QT的跨平臺輸電鐵塔監控終端軟件設計與實現
基于OPC跨平臺通信的電機監測與診斷系統
基于B/S的跨平臺用戶界面可配置算法研究
主站蜘蛛池模板: 在线观看免费AV网| 国产在线视频自拍| 国产欧美在线观看一区| 国产精品久久自在自2021| 色成人亚洲| 精品综合久久久久久97| 欧美在线网| 亚洲色无码专线精品观看| 國產尤物AV尤物在線觀看| a天堂视频在线| 日韩精品无码免费一区二区三区| 综合五月天网| 国产91线观看| 国产欧美高清| 欧美自慰一级看片免费| 免费国产高清精品一区在线| 亚洲高清在线天堂精品| 九九免费观看全部免费视频| 重口调教一区二区视频| 国产理论一区| 久久精品国产精品一区二区| 国产福利拍拍拍| 国产av无码日韩av无码网站| 国产欧美精品一区二区| 9久久伊人精品综合| 国产一区二区丝袜高跟鞋| 色哟哟国产成人精品| 国产手机在线观看| 91成人在线免费观看| 青草视频网站在线观看| аv天堂最新中文在线| 免费人成网站在线观看欧美| 色综合婷婷| 朝桐光一区二区| 中字无码av在线电影| 中文字幕第4页| 高清无码不卡视频| 亚洲AV一二三区无码AV蜜桃| 中文字幕亚洲综久久2021| 久久黄色免费电影| 国产精品人成在线播放| 欧美激情第一欧美在线| 草草影院国产第一页| 精品亚洲国产成人AV| 亚洲天堂久久久| 免费观看国产小粉嫩喷水| 欧美福利在线| 成人一区专区在线观看| 成年人国产网站| 亚洲人成日本在线观看| 久久免费视频6| 免费不卡视频| 国产午夜精品鲁丝片| 亚洲综合色在线| 亚洲一级毛片在线观播放| 激情乱人伦| 青青青国产视频手机| 日本午夜在线视频| 999国产精品| 欧美色视频网站| 欧美中文字幕在线播放| 国产亚洲成AⅤ人片在线观看| 亚洲欧洲自拍拍偷午夜色| 91偷拍一区| 欧美日韩久久综合| 一本一道波多野结衣av黑人在线| 丝袜国产一区| 欧美在线国产| 国产激情无码一区二区三区免费| 91欧美在线| 欧美成人h精品网站| 成人夜夜嗨| 91精品日韩人妻无码久久| 欧美国产中文| 一区二区三区四区精品视频 | 91精品国产综合久久香蕉922| 在线欧美日韩| 日日拍夜夜嗷嗷叫国产| 亚洲色图欧美视频| 又黄又湿又爽的视频| 欧美亚洲一区二区三区导航| 久久婷婷色综合老司机|