Tslib和Qt 4.8.4在mini2440开发板上的移植_第1页
Tslib和Qt 4.8.4在mini2440开发板上的移植_第2页
Tslib和Qt 4.8.4在mini2440开发板上的移植_第3页
Tslib和Qt 4.8.4在mini2440开发板上的移植_第4页
Tslib和Qt 4.8.4在mini2440开发板上的移植_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Tslib和Qt 4.8.4在mini2440开发板上的移植-Vector(2013-05-14)软件平台Linux:Ubuntu 9.04QT:4.8.4交叉编译工具链:gcc version 3.4.1 开发板:友善之臂mini2440tslib编译与安装tslib是电阻式触摸屏用于校准的一个软件库,是一个开源的程序,能够为触摸屏驱动获得的采样提供诸如滤波、去抖、校准等功能,通常作为触摸屏驱动的适配层,为上层的应用提供了一个统一的接口。因此这里先编译安装tslib,这样在后面编译Qt的时候才能打包编译进去。首先现在源文件编译安装过程很简单首先需要检查一下软件是否安装sudo apt-get

2、 install automakesudo apt-get install autogensudo apt-get install autoconf -这三个一定要检查,不然有可能编译出错!确定以上工具都已经安装后,解压安装即可。# tar -zxvf tslib-1.4.tar.gz -因为下面prefix 指定安装在/usr/local下,这个文件不能放在/usr/local下面!可放在其它目录如/home.# cd tslib# ./autogen.sh#./configure -host=arm-linux ac_cv_func_malloc_0_nonnull=yes -cache-

3、file=arm-linux.cache -prefix=/usr/local/tslib# make# make install-prefix=/usr/local/tslib是指定安装路径,其实包括下文的安装配置,路径都可以不指定,默认就是安装到/usr/local/目录下.如果编译没错,最后正确的结果应该是在/usr/local 下的文件夹为:tslib的开发板移植与测试 将交叉编译的tslib安装到开发板上其实就是拷贝相关的文件并添加系统环境变量而已,所以相对操作较为简单,主要的就是需要找对目录就行。按照上面的操作方法,交叉编译安装后的文件在/usr/local/tslib目录下,因此

4、需要拷贝的文件如下:1. /usr/local/tslib/lib文件下除去pkgconfig目录外其他所有文件拷贝到开发板/lib目录下 2. /usr/local/tslib/etc下的ts.conf拷贝到开发板的/etc下,在复制对应目录之前修改文件如下,也可以复制完成后修改。3. /usr/local/tslib/bin 下的所有文件拷贝到开发板/tslib下;下面是ts.conf文件的第一行与第二行# Uncomment if you wish to use the linux input layer event interface# module_raw input去掉# modu

5、le_raw input前面的注释,一定要注意中间的空格也去掉,module顶格。注意:运行./ ts_calibrate时可能会出现selected device is not a touchscreen I understand错误,这时只需要将ts.conf文件中的module_raw h3600 的注释符号去掉(左边不能留空格).最后添加环境变量,通过超级终端在开发板系统中添加环境变量,可以在开发板文件系统的/etc/profile(nfs 挂载时是/opt/mini2440/root_nfs/etc/profile)文件里添加。export TSLIB_TSDEVICE=/dev/i

6、nput/ts0export TSLIB_CONFFILE=/etc/ts.confexport TSLIB_PLUGINDIR=/lib/tsexport TSLIB_CALIBFILE=/etc/pointercalexport TSLIB_CONSOLEDEVICE=noneexport TSLIB_FBDEVICE=/dev/fb0说明:  TSLIB_TSDEVICE        /触摸屏设备文件名。  TSLIB_CALIBFILE     

7、   /校准的数据文件,由ts_calibrate校准程序生成。 SLIB_CONFFILE        /配置文件名。  TSLIB_PLUGINDIR         /插件目录 TSLIB_CONSOLEDEVICE        /控制台设备文件名 TSLIB_FBDEVICE     &

8、#160;  /设备名以上环境变量在实际开发中的实际配置可以根据实际情况决定。而这些指定的设备节点一定要和你的开发板上的/dev目录下的设备节点相对应。最后运行测验程序ts_calibrate 进行校验 ts_test      进行测试QT 的交叉编译与安装和PC平台下的编译类似,通过运行./configure进行配置生成makefile文件,然后编译安装,只是因为是针对嵌入式平台需要进行一些针对性配置,这里生成一个自动配置文件,可以通过修改文件来方便的更改配置。# cd qt-everywhere-opensource-src-4

9、.8.4 (/downloads)#sudo gedit autoconfig.sh加入以下内容保存.#!/bin/sh./configure -force-pkg-config -prefix /usr/local/qte-arm -opensource -confirm-license -release -shared -embedded arm -xplatform qws/linux-arm-g+ -depths 16,18,24 -fast -optimized-qmake -qt-sql-sqlite -qt-libjpeg -qt-zlib

10、 -qt-libpng -qt-freetype -little-endian -host-little-endian -no-qt3support -no-libtiff -no-libmng -no-opengl -no-mmx -no-sse -no-sse2 -no-3dnow -no-openssl -no-webkit -no-qvfb -no-phonon -no-nis -no-opengl -no-cups -no-glib -no-xcursor -no-xfixes -no-xrandr -no-xrender -no-separate-debug-info -nomak

