Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1300166
  • 博文数量: 548
  • 博客积分: 7597
  • 博客等级: 少将
  • 技术积分: 4224
  • 用 户 组: 普通用户
  • 注册时间: 2010-12-15 13:21
个人简介

嵌入式软件工程师&&太极拳

文章分类

全部博文(548)

文章存档

2014年(10)

2013年(76)

2012年(175)

2011年(287)

分类: LINUX

2011-03-20 20:10:21

操作系统 debian5.0.1

编译器 arm-linux-gcc-3.4.1

先移植 tslib

安装三个工具

    apt-get install autoconf automake libtool

运行脚本

    ./autogen.sh         (不知道为什么,这行脚本中有 echo 但是 终端不显示)

3帧缓冲文件以及配置

    echo "ac_cv_func_malloc_0_nonnull=yes" >$ARCH_tslib.cache  

避免检查ac_cv_func_malloc_0_nonnull,如果不写这句,在Make时候会出现undefined reference to `rpl_malloc' 的错误。

    ./configure --prefix=/home/tslib --host=arm-linux --cache-file=$ARCH_tslib.cache --enable-inputapi=no

    make

    make install

此时会在/home/tslib 目录中有东西出来,tslib 目录 拷贝到开发板目录下的/home 目录中

在开发板中配置环境变量

export TSLIB_ROOT=/home/tslib

export TSLIB_TSDEVICE=/dev/input/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             #(某些好像是 /dev/fb/0) 看实际情况来确定

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TSLIB_ROOT/lib

下面是Tslib 1.4中的ts.conf的参考配置:

# Uncomment if you wish to use the linux input layer event interface

# module_raw input

#去掉

在开发板中进入 /home/tslib/bin 运行

./ts_calibrate

如果没问题,此时屏幕能正确校准,如果有问题不能运行或者其它,请赶紧删掉重做吧.

再移植 qt embedded

我的配置参数如下:

./configure -prefix /mini2440 -release -shared -fast -xplatform qws/linux-arm-g++ -embedded arm -depths 16 -pch -no-qt3support -no-sql-sqlite -no-libtiff -no-libmng -qt-libjpeg -qt-zlib -qt-libpng -qt-freetype -no-openssl -qt-mouse-tslib -no-mouse-pc -no-mouse-linuxtp

1.

./configure -prefix /mini2440 -release -shared -fast -xplatform qws/linux-arm-g++ -embedded arm -depths 16 -little-endian -host-little-endian -no-qt3support -no-sql-sqlite -no-libtiff -no-libmng -qt-libjpeg -qt-zlib -qt-libpng -no-webkit -no-javascript-jit -no-script -no-scripttools  -qt-freetype -no-openssl -qt-mouse-tslib -no-mouse-pc -no-mouse-linuxtp -I/home/tslib/include -L/home/tslib/lib

2.

修改src/3rdparty/freetype/include/freetype/config/ftconfig.h 中第330

原文"orr %0, %2, lsl #16\n\t" /* %0 |= %2 << 16 */

修改为"orr %0, %0, %2, lsl #16\n\t" /* %0 |= %2 << 16 */

3.

修改/mkspecs/qws/linux-arm-g++/qmake.conf

QMAKE_CC                = arm-linux-gcc 

QMAKE_CXX               = arm-linux-g++

QMAKE_LINK              = arm-linux-g++

QMAKE_LINK_SHLIB        = arm-linux-g++

修改为::

QMAKE_CC                = arm-linux-gcc  -lts

 

QMAKE_CXX               = arm-linux-g++  -lts

 

QMAKE_LINK              = arm-linux-g++  -lts

 

QMAKE_LINK_SHLIB        = arm-linux-g++  -lts

 

 

   有一些我很疑惑,我明明 '-qt-mouse-tslib' 参数,但我却不向别人那样 使用-I -L 指定头与库,配置也不报错...很郁闷...不过,不出问题,我不管它,继续.

   make -C src/

   make install

此时会在 /mini2440 目录中生成头文件与库,在开发板的 / 目录下也建立相同的mini2440目录,lib文件夹 考过去.

   编译测试程序,examples/qws/mousecalibration 目录下 运行make

我修改了Makefile 文件,修改了如下一行 -L/home/tslib/lib -lts ,在原有的 -lts 之前加上了使用此库的路径,表示使用我刚刚编译过的libts库来连接.

   之后把程序考入开发板的目录

为开发板增加环境变量
export QTDIR=/mini2440
export LD_LIBRARY_PATH=$QTDIR/lib:/home/tslib/lib:$LD_LIBRARY_PATH
export QWS_KEYBOARD='LIRC:/dev/lircd'
export QWS_MOUSE_PROTO=tslib:/dev/input/event0

   在开发板中运行 mousecalibration 进行QT的效准,OK 触摸屏正常使用

Qt界面字体大小设置

Qt中经常会涉及到界面字体大小的设置,默认字体一般比较小,特别是在移植到开发板上进行显示一般都要放大字体,因为开发板上显示屏幕分辨率都是非常的小,跟电脑显示有很大差别。 

  一种整体界面字体设置的方法: 

  在main函数中添加程序: 

  QFont font = app .font(); 

  font.setPointSize(16); 

  app.setFont(font); 

  在Qt/embedded中显示中文,可以采用如下运行方式: 

  ./wireless -qws -font unifont 

  改变QtQLineEdit中显示内容的大小: 

  QLineEdit *lineEdit = new QLineEdit() 

  lineEdit->setStyleSheet("font-size : 16px"); 

  也可以在主函数中添加语句: 

  qApp->setStyleSheet("QLineEdit { font: 16px; }); 

 

 

阅读(1046) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~