英创信息技术嵌入式主板Qt Embedded应用简介

描述

一、简述

Qt Embedded是图形化界面开发工具Qt的嵌入式版本,它通过Qt API与Linux I/O以及Framebuffer直接交互,拥有较高的运行效率,而且整体采用面向对象编程,拥有良好的编程模式。

英创嵌入式板卡EM9280 / EM9287 / EM335x在定制的Linux内核中完全实现了对于多种分辨率彩色显示和电阻式触摸屏的驱动支持,Qt 内核则是基于Linux内核驱动之上运行。

嵌入式主板

本文着重介绍如何在EM9280 / EM9287 / EM335x上搭建支持Qt应用环境,即围绕板卡的根文件系统rootfs所进行的配置。

二、Qt-4.8.5移植

图形交互式操作一般会用到触摸屏,所以首先需要移植触摸屏 tslib,有关tslib移植在文档“EM9280 Linux触摸屏应用开发简介”中有详细介绍。

1、下载Qt版本为4.8.5软件:

地址:http://qt-project.org/downloads    qt-everywhere-opensource-src-4.8.5.tar.gz

2、解压 qt-everywhere-opensource-src-4.8.5.tar.gz

3、编译: 
       #>./configure -embedded arm-gnueabi -little-endian -prefix /home/hl/qt -qvfb -qt-mouse-tslib -I/home/hl/ts/include -L/home/hl/ts/lib 
       #>make 
       #>make install

编译成功后,即在/home/hl/qt 目录下安装了相关的库文件。移植后的Qt 库文件包括有libQtCore、libQtGui、libQtNetwork、libQtSql等,能够满足大多数嵌入式应用开发的需求。

三、根文件系统的配置

整理根文件系统rootfs,将移植好的qt 4.8.5相关库文件即:qt目录下的 /lib /plugins复制到根文件系统下/opt/qt-4.8目录。

修改根文件系统/etc/profile文件,需要在文件中设置tslib 以及qt的相关路径、环境变量等。

环境变量中增加: 
       export set QTDIR=/opt/qt-4.8 
       export set QPEDIR=/opt/qt-4.8 
       export set QWS_DISPLAY='LinuxFB:/dev/fb0' 
       export set QWS_DISPLAY='LinuxFB:mmWidth130:mmHeight100:0' 
       export set QWS_KEYBOARD='TTY:/dev/tty1' 
       export set TSLIB_TSDEVICE=/dev/input/event0 
       export set TSLIB_CALIBFILE=/etc/pointercal 
       export set TSLIB_CONFFILE=/etc/ts.conf 
       export set TSLIB_PLUGINDIR=/lib/ts 
       export set QWS_MOUSE_PROTO='TSLIB:/dev/input/event0' 
       export set QT_PLUGIN_PATH=$QTDIR/plugins/ 
       export set QT_QWS_FONTDIR=$QTDIR/lib/fonts/ 
       export set PATH=$QPEDIR/bin:$PATH 
       export set LD_LIBRARY_PATH=$QTDIR/lib:$QPEDIR/plugins/imageformats:$LD_LIBRARY_PATH

这些配置加上后,在控制终端可以正常启动Qt应用程序: 
       #>basicdrawing -qws 
       注:basicdrawing是个Qt应用测试程序,放在/opt/qt-4.8/bin目录下。

四、Qt应用程序的自动运行

英创系列Linux嵌入式板卡自动运行程序一般是通过user.sh或userinfo.txt来指定应用程序,userinfo.txt配置的方法“产品使用必读”上有详细的介绍,user.sh脚本方式自动启动的介绍可参考文章:Linux脚本启动应用程序方法简介。

对于Qt应用程序的自动运行只能采用user.sh脚本方式进行,这是由于根文件系统etc/profile中设置的环境变量对于控制台有效,对于启动的应用程序不一定有效,所以在用user.sh脚本启动程序时,需要重新设置环境变量,修改user.sh: 
       #!/bin/sh 
       export set QTDIR=/opt/qt-4.8 
       export set QPEDIR=/opt/qt-4.8 
       export set QWS_DISPLAY='LinuxFB:/dev/fb0' 
       export set QWS_DISPLAY='LinuxFB:mmWidth130:mmHeight100:0' 
       export set QWS_KEYBOARD='TTY:/dev/tty1' 
       export set TSLIB_TSDEVICE=/dev/input/event0 
       export set TSLIB_CALIBFILE=/etc/pointercal 
       export set TSLIB_CONFFILE=/etc/ts.conf 
       export set TSLIB_PLUGINDIR=/lib/ts 
       export set QWS_MOUSE_PROTO='TSLIB:/dev/input/event0' 
        
       export set QT_PLUGIN_PATH=$QTDIR/plugins/ 
       export set QT_QWS_FONTDIR=$QTDIR/lib/fonts/ 
       export set PATH=$QPEDIR/bin:$PATH 
       export set LD_LIBRARY_PATH=$QTDIR/lib:$QPEDIR/plugins/imageformats:$LD_LIBRARY_PATH 
       basicdrawing -qws

将修改后的user.sh复制到/mnt/nandflash目录下,则可成功自动启动Qt应用程序basicdrawing。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分