《電子技術(shù)應用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設計應用 > 基于DM365平臺的Qt/Embedded移植
基于DM365平臺的Qt/Embedded移植
2015年微型機與應用第5期
舒明蕾,華驚宇,賴尚校
(浙江工業(yè)大學 浙江省通信網(wǎng)技術(shù)應用研究重點實驗室,浙江 杭州 310023)
摘要: 概述了基于達芬奇技術(shù)的TM320DM365的硬件環(huán)境搭建,介紹了嵌入式系統(tǒng)軟件架構(gòu),并詳細闡述了Qt/E的安裝移植,包括tslib1.4庫的編譯并做相應的設置,概述了嵌入式GUI開發(fā)流程。最后,使用一個簡單的應用程序?qū)σ浦驳那闆r進行了測試。
Abstract:
Key words :

  摘  要: 概述了基于達芬奇技術(shù)的TM320DM365的硬件環(huán)境搭建,介紹了嵌入式系統(tǒng)軟件架構(gòu),并詳細闡述了Qt/E的安裝移植,包括tslib1.4庫的編譯并做相應的設置,概述了嵌入式GUI開發(fā)流程。最后,使用一個簡單的應用程序?qū)σ浦驳那闆r進行了測試。

  關(guān)鍵詞: 達芬奇技術(shù);Qt嵌入式系統(tǒng);移植

0 引言

  隨著嵌入式系統(tǒng)以及圖像處理技術(shù)的發(fā)展,嵌入式監(jiān)控設備已經(jīng)廣泛用于視頻監(jiān)控中。客戶對于視頻監(jiān)控終端需要人性化的人機交互界面。Qt/Embedded是Trolltech發(fā)布的面向嵌入式系統(tǒng)的Qt版本[1],具有很好的跨平臺特性以及為用戶提供豐富的API接口和界面設計友好等優(yōu)點[2]。但由于PC機編譯的應用程序不能直接在嵌入式系統(tǒng)中應用,本文針對這一問題,主要介紹了基于以TI的TMS320DM365為代表支持觸摸屏的嵌入式界面開發(fā)與移植。為類似的嵌入式Qt應用程序開發(fā)提供了參考。

1 總體設計

  1.1 硬件平臺搭建

  達芬奇技術(shù)是為數(shù)字視頻而設計的系統(tǒng)解決方案,采用了ARM+DSP雙核架構(gòu),ARM處理器上使用Linux操作系統(tǒng)來負責外圍模塊的管理,而DSP端執(zhí)行音視頻編解碼算法[3]。既滿足視頻應用在控制方面、計算能力的需求,又降低了系統(tǒng)成本,同時也降低了系統(tǒng)的復雜性。TI的TMS320DM365芯片正是達芬奇平臺的典型代表。DM365芯片的優(yōu)點還包括提供了豐富的外設接口,比如DDR接口、Flash接口、SD卡接口、UART串口等[4]。DM365的視頻處理后端將經(jīng)視頻處理子系統(tǒng)處理的圖像輸出到外部顯示器上。顯示模塊選用的是一款支持觸摸屏的5.7英寸、分辨率為640×480的TFT-LCD。整體的硬件設計如圖1所示。

001.jpg

  1.2 嵌入式系統(tǒng)開發(fā)環(huán)境搭建

  啟動過程中,首先加載系統(tǒng)引導程序,包括RBL(ROM Boot Loader)、UBL、U-Boot。首先執(zhí)行RBL,從NAND上讀取UBL并復制到內(nèi)存中。UBL初始化系統(tǒng)硬件,從NAND中讀取U-Boot的內(nèi)容復制到DDR里,U-Boot加載內(nèi)核,完成內(nèi)核的啟動。啟動后,會將NAND Flash中的yaffs2文件系統(tǒng)掛載到根目錄下,至此,整個系統(tǒng)開發(fā)環(huán)境搭建完畢。

