英创嵌入式主板Qt Embedded应用简介

 2014-3-4          [nemail]    
[lablebox]

一、简述

 

        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。

[lablebox]