舒明蕾,華驚宇,賴尚校(浙江工業大學 浙江省通信網技術應用研究重點實驗室,浙江 杭州 310023)
基于DM365平臺的Qt/Embedded移植
舒明蕾,華驚宇,賴尚校
(浙江工業大學浙江省通信網技術應用研究重點實驗室,浙江杭州 310023)
概述了基于達芬奇技術的TM320DM365的硬件環境搭建,介紹了嵌入式系統軟件架構,并詳細闡述了Qt/E的安裝移植,包括tslib1.4庫的編譯并做相應的設置,概述了嵌入式GUI開發流程。最后,使用一個簡單的應用程序對移植的情況進行了測試。
達芬奇技術;Qt嵌入式系統;移植
隨著嵌入式系統以及圖像處理技術的發展,嵌入式監控設備已經廣泛用于視頻監控中。客戶對于視頻監控終端需要人性化的人機交互界面。Qt/Embedded是Trolltech發布的面向嵌入式系統的 Qt版本[1],具有很好的跨平臺特性以及為用戶提供豐富的API接口和界面設計友好等優點[2]。但由于 PC機編譯的應用程序不能直接在嵌入式系統中應用,本文針對這一問題,主要介紹了基于以TI的TMS320DM365為代表支持觸摸屏的嵌入式界面開發與移植。為類似的嵌入式Qt應用程序開發提供了參考。
1.1硬件平臺搭建
達芬奇技術是為數字視頻而設計的系統解決方案,采用了ARM+DSP雙核架構,ARM處理器上使用Linux操作系統來負責外圍模塊的管理,而DSP端執行音視頻編解碼算法[3]。既滿足視頻應用在控制方面、計算能力的需求,又降低了系統成本,同時也降低了系統的復雜性。TI的TMS320DM365芯片正是達芬奇平臺的典型代表。DM365芯片的優點還包括提供了豐富的外設接口,比如DDR接口、Flash接口、SD卡接口、UART串口等[4]。DM365的視頻處理后端將經視頻處理子系統處理的圖像輸出到外部顯示器上。顯示模塊選用的是一款支持觸摸屏的5.7英寸、分辨率為640×480的TFT-LCD。整體的硬件設計如圖1所示。

