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

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

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

0 引言

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

1 總體設(shè)計(jì)

  1.1 硬件平臺(tái)搭建

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

001.jpg

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

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

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

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

  2.1 tslib庫(kù)的研究與編譯安裝

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

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

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

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

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

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

  $echo“ac_cv_func_malloc_0_nonnull=yes”>make.cache

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

  宿主機(jī)常用的是以X86為核心的PC機(jī),而目標(biāo)板是ARM體系結(jié)構(gòu),需要在宿主機(jī)上建立適用于在目標(biāo)板上的交叉編譯環(huán)境[5]。達(dá)芬奇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文件夾復(fù)制到目標(biāo)板文件系統(tǒng)/usr/local/下。

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

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

  修改/home/sml/filesys/etc/profile文件,例如指定Qt文件目錄,校準(zhǔn)文件的存放位置,觸摸屏設(shè)備,指定幀緩沖設(shè)備,tslib庫(kù)文件路徑等。設(shè)置開(kāi)發(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應(yīng)用程序開(kāi)發(fā)流程

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

002.jpg

3 實(shí)驗(yàn)測(cè)試

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

003.jpg

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

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

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

  #cd/opt/dm365/

  #./qt-demo-qws&

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

004.jpg

4 結(jié)束語(yǔ)

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

參考文獻(xiàn)

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

  [2] 陳敬,向偉.基于嵌入式Linux的Qt/Embedded移植與應(yīng)用開(kāi)發(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的音視頻服務(wù)器的設(shè)計(jì)[D].武漢:武漢理工大學(xué),2011:17-27.

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


此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
主站蜘蛛池模板: 免费的三级毛片 | 玖玖国产在线观看 | 成人在线视频免费 | 中文字幕 亚洲精品 第1页 | 欧美成人久久一级c片免费 欧美成人看片黄a免费 | 久久高清免费视频 | 亚洲天堂毛片 | 九九精品国产兔费观看久久 | 日本美女视频韩国视频网站免费 | 一a一级片 | 国产猛烈无遮掩视频免费网站男女 | 亚洲国产成人久久笫一页 | 岛国大片在线播放高清 | 国产高清美女一级a毛片久久w | 国产精品一区二区av | 日本一级高清片免费 | 久久精品青草社区 | 日本在线观看免费视频网址 | 九九视频在线 | 久久久久久久性潮 | 女人抠逼视频 | a欧美在线 | 9久9久女女热精品视频免费观看 | 国产一国产一级毛片视频在线 | 99视频网址| 免费99热在线观看 | 免费看裸色 | 神马午夜在线 | 国产成人免费高清视频 | 国产精品亚洲第一区二区三区 | 久久极品 | 免费看欧美一级特黄a大片一 | 日韩欧美亚洲国产 | 国产资源在线免费观看 | 色婷婷国产精品欧美毛片 | 久久精品综合免费观看 | 欧美日韩不卡在线 | 亚洲精品国自产拍影院 | 久久羞羞 | 色偷偷亚洲精品一区 | 性欧美精品 |