11、e examples -nomake tools -nomake docs -qt-mouse-tslib -I/usr/local/tslib/include -L/usr/local/tslib/lib-D_ARM_ARCH_5TEJ_exit如果需要指定安装路径可以在开始加入-prefix=/usr/local/qte-arm -网上有说这个文件夹名不能更改,否则编译会出错!-embedded arm: 表示将编译针对 arm 平台的 embedded 版本; -xplatform qws/linux-arm-g+: 表示使用 arm-linux 交叉编译器进行编译; -qt-mouse

12、-tslib: 表示将使用 tslib 来驱动触摸屏;注意:-pch -这个必须注释掉,不然编译出错!-D_ARM_ARCH_5TEJ_ 项对于4.7.0 Qt 必须加上,不然编译会报如下错误:In file included from ./config.h:26,from ./JavaScriptCore/pcre/pcre_compile.cpp:44:./JavaScriptCore/wtf/Platform.h:338:6: #error "Not supported ARM 

13、architecture"对于4.8.4,这个应该没有影响.cd /usr/local/qt-everywhere-opensource-src-4.8.4/mkspecs/qws/linux-arm-g+修改qmake.conf如下:# qmake configuration for building with arm-linux-g+#include(././common/linux.conf)include(././common/gcc-base-unix.conf)include(././common/g+-unix.conf)include(././common/qws.c

14、onf)QMAKE_INCDIR+=/opt/mini2440/root_nfs/tslib/includeQMAKE_LIBDIR+=/opt/mini2440/root_nfs/lib# modifications to g+.confQMAKE_CC = /usr/local/arm/3.4.1/bin/arm-linux-gcc -ltsQMAKE_CXX = /usr/local/arm/3.4.1/bin/arm-linux-g+ -ltsQMAKE_LINK = /usr/local/arm/3.4.1/bin/arm-linux-g+ -ltsQMAKE_LINK_SHLIB

15、= /usr/local/arm/3.4.1/bin/arm-linux-g+ -lts# modifications to linux.confQMAKE_AR = /usr/local/arm/3.4.1/bin/arm-linux-ar cqsQMAKE_OBJCOPY = /usr/local/arm/3.4.1/bin/arm-linux-objcopyQMAKE_STRIP = /usr/local/arm/3.4.1/bin/arm-linux-stripload(qt_config)Note: QMAKE_INCDIR+=/opt/mini2440/root_nfs/tslib

16、/includeQMAKE_LIBDIR+=/opt/mini2440/root_nfs/lib这两行必须放在”include”语句后面,而且QMAKE_INCDIR和QMAKE_LIBDIR是指向的开发板共享的路径,而不是存放在本机中的路径,因为这里面有tslib 触摸屏测试,不然肯定configure 不过去!运行./autoconfig.sh 生成makefile文件,生成成功最后会输出如下信息Qt is now configured for building. Just run 'make'.Once everything is built, you must run

17、'make install'.Qt will be installed into /usr/local/Trolltech/QtEmbedded-4.8.4-armTo reconfigure, run 'make confclean' and 'configure'.接下来执行make,make过程中会出现一些错误,有些是程序本身的一些bug,比较典型的有:(1) ././include/QtCore/././src/corelib/arch/qatomic_armv5.h:236: error: count' was not decl

18、ared in this scope修复:/src/corelib/arch/qatomic_armv5.h发现原来是漏了一句 int count = 0;分别在236和373所在的函数定义处补上.(2)obj/release-shared-emb-mips/qthread_unix.o: In function set_thread_data(QThreadData*)':  qthread_unix.cpp.text+0xec): undefined reference to _tl

19、s_get_addr' 修复:关掉该宏后再编译#if defined(Q_OS_LINUX) && defined(_GLIBC_) && (defined(Q_CC_GNU) | defined(Q_CC_INTEL) /#define HAVE_TLS(3) standard input: Assembler messages: standard input:778: Error: register or shift expression expected - orr r3,r2,lsl#16'修复:sudo gedit /src/

20、3rdparty/freetype/include/freetype/config/ftconfig.hLine 330. change"orr %0, %2, lsl #16nt" /* %0 |= %2 << 16 */ to "orr %0, %0, %2, lsl #16nt" /* %0 |= %2 << 16 */(4) lib/libQtGui.so: undefined reference to ts_read_raw'解决办法:'修改qt-everywhere-opensource-src-4.7

21、.2/mkspecs/qws/linux-arm-g+/qmake.conf 文件(添加lts参数):QMAKE_CC                = arm-linux-gcc -ltsQMAKE_CXX               = arm-linux-g+ -ltsQMAKE_LINK              = arm-linux-g+ -ltsQMAKE_LIN

22、K_SHLIB        = arm-linux-g+ -lts最后make install安装,安装完成后可以在安装目录/usr/local/qte-arm 下查看对应文件,如下图:提醒:对4.8.4中的代码修改后最好重新打包,以方便以后使用.开发板配置 在开发板上的使用其实很简单,只需要拷贝相应的库文件并设置环境变量即可,拷贝的方法按照个人喜好,我是挂载nfs来实现拷贝。cp rf /usr/local/qte-arm /opt/mini2440/root_nfs/ 设置环境变量:sudo gedit /opt/mini2440/root_nfs

23、/etc/profile# Ash profile # vim: syntax=sh# No core files by defaultulimit -S -c 0 > /dev/null 2>&1USER="id -un"LOGNAME=$USERPS1='uh W# 'PATH=$PATHHOSTNAME=/bin/hostname#export USER LOGNAME PS1 PATH# tslib pathexport TSLIB_TSDEVICE=/dev/input/ts0export TSLIB_CONFFILE=/etc/ts.confexport TSLIB_PLUGINDIR=/lib/tsexport TSLIB_CALIBFILE=/etc/pointercalexport TSLIB_CON

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论