實(shí)踐之Qt在Blackfin平臺(tái)的移植應(yīng)用
最近有朋友跟我交流在ADI 的Blackfin平臺(tái)上進(jìn)行的實(shí)踐,很多細(xì)節(jié)我不清楚了,今天我把整個(gè)過(guò)程重新進(jìn)行了一遍,寫出來(lái),跟朋友們共勉。
先介紹一下QT,做個(gè)掃盲,這里使用的是 Qte-4.5.2。Qt 的開(kāi)發(fā)公司奇趣科技在被諾基亞收購(gòu)后,Qt 代碼中就融入了很多諾基亞的風(fēng)格,相比之前的風(fēng)格顯得更為時(shí)尚和人性化,而且更加適合用于手機(jī)等移動(dòng)設(shè)備,因此在進(jìn)行 GUI 的選擇的時(shí)候不妨考慮一下。
為了讓你的Blackfin系統(tǒng)能順利運(yùn)行qt,你必須保證你的系統(tǒng)已經(jīng)存在一個(gè)可以運(yùn)行 ulinux 系統(tǒng)(內(nèi)核需要支持 unix socket 選項(xiàng) )且支持 frambuffer 的 Blackfin平臺(tái)環(huán)境 , 并且有了 blackfin 平臺(tái)編譯工具鏈。
1 配置:解壓光盤中的 linuxlinux-source qt-embedded-linux-opensource-src-4.5.2.tar.gz 到Ubuntu 下,在終端中進(jìn)入該目錄。若默認(rèn)交叉編譯工具鏈(Blackfin-linux-)沒(méi)有加入到系統(tǒng)的環(huán)境變量或所用的交叉編譯工具鏈不是 Blackfin-linux-,所需要修改 qt-embedded-linux-opensource-src-4.5.2 目錄下的mkspecs/qws/linux-arm-g++/qmake.confroott@UbuntuTian:/home/chinasoft/qt-embedded-linux-opensource-src-4.5.2/mkspecs/qws/linux-arm-g++# vim qmake.conf 修改,并輸入以下命令進(jìn)行 qt4 的配置:./configure -prefix /usr/local/QtEmbedded-4.5.2 -embedded arm -no-webkit-no-qt3support -nomake examples -nomake demos -nomake docs -xplatformqws/linux-arm-g++ -little-endian這時(shí)候會(huì)要求選擇版本和是否接受 license,這里輸入 o 和 yes 即可:
2、編譯、安裝:這里默認(rèn)使用 arm-linux-編譯器,光盤中提供的 eabi-4.3.1中已經(jīng)做了 arm-linux-的軟連接,把該編譯器的路徑添加到 PATH 環(huán)境變量即可得到 arm-linux 前綴的 EABI-4.3.2編譯器。在設(shè)置好編譯器后進(jìn)行編譯:
漫長(zhǎng)的編譯結(jié)束后將在主機(jī)(Ubuntu)下的/usr/local/QtEmbedded-4.5.2 得到編譯后的結(jié)果。不過(guò)這個(gè)編譯后的目錄內(nèi)保護(hù)了很多不需要放到板子上的內(nèi)容,可以這個(gè)目錄下的部分目錄內(nèi)容進(jìn)行刪減后,如下面的 2 個(gè)圖所展示的那樣。另外即使按照下圖進(jìn)行刪減后仍然有相當(dāng)部分文件可以刪除的,不過(guò)這里就留給讀者去完成了。
3 設(shè)置運(yùn)行時(shí)的環(huán)境變量上面步驟之后已經(jīng)得到了可用的 Qte,把整個(gè) QtEmbedded-4.5.2目錄復(fù)制到板子根目錄的/usr/local/路徑下。接著在板子的/usr/local/QtEmbedded-4.5.2 中添加腳本文件setenv-arm.sh,添加如下內(nèi)容:
注意紅色部分字體的設(shè)置是非常重要的,主要是指定觸摸屏的工作參數(shù)。最后一句是自動(dòng)運(yùn)行特定的程序,保存退出,并進(jìn)入板子 shell 界面執(zhí)行這個(gè)腳本。接著便可以運(yùn)行一下自帶的那些測(cè)試程序了:
便能在 LCD 上看到一個(gè)漂亮的動(dòng)畫(huà)了:
OK,一切正常了,做圖形界面開(kāi)發(fā)就沒(méi)問(wèn)題了。