嵌入式软件工程师&&太极拳
全部博文(548)
分类: 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
改变Qt中QLineEdit中显示内容的大小:
QLineEdit *lineEdit = new QLineEdit();
lineEdit->setStyleSheet("font-size : 16px");
也可以在主函数中添加语句:
qApp->setStyleSheet("QLineEdit { font: 16px; });