基于海思3515芯片移植qt-embedded

最近,基于个人需要, 想要移植一下qt-embeded于海思的3515芯片上。最终移植成功,特记录此文档,希望对有缘阅此文档的读者和朋友,有所帮助吧。

1

1.1 下载qt-embedded-linux-opensource-src-4.5.3.tar.gz源码

下载地址 http://get.qt.nokia.com/qt/source/qt-embedded-linux-opensource-src-4.5.3.tar.gz

1.2 解压文件

下载的压缩文件位于/home/xi/mywork/software/目录下,

#cd /home/xi/mywork/software                        //进入源码包所在的目录

#tar -xvzf qt-embedded-linux-opensource-src-4.5.3.tar.gz        //解压源码在当前的目录。

解压成功,最后会生成qt-embedded-linux-opensource-src-4.5.3目录。

2 编绎源码

2.1 指定编绎器类型

#cd qt-embedded-linux-opensource-src-4.5.3

#vim mkspecs/qws/linux-arm-g++/qmake.conf

把所有的arm-linux-**改为arm-hisiv100-linux-**

2.2 配置configure

指定编绎哪些模块,哪些模块不编绎。 qtconfigure.sh  用于保存configure配置。

#vim qtconfigure.sh

./configure /

--prefix=/usr/local/Trolltech/Qt-Embedded-4.5.3-arm /-no-pch /

-xplatform /

qws/linux-arm-g++ /

-arch arm /

-embedded arm /

-no-freetype /

-qt-mouse-pc /

-fast /

-no-largefile /

-no-accessibility /

-no-stl /

-no-qt3support /

-no-xmlpatterns /

-no-phonon /

-no-svg /

-no-webkit /

-no-scripttools /

-no-mmx /

-no-3dnow /

-no-sse /

-no-sse2 /

-no-openssl /

-no-nis /

-no-cups /

-no-iconv /

-no-pch /

-no-dbus

#chmod +x qtconfigure.sh;./qtconfigure.sh

注: --prefix=/usr/local/Trolltech/Qt-Embedded-4.5.3-arm指定qt的库文件,demo程序等的安装目录为/usr/local/Trolltech/Qt-Embedded-4.5.3-arm

2.3 指定编绎时不编绎浏览器, 屏蔽webkit和browser,

vim examples/examples.pro,屏蔽以下行(行首添加#)

contains(QT_CONFIG, webkit): SUBDIRS += webkit

vim demos/demos.pro,屏蔽以下两行(行首添加#)

contains(QT_CONFIG, webkit):contains(QT_CONFIG, svg):SUBDIRS += demos_browser

demos_browser.subdir = browser

2.4 gmake & gmake install

最终会在/usr/local/Trolltech/Qt-Embedded-4.5.3-arm下看到如下目录。

bin demos examples include lib mkspecs plugins

3 开发板nfs运行qt程序。

3.1 开发板mount 服务器下的/home/zhoumin 目录到 开发板的 /mnt 目录下。

mount -t nfs -o nolock 192.168.*。*:/home/zhoumin /mnt

3.2设定qt程序运行的环境变量 /mnt/usr/qt/hismall 为下载编绎qte 后生成的库所在的目录。

export QTDIR=/mnt/usr/qt/hismall

export PATH=$QTDIR/bin:$PATH

export TSLIB_CONSOLEDEVICE=none

export LD_LIBRARY_PATH=$T_ROOT/lib:$QTDIR/lib

4 运行qt程序

4.1 运行qt demo 程序前应先打开framebuffer设备文件,可以先运行海思提供的framebuffer演示demo程序。

./api_sample_hifb &  //程序后台执行

我们的目的是打开framebuffer设备文件 ,自行写个小程序也行。

4.2 运行qt程序。

#cd /mnt/open-source/qt-embedded-linux-opensource-src-4.5.3/demos/affine

#./affine -qws

注:什么是QWS Client和QWS Server?

QT Embedded也是一种C/S结构,需要有一个QT application做QWS Server,程序启动时带有-qws参数的就是QWS Server,不带这个参数就是QWS Client。

因此任何一个基于QT的application都可以做QWS Server。当然QWS Server一定先于QWS Client启动,否则QWS Client将启动失败。在实际应用中,

会指定某个特殊的application做QWS Server,这个application一般还会管理一些其它的系统资源。

比较常见的tslib变量声明

echo "Set ENV for tslib......"

export TSLIB_ROOT=/usr/local/tslib

export TSLIB_TSDEVICE=/dev/event0 /*触摸屏设备*/

export TSLIB_CALIBFILE=/etc/pointercal

export TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf

export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts

export TSLIB_CONSOLEDEVICE=none

export TSLIB_FBDEVICE=/dev/fb0

echo "set ENV for qte"

export QTDIR=/usr/local/qte

export QWS_DISPLAY=LinuxFb:mmWidth800:mmHeight480:0

export QWS_SIZE=800x480

export QT_QWS_FONTDIR=$QTDIR/lib/fonts

xport QWS_MOUSE_PROTO="Tslib:/dev/event0"

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