2 Qt/Embedded-arm開發(fā)環(huán)境搭建

  嵌入式系統(tǒng)中常用的圖形用戶界面有MiniGui、Micro Windows和Qt。與其他軟件相比,Qt可移植性強,開發(fā)周期短;信號和槽這一機制使得用戶交互更方便。從開發(fā)周期、應用領(lǐng)域等多方面考慮,選用Qt設計圖形界面。但由于PC機上的系統(tǒng)與嵌入式Linux系統(tǒng)差異比較大,因此不能直接復制PC機上調(diào)試好的Qt應用程序到嵌入式系統(tǒng)中運行。而且針對不同的嵌入式系統(tǒng),需要不同的Qt平臺開發(fā)應用程序。本文介紹了基于Qt/Embedded開發(fā)應用程序,并移植到DM365硬件平臺的方法。

  2.1 tslib庫的研究與編譯安裝

  帶觸摸屏的移動終端,電磁噪聲會導致觸摸屏出現(xiàn)觸摸不準確等問題。tslib為驅(qū)動處獲得原始的采樣數(shù)據(jù)提供去噪、去抖等功能,將設備坐標轉(zhuǎn)換為對應的屏幕坐標,為應用層提供接口。先下載tslib源碼包,解壓tslib1.4.tar.gz到工作目錄下。

  tslib文件夾中ts.conf配置了需要加載的插件、插件順序以及一些約束參數(shù)。由于源碼中沒有指定module_raw,而需要input模塊從輸入設備讀取數(shù)據(jù),所以去掉module_raw input語句前注釋。同時TSLIB_PLUGINDIR一定要配置正確,使tslib找到模塊文件。驅(qū)動向應用層匯報的是絕對坐標信息,為了獲取到觸摸屏的驅(qū)動數(shù)據(jù),應修改plugins目錄下的input-raw.c源碼。否則校準觸摸屏沒有反應。

  static int ts_input_read(…)這個函數(shù)體中,ABS_X獲取的為x坐標,ABS_Y獲取的y坐標,ABS_PRESSURE為報告觸摸事件,需定義ABS_X為0x35,ABS_Y為0x36,ABS_PRESSURE為0x30。數(shù)據(jù)為讀取的設備接口信息。

  $./autogen.sh//生成configure腳本

  $./configure--host=arm-linux--perfix==/usr/local/tslib

  配置成功生成makefile文件,make編譯生成庫文件,但是發(fā)現(xiàn)make的時候報錯,需要建立一個cache文件。則編譯之前需要執(zhí)行如下命令:

  $echo“ac_cv_func_malloc_0_nonnull=yes”>make.cache

  編譯成功后,執(zhí)行make install進行安裝。

  宿主機常用的是以X86為核心的PC機,而目標板是ARM體系結(jié)構(gòu),需要在宿主機上建立適用于在目標板上的交叉編譯環(huán)境[5]。達芬奇DVSDK為DM365提供的交叉編譯工具鏈為arm_v5t_le-gcc和arm_v5t_le-g++。修改/home/sml/QT/tslib目錄以及子目錄下所有makefile文件,將文件中所有的arm-linux-和arm-unkown-linux-用arm_v5t_le-替換。安裝完成后將/usr/local目錄下生成的tslib文件夾復制到目標板文件系統(tǒng)/usr/local/下。

  2.2 Qt/Embedded-arm編譯安裝與移植

  Qt/Embedded-arm是Qt嵌入式版本。為了在開發(fā)板上運行Qt程序,需利用交叉編譯器對Qt/Embedded編譯生成庫文件。解壓源碼qt-everywhere-opensource-src-4.7.2.tar.gz。進入生成的qt-embedded目錄后配置參數(shù),參數(shù)的選擇也影響到arm資源的占用率。鍵入make會根據(jù)生成文件夾中的makefile文件進行編譯。編譯完成后生成一個QtE-4.7.2-dm365庫文件夾,鍵入make install將庫文件安裝設定的/usr/local/Trolltech目錄下。而此時僅將庫文件拷貝到內(nèi)核文件系統(tǒng)中是不可用的,為了讓嵌入式系統(tǒng)找到頭文件、動態(tài)庫、設備等資源,需要設定環(huán)境變量。基于硬件平臺,執(zhí)行如下操作:

  $./configure-prefix/usr/local/Trolltech/QtEm-4.7.2-dm365-opensource-confirm-license-embedded arm-release-fast-qt-libpng-no-qt3support-qt-libtiff-qt-libjpeg-shared-no-webkit-make tools-no-largefile-nomake demos-nomake examples-multimedia-no-cups-xplatform qws/linux-arm-g++-nomake docs-no-qvfb-qt-mouse-pc-no-mouse-linuxtp-qt-mouse-tslib-L/usr/local/tslib1.4/lib(指定動態(tài)庫的路徑)-I/usr/local/tslib1.4/include(指定tslib的路徑)

  $make

  $make install

  $ cp-r/usr/local/Trolltech/QtE-4.7.2-dm365/home/sml/filesys/usr/local/(拷貝上位機生成庫文件到內(nèi)核系統(tǒng)存放庫文件的路徑)

  修改/home/sml/filesys/etc/profile文件,例如指定Qt文件目錄,校準文件的存放位置,觸摸屏設備,指定幀緩沖設備,tslib庫文件路徑等。設置開發(fā)板環(huán)境變量:

  $export QTDIR=/usr/local/Trolltech/QtEm-4.7.2-dm365

  $export PATH=$QTDIR:$PATH

  $export QWS_DISPLAY=LinuxFb:/dev/fb0

  $export TSLIB_CALIBFILE=/etc/pointercal

  $export TSLIB_TSDEVICE=/dev/input/event0

  $export TSDIR=/usr/local/Trolltech/tslib

  …

  2.3 Qt/Embedded應用程序開發(fā)流程

  基于DM365硬件平臺的嵌入式GUI開發(fā)流程中,首先使用安裝好的軟件Qt Creator開發(fā)應用程序。大致步驟是創(chuàng)建初始化對象,對控件進行布局,然后通過建立信號連接自定義的槽函數(shù)來實現(xiàn)窗口動作。完成的工程利用集成開發(fā)工具和嵌入式Qt4庫進行交叉編譯。接著將編譯通過的應用程序通過NFS網(wǎng)絡文件系統(tǒng)掛載到目標板調(diào)試。調(diào)試通過后,將應用程序拷貝到文件系統(tǒng)中,并打包燒寫到開發(fā)板的Flash中,最后設置為目標板自啟動[5]。流程如圖2所示。