圖1 硬件結構框圖
1.2嵌入式系統開發環境搭建
啟動過程中,首先加載系統引導程序,包括RBL (ROM Boot Loader)、UBL、U-Boot。首先執行 RBL,從NAND上讀取UBL并復制到內存中。UBL初始化系統硬件,從NAND中讀取U-Boot的內容復制到DDR里,UBoot加載內核,完成內核的啟動。啟動后,會將 NAND Flash中的 yaffs2文件系統掛載到根目錄下,至此,整個系統開發環境搭建完畢。
嵌入式系統中常用的圖形用戶界面有MiniGui、Micro Windows和Qt。與其他軟件相比,Qt可移植性強,開發周期短;信號和槽這一機制使得用戶交互更方便。從開發周期、應用領域等多方面考慮,選用Qt設計圖形界面。但由于PC機上的系統與嵌入式 Linux系統差異比較大,因此不能直接復制PC機上調試好的Qt應用程序到嵌入式系統中運行。而且針對不同的嵌入式系統,需要不同的Qt平臺開發應用程序。本文介紹了基于Qt/ Embedded開發應用程序,并移植到 DM365硬件平臺的方法。
2.1tslib庫的研究與編譯安裝
帶觸摸屏的移動終端,電磁噪聲會導致觸摸屏出現觸摸不準確等問題。tslib為驅動處獲得原始的采樣數據提供去噪、去抖等功能,將設備坐標轉換為對應的屏幕坐標,為應用層提供接口。先下載tslib源碼包,解壓tslib1.4.tar.gz到工作目錄下。
tslib文件夾中ts.conf配置了需要加載的插件、插件順序以及一些約束參數。由于源碼中沒有指定module_raw,而需要input模塊從輸入設備讀取數據,所以去掉module_raw input語句前注釋。同時TSLIB_PLUGINDIR一定要配置正確,使tslib找到模塊文件。驅動向應用層匯報的是絕對坐標信息,為了獲取到觸摸屏的驅動數據,應修改plugins目錄下的input-raw.c源碼。否則校準觸摸屏沒有反應。
static int ts_input_read(…)這個函數體中,ABS_X獲取的為x坐標,ABS_Y獲取的y坐標,ABS_PRESSURE為報告觸摸事件,需定義ABS_X為0x35,ABS_Y為0x36,ABS_PRESSURE為0x30。數據為讀取的設備接口信息。
$./autogen.sh//生成configure腳本
$./configure--host=arm-linux--perfix==/usr/local/ tslib
配置成功生成 makefile文件,make編譯生成庫文件,但是發現 make的時候報錯,需要建立一個 cache文件。則編譯之前需要執行如下命令:
$echo“ac_cv_func_malloc_0_nonnull=yes”>make.cache
編譯成功后,執行make install進行安裝。
宿主機常用的是以X86為核心的PC機,而目標板是ARM體系結構,需要在宿主機上建立適用于在目標板上的交叉編譯環境[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文件夾復制到目標板文件系統/usr/local/下。
2.2Qt/Embedded-arm編譯安裝與移植
Qt/Embedded-arm是Qt嵌入式版本。為了在開發板上運行Qt程序,需利用交叉編譯器對Qt/Embedded編譯生成庫文件。解壓源碼qt-everywhere-opensource-src-4. 7.2.tar.gz。進入生成的qt-embedded目錄后配置參數,參數的選擇也影響到 arm資源的占用率。鍵入make會根據生成文件夾中的makefile文件進行編譯。編譯完成后生成一個QtE-4.7.2-dm365庫文件夾,鍵入make install將庫文件安裝設定的/usr/local/Trolltech目錄下。而此時僅將庫文件拷貝到內核文件系統中是不可用的,為了讓嵌入式系統找到頭文件、動態庫、設備等資源,需要設定環境變量。基于硬件平臺,執行如下操作:
$./configure-prefix/usr/local/Trolltech/QtEm-4.7.2-dm365-opensource-confirm-license-embeddedarm-releasefast-qt-libpng-no-qt3support-qt-libtiff-qt-libjpeg-sharedno-webkit-maketools-no-largefile-nomakedemos-nomake examples-multimedia-no-cups-xplatform qws/linux-arm-g++-nomake docs-no-qvfb-qt-mouse-pc-no-mouse-linuxtp-qtmouse-tslib-L/usr/local/tslib1.4/lib(指定動態庫的路徑)-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/(拷貝上位機生成庫文件到內核系統存放庫文件的路徑)
修改/home/sml/filesys/etc/profile文件,例如指定 Qt文件目錄,校準文件的存放位置,觸摸屏設備,指定幀緩沖設備,tslib庫文件路徑等。設置開發板環境變量:
$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.3Qt/Embedded應用程序開發流程
基于DM365硬件平臺的嵌入式GUI開發流程中,首先使用安裝好的軟件Qt Creator開發應用程序。大致步驟是創建初始化對象,對控件進行布局,然后通過建立信號連接自定義的槽函數來實現窗口動作。完成的工程利用集成開發工具和嵌入式Qt4庫進行交叉編譯。接著將編譯通過的應用程序通過NFS網絡文件系統掛載到目標板調試。調試通過后,將應用程序拷貝到文件系統中,并打包燒寫到開發板的 Flash中,最后設置為目標板自啟動[5]。流程如圖2所示。

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

圖3 校準程序的運行結果
拷貝一個編譯通過的demo程序到文件系統dm365目錄下:
$cp/usr/local/qt-demo/home/sml/filesys/opt/dm365/
通過串口連接目標板,文件系統掛起之后 minicom執行如下操作:
#cd/opt/dm365/
#./qt-demo-qws&
觸摸屏上顯示如圖4所示結果,且鼠標跟隨觸摸位置的移動而移動,移植測試成功。

圖4 qt-demo程序測試圖
本文從硬件平臺的搭建到軟件環境搭建的介紹,重點介紹了如何移植觸摸屏的庫和闡述了Qt/E基于DM365嵌入式系統下的移植方法。在此嵌入式監控終端之上,可以進行各種各樣的嵌入式GUI開發。
[1]張春艷.基于 Qt的嵌入式圖形用戶界面研究與實現[D].大連:大連海事大學,2008:11-14.
[2]陳敬,向偉.基于嵌入式 Linux的 Qt/Embedded移植與應用開發[J].電腦信息與技術,2013,21(1):57-60.
[3]Texas Instruments.TMS320DM365 digital media system onchip[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系統中的開發與應用 [J].自動化技術與應用,2011,30 (8):37-38.
Qt/Embedded transplantation based on DM365 platform
Shu Minglei,Hua Jingyu,Lai Shangxiao
(Zhejiang Provincial Key Laboratory of Communtication Networks and Applications,Zhejiang University of Technology,Hangzhou 310023,China)
This paper expatiates the construction of hardware system based on the TM320DM365 of the Davinci Technology.It introduces the software architecture,and elaborates the process of compiling and installing Qt/E which includes the transplant of tslib1.4 library and the corresponding setting.Then it illustrates the development process for embedded GUI.At last,a simple application program is selected to test the transplant.
Davinci technology;Qt embedded system;transplantation
TN919.8
A
1674-7720(2015)05-0019-03
(2014-10-10)
舒明蕾(1991-),女,在讀研究生,主要研究方向:通信與信息系統。