Chinaunix首页 | 论坛 | 博客
  • 博客访问: 200446
  • 博文数量: 91
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 15
  • 用 户 组: 普通用户
  • 注册时间: 2015-12-09 10:37
文章分类
文章存档

2016年(87)

2015年(4)

我的朋友

分类: 嵌入式

2015-12-09 10:38:27



如题,我用的是arm-linux-4.4.1版本的交叉编译器,QT版本是4.6.3,移植步骤大致跟天嵌QT4.5版的差不多,arm版的移植步骤如下:
1.编译tslib1.4,安装在/opt/tslib下
  1. ./autogen.sh
  2. echo "ac_cv_func_malloc_0_nonnull=yes" >arm-linux.cache
  3. ./configure --host=arm-linux --cache-file=arm-linux.cache --prefix=/opt/tslib
复制代码
2.编译qt-embedded-arm,安装在 /opt/QT/qt-embedded-4.6.3-arm下
  1. ./configure -embedded arm -xplatform qws/linux-arm-g++ -qt-kbd-tty -qt-mouse-tslib -qt-mouse-pc -qt-gfx-linuxfb -no-gfx-qvfb -no-gfx-vnc -no-glib -release -shared -no-qt3support -no-xmlpatterns -no-svg -no-webkit -qt-zlib -qt-gif -qt-libtiff -qt-libpng -qt-libmng -qt-libjpeg -make libs -no-nis -no-cups -no-iconv -no-dbus -no-openssl -little-endian -qt-freetype -depths all -prefix /opt/QT/qt-embedded-4.6.3-arm -I /opt/tslib/include -L /opt/tslib/lib
复制代码
3.将tslib/lib下所有文件复制到qt-embedded-4.6.3-arm/lib下(不复制的话则第4步编译程序时找不到某些库)。

4.用arm版本的qmake编译程序测试无问题。(此时删掉/opt/tslib目录发现依然可以编译,似乎编译只依赖于qt-embedded-4.6.3-arm/lib下的库)

5.将qt-embedded-4.6.3-arm下的lib和plugins文件夹复制到开发板文件系统的/opt/QT/qt-embedded-4.6.3-arm下(保持开发板目录结构与PC机一致)。然后删除.so以外的文件并只保留需要的字体。

6.复制tslib/etc/ts.conf文件到开发板文件系统的/etc下,去掉第二行前的#号
  1. # Uncomment if you wish to use the linux input layer event interface
  2. module_raw input
复制代码
7.在/etc/profile中添加如下内容:
  1. # QT
  2. QTDIR=/opt/QT/qt-embedded-4.6.3-arm
  3. export LD_LIBRARY_PATH=$QTDIR/lib:$QTDIR/plugins/imageformats:$LD_LIBRARY_PATH
  4. export TSLIB_PLUGINDIR=$QTDIR/lib/ts
  5. export TSLIB_CONSOLEDEVICE=/dev/tty
  6. export TSLIB_TSDEVICE=/dev/event0
  7. export TSLIB_FBDEVICE=/dev/fb0
  8. export TSLIB_CONFFILE=/etc/ts.conf
  9. export TSLIB_CALIBFILE=/etc/pointercal

  10. export set QWS_FONTDIR=$QTDIR/lib/fonts
  11. export set QWS_MOUSE_PROTO="TSLIB:/dev/event0"
  12. export set QWS_DISPLAY="LinuxFB:/dev/fb0"
  13. export set QWS_DISPLAY="LinuxFB:mmWidth130:mmHeight100:0"
复制代码
8.将自己的QT测试程序和ts_calibrate复制到开发板文件系统的/home/usr目录下,最后将文件系统制作成bin文件烧入开发版中。

9.cd /home/usr,先运行ts_calibrate校准触摸屏,然后运行自己的QT测试程序。发现程序可以运行,点击触摸屏可以控制鼠标移动,但鼠标却 无法点击QT界面上的任何按钮,点击拖拽均无反应。看来触摸屏的点击信号没有跟鼠标的点击信号联系起来,仅仅只将触摸点的位置信息传给了鼠标。不知问题出 在哪里。。。求指教。。。

PS:在移植之前有移植过触摸屏驱动(否则不可能使用触摸屏),驱动程序用的是天嵌手册中提到的tq2440_ts.c


找出问题了 是安装tslib的configure错了。。。
应该是:
  1. ./configure --host=arm-linux -disable-hp3600 --disable-arctic2 --disable-mk712 --disable-collie --disable-corgi --disable-ucb1x00 --disable-linear-h2200 --with-gnu-ld --prefix=/opt/tslib ac_cv_func_malloc_0_nonnull=yes
复制代码

阅读(2873) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:Linux内核container_of详解(图解)

给主人留下些什么吧!~~