摘 要:基于Linux嵌入式GUI在當(dāng)今嵌入式圖形界面開發(fā)中占有一定市場。其開源,易于移植的特點使其更加被廣泛的應(yīng)用。Qtopia手機(jī)平臺移植時,需要注意移植前的準(zhǔn)備,移植中注意的問題和在具體移植過程的分析及實現(xiàn)等。
關(guān)鍵詞:Linux;ARM平臺;Qtopia手機(jī)平臺移植
1 引言
QT是Trolltech公司有名的產(chǎn)品,最初是作為一個跨平臺的C++ GUI庫開發(fā),但隨著它的發(fā)展增加了一系列與GUI庫無關(guān)的庫,現(xiàn)在QT已經(jīng)成為一個通用的C++跨平臺類庫。Qt針對不同操作系統(tǒng)發(fā)布不同的版本,它們所定義的提供給應(yīng)用程序開發(fā)人員的API其實是相同的,在應(yīng)用程序開發(fā)人員看來,它們不必關(guān)心當(dāng)前操作系統(tǒng)是哪一種,只需要調(diào)用同一套API來實現(xiàn)它們的應(yīng)用程序即可。
2 移植前準(zhǔn)備
本文Qtopia版本是Qtopia-opensource-4.2.4版本的,帶有手機(jī)桌面環(huán)境,移植的交叉編譯器版本為arm-linux-gcc 4.1.2,內(nèi)核版本為:Linux-2.6.31,操作系統(tǒng)平臺為:Linux Red Hat 9.0,開發(fā)板平臺為:TX2440A。在移植前首先要先建好一個基本的根文件系統(tǒng),改名為qtopia_root,然后再將Tslib移植入根文件系統(tǒng)中,以保證在移植完成Qtopia后能夠正常的運行。
3 Qtopia手機(jī)平臺移植
3.1 開始移植
由于Qtopia不能在源碼目錄下編譯,在將Qtopia解壓到source目錄下后,要在同目錄下再建立一個target目標(biāo)文件,然后就可以在該目錄下編譯源碼。建這個目錄是為了和qtopia進(jìn)行交互。再在虛擬機(jī)下建一個執(zhí)行make install時的安裝目錄,也要在根文件系統(tǒng)中創(chuàng)建這個目錄,做為qpe的啟動目錄。以下的操作都是在source中進(jìn)行。
1)進(jìn)入qconfig-qpe.h:首先注釋掉關(guān)于鼠標(biāo)光標(biāo)的宏定義,使得程序運行時觸摸屏中央有光標(biāo)出現(xiàn);
2)將qconfig-qpe.h拷貝到global目錄,并注釋掉其他文件里光標(biāo)的定義;
3)關(guān)于時區(qū)問題。一種方法是把虛擬機(jī)目錄下/usr/share/zoneinfo中的所有文件拷到在根文件系統(tǒng)上建立的zoneinfo文件中。第二種方法是修改源代碼,使它指向自己的文件夾。
3.2 配置
由于配置代碼一般較長,因此可以事先寫好一個相應(yīng)的配置文件,在target目錄下執(zhí)行該配置文件即可。主要配置選項說明如下:
1)-xplatform linux-arm-g++ -arch arm,目標(biāo)平臺為arm-linux,體系結(jié)構(gòu)為arm;
2)-extra-qtopiacore-config,為Qtopia core配置選項。
如果沒有錯誤,就可以執(zhí)行make和make install,這個時間比較長,2小時左右。Qtopia會被安裝到/usr/local/qtopia目錄下。
3.3 兩種文件系統(tǒng)啟動方式
⑴用掛載NFS方式啟動
1)配置網(wǎng)絡(luò),確保掛載NFS正常;
2)配置啟動腳本,新建一個名為qtopia文件,加入可執(zhí)行權(quán)限,并把它放到根文件系統(tǒng)中;
3)然后在/etc/init.d/rcS 文件中加入一句開機(jī)自動運行qtopia腳本;
4)將觸摸屏校正程序放到根文件系統(tǒng)/usr/bin目錄下;
5)創(chuàng)建qtopia文件夾,用于掛載NFS;
6)制作文件系統(tǒng),燒入開發(fā)板,啟動系統(tǒng)。
⑵U盤傳輸文件
1)與NFS掛載方式的2)到5)步相同;
2)將qtopia目錄放到根文件系統(tǒng)的/usr/local下,再將啟動程序qpe放到根文件系統(tǒng)/usb/bin下;
3)裁剪文件系統(tǒng):將文件系統(tǒng)中的部分文件分離出來,制作成壓縮包,存入U盤中,制作文件系統(tǒng)鏡像,下載到開發(fā)板中,系統(tǒng)啟動后,將U盤插入開發(fā)板,掛載U盤,傳輸被分離出的文件到相應(yīng)的目錄下。
3.4 運行系統(tǒng)
首次運行系統(tǒng),會先運行觸摸屏校正程序,依次用觸摸筆點擊屏幕上出現(xiàn)的五個十字光標(biāo)的中心,再進(jìn)入qtopia。正常啟動后,屏幕中心就會出現(xiàn)鼠標(biāo)光標(biāo),然后出現(xiàn)啟動LOGO,再進(jìn)入主界面。當(dāng)執(zhí)行過觸摸屏校正程序,下次開機(jī)時就會直接進(jìn)入qtopia。
[參考文獻(xiàn)]
[1]施威銘研究室.Linux C語言實務(wù)[M].北京:機(jī)械工業(yè)出版社,2002.
[2]田家林,陳利學(xué),寇向輝.LINUX嵌入式操作系統(tǒng)在ARM上的移植[J].中文核心期刊《微計算機(jī)信息》(嵌入式與SOC),2007年第23卷第4-2期.
[3]倪繼利.Qt及Linux操作系統(tǒng)窗口設(shè)計[M].北京:電子工業(yè)出版社,2006.