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一区二区三区欲色| 中文天堂在线视频| 国产免费观看av大片的网站| 亚洲欧洲天堂色AV| 成人日韩精品| 1级黄色毛片| 国产亚洲精品91| 69av免费视频| 欧美日韩一区二区三| 999国内精品久久免费视频| 国产小视频在线高清播放| 色欲不卡无码一区二区| 日韩毛片在线播放| 久久亚洲天堂| 亚洲不卡影院| 国产黄在线观看| 中文字幕天无码久久精品视频免费 | 熟妇无码人妻| 日韩福利在线观看| 国产精品久久久久无码网站| 欧美区日韩区| 国产免费黄| 亚洲欧美日韩成人在线| 久久天天躁狠狠躁夜夜躁| 久久久久久久久18禁秘| 亚洲一欧洲中文字幕在线| 99精品这里只有精品高清视频| 亚洲人成亚洲精品| 99热精品久久| 久久久久久久久久国产精品| 国产精品第一区| 亚洲精品日产精品乱码不卡| 99re在线视频观看| 无码乱人伦一区二区亚洲一| 国产精品白浆在线播放| 动漫精品啪啪一区二区三区| 亚洲天堂视频在线观看免费| 亚洲男人天堂网址| 国产精品亚洲一区二区三区在线观看| 久久精品娱乐亚洲领先| 欧美特级AAAAAA视频免费观看| 激情网址在线观看| 毛片在线区| 日韩精品欧美国产在线| 国产黑丝视频在线观看| 欧美一级夜夜爽www| 在线播放91| 亚洲精品免费网站| 亚洲精品国产精品乱码不卞| 超清无码熟妇人妻AV在线绿巨人 | 亚洲免费三区| 欧美亚洲国产视频| 久久婷婷综合色一区二区| 亚洲视频影院| 色哟哟精品无码网站在线播放视频| 日韩东京热无码人妻| 国产成人高精品免费视频| 国产后式a一视频| 亚洲AⅤ综合在线欧美一区| 91年精品国产福利线观看久久| 国产精品女主播| 婷婷六月激情综合一区| 日本一区二区不卡视频| 秋霞午夜国产精品成人片| 女人av社区男人的天堂| 欧美精品不卡| 亚洲天堂伊人| 亚洲综合亚洲国产尤物| 国产成人乱无码视频| 亚洲精品国产自在现线最新| 国产乱人免费视频| 国产丝袜精品| 2022精品国偷自产免费观看| 国产一区二区三区在线观看免费| 国产麻豆va精品视频| 在线国产毛片手机小视频| 国产丝袜一区二区三区视频免下载| 刘亦菲一区二区在线观看| 亚洲国产欧美目韩成人综合| 欧美伦理一区| 欧美一区二区啪啪| 国产亚洲精品精品精品|