002.jpg

3 實驗測試

  ts_calibrate是一個應用程序,采集了五組點坐標,用戶點擊校準光標后獲取相應數(shù)據(jù),對其進行一套算法變化后得到X值、Y值和scaling等共7個值,寫到校準文件中。運行tslib/bin/ts_calibrate校準程序,屏幕上會陸續(xù)出現(xiàn)5個光標圖,依次點擊完畢后/etc目錄下產(chǎn)生一個pointercal文件,證明觸摸庫已經(jīng)安裝成功。終端顯示運行的結(jié)果如圖3所示。

003.jpg

  拷貝一個編譯通過的demo程序到文件系統(tǒng)dm365目錄下:

  $ cp /usr/local/qt-demo/home/sml/filesys/opt/dm365/

  通過串口連接目標板,文件系統(tǒng)掛起之后minicom執(zhí)行如下操作:

  #cd/opt/dm365/

  #./qt-demo-qws&

  觸摸屏上顯示如圖4所示結(jié)果,且鼠標跟隨觸摸位置的移動而移動,移植測試成功。

004.jpg

4 結(jié)束語

  本文從硬件平臺的搭建到軟件環(huán)境搭建的介紹,重點介紹了如何移植觸摸屏的庫和闡述了Qt/E基于DM365嵌入式系統(tǒng)下的移植方法。在此嵌入式監(jiān)控終端之上,可以進行各種各樣的嵌入式GUI開發(fā)。

參考文獻

  [1] 張春艷.基于Qt的嵌入式圖形用戶界面研究與實現(xiàn)[D].大連:大連海事大學,2008:11-14.

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

  [3] Texas Instruments. TMS320DM365 digital media system on-chip[EB/OL].(2011-07-01)[2014-10-10]. http://www.ti.com/lit/ds/symlink/tms320 dm365.pdf.

  [4] 張晨鵬.基于DM365的音視頻服務器的設計[D].武漢:武漢理工大學,2011:17-27.

  [5] 孫巍,馮偉興.Qt/Embedded應用程序在ARM-Linux系統(tǒng)中的開發(fā)與應用[J].自動化技術(shù)與應用,2011,30(8):37-38.


此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲肉体裸体xxxx137| 午夜亚洲福利| 国产视频欧美视频| 国产精品99一区| 欧美精品七区| 欧美激情偷拍| 欧美国产精品中文字幕| 蜜桃精品久久久久久久免费影院| 久久精品视频在线看| 欧美一区91| 欧美专区第一页| 欧美在线免费| 久久精品久久99精品久久| 午夜日韩在线观看| 欧美一区二区视频免费观看| 亚洲综合精品四区| 午夜亚洲伦理| 久久国产精品一区二区三区四区| 欧美一区二区观看视频| 香蕉av777xxx色综合一区| 亚洲欧美日韩一区二区在线| 亚洲欧美日韩一区二区| 欧美伊人久久久久久午夜久久久久| 午夜精品福利一区二区蜜股av| 亚洲欧美日韩精品在线| 久久gogo国模裸体人体| 久久久久久久一区| 免费一级欧美片在线观看| 欧美电影美腿模特1979在线看| 欧美国产精品v| 欧美日韩一区二区三区在线 | 久久精品国产清高在天天线| 久久久久国产精品www| 久久一综合视频| 欧美电影打屁股sp| 欧美午夜精品久久久久久久| 国产精品视频xxxx| 国内外成人免费视频| 亚洲第一精品电影| 日韩亚洲国产欧美| 亚洲欧美一区二区激情| 亚洲丁香婷深爱综合| 日韩西西人体444www| 亚洲欧美综合国产精品一区| 欧美专区在线播放| 欧美不卡三区| 欧美午夜激情在线| 国产亚洲美州欧州综合国| 亚洲国产一区二区三区青草影视| 9国产精品视频| 欧美一区二区免费| 99v久久综合狠狠综合久久| 亚洲在线中文字幕| 久久综合九色综合久99| 欧美日韩在线播放| 国产亚洲欧美日韩精品| 亚洲精品国产视频| 欧美在线视屏| 亚洲社区在线观看| 快射av在线播放一区| 欧美视频在线观看免费网址| 韩国美女久久| 制服诱惑一区二区| 亚洲国产小视频| 欧美亚洲一区二区三区| 欧美风情在线观看| 国产麻豆午夜三级精品| 亚洲三级性片| 久久成人精品无人区| 一区二区三区久久久| 久久精品99| 欧美日韩亚洲免费| 在线观看欧美视频| 午夜精品久久久久久久99热浪潮 | 欧美黄色aaaa| 国产一区91精品张津瑜| 99pao成人国产永久免费视频| 欧美综合二区| 亚洲欧美中日韩| 欧美看片网站| 极品少妇一区二区三区| 亚洲免费婷婷| 一区二区三区久久精品| 美脚丝袜一区二区三区在线观看| 国产精品久久久久久久久久ktv| 在线精品国产欧美| 欧美一二三视频| 亚洲欧美综合v| 欧美特黄a级高清免费大片a级| 亚洲第一视频网站| 欧美一区二区国产| 性欧美18~19sex高清播放| 欧美日韩国产不卡在线看| 在线精品国产欧美| 亚洲第一福利在线观看| 久久国产直播| 国产精品美女在线观看| 亚洲免费电影在线| 亚洲精品久久| 美女脱光内衣内裤视频久久网站| 国产精品一区二区你懂得 | 久热精品视频| 国产亚洲精品aa午夜观看| 亚洲自拍偷拍色片视频| 亚洲小少妇裸体bbw| 欧美日韩国产美女| 亚洲日本成人女熟在线观看| 亚洲国产精品一区二区三区| 久久精品综合网| 国产一区日韩二区欧美三区| 亚洲综合导航| 午夜亚洲福利在线老司机| 国产精品成人v| 亚洲社区在线观看| 亚洲自拍电影| 国产精品亚洲一区| 亚洲欧美国产视频| 欧美一乱一性一交一视频| 国产精品入口麻豆原神| 亚洲影院免费| 午夜精品一区二区三区四区| 欧美小视频在线观看| 一本色道久久加勒比精品| 亚洲午夜精品一区二区| 欧美视频日韩视频在线观看| av成人动漫| 亚洲专区一区| 国产精品日本| 午夜在线一区| 久久精品国产久精国产爱| 狠狠色伊人亚洲综合成人| 久久精品国产亚洲5555| 米奇777超碰欧美日韩亚洲| 亚洲成人在线视频播放| 亚洲美女视频在线观看| 欧美人在线观看| 一区二区三区久久| 性久久久久久| 精品二区视频| 日韩写真在线| 国产精品每日更新| 欧美在线关看| 欧美成人嫩草网站| 亚洲人成网在线播放| 亚洲一区免费网站| 国产日韩成人精品| 最近中文字幕日韩精品 | 在线精品国产成人综合| 一本久久a久久精品亚洲| 国产精品va在线播放| 午夜久久一区| 欧美不卡在线| 一区二区三区日韩在线观看| 小嫩嫩精品导航| 黄色日韩在线| 一区二区三区高清视频在线观看| 国产精品久久久久久久7电影| 欧美一级电影久久| 欧美黄免费看| 亚洲一区二区三区免费在线观看| 久久九九精品99国产精品| 亚洲承认在线| 亚洲欧美日韩在线观看a三区| 韩国免费一区| 亚洲视频免费在线| 国产一区二区日韩精品| 亚洲精品少妇| 国产精品女同互慰在线看| 亚洲国产合集| 国产精品激情| 亚洲国产一区在线观看| 欧美色一级片| 亚洲福利视频一区二区| 欧美视频一区二区| 亚洲国产精品激情在线观看 | 国产乱码精品一区二区三区av| 亚洲高清不卡| 国产精品久久影院| 亚洲日本欧美日韩高观看| 欧美调教视频| 亚洲欧洲日本mm| 国产精品专区一| 99国产麻豆精品| 国产综合第一页| 亚洲综合三区| 最新日韩中文字幕| 久久国产精品一区二区| 日韩一本二本av| 另类激情亚洲| 亚洲欧美国产视频| 欧美日韩中文字幕综合视频| 久久国产精品久久久| 国产精品免费视频xxxx| 亚洲精品资源美女情侣酒店| 国产视频久久久久| 亚洲欧美成人在线| 亚洲日本aⅴ片在线观看香蕉| 久久久综合香蕉尹人综合网| 亚洲无线一线二线三线区别av| 欧美xxxx在线观看|