mini2440上移植QT

2020-06-30来源: eefocus关键字:mini2440  移植  QT

QT下载:http://download.qt-project.org/

qt-everywhere-opensource-src-4.8.4.tar.gz:http://download.qt-project.org/archive/qt/

tslib下载:https://github.com/libts/tslib/releases


编译安装QT-X11-4.5.3

QT-X11-4.5.3是运行于linux平台下用于仿真QT应用程序的软件,这样你便可以在linux平台下把你应用程序都调试好,然后再利用QT4.5.3把应用程序编译成ARM版本下载至开发板,这样你就可以在开发板上运行你的QT应用程序了。

下面是安装步骤:


1、先安装以下包(否则会报错 Basic XLib functionality test failed!):


sudo apt-get install libx11-dev libxext-dev libxtst-dev


2、把qt-x11-opensource-src-4.5.3.tar.gz 拷贝到指定目录下,然后执行以下命令:


#tar zxvf qt-x11-opensource-src-4.5.3.tar.gz  

#cd qt-x11-opensource-src-4.5.3  

#./configure  

#make      //一般用时2-3小时,如果你的机子配置不太低的情况下  

#make install 


一、编译安装tslib-1.0

参考这篇文章:tslib移植实践


二、QT库移植

准备:qt-everywhere-opensource-src-4.8.4.tar.gz

1、解压并进入qt-everywhere-opensource-src-4.8.4。


#tar  xzf  qt-everywhere-opensource-src-4.8.4.tar.gz

#cd  qt-everywhere-opensource-src-4.8.4


2、修改 QT目录下的mkspecs/qws/linux-arm-g++/qmake.conf,添加如下内容(让交叉编译工具链能找到tslib的库和头文件):


# tslib 

QMAKE_INCDIR =/usr/tslib4arm/include

QMAKE_LIBDIR =/usr/tslib4arm/lib

QMAKE_LFLAGS =-WI,-rpath,/usr/tslib4arm/lib


3、配置、编译和安装Qt,可以编写以下脚本并运行。Qt安装成功可在/opt/framework/qt/arm路径下看到bin、lib、include等目录。


#!/bin/sh

#mkdir -vp /opt/framework/qt/arm

#echo yes | ./configure -prefix /opt/framework/qt/arm 

#-opensource -enbedded arm 

#-xplatform qws/linux-arm-g++

#-no-webkit -qt-libtiff -qt-libmng

#-qt-mouse-tslib -qt-mouse-pc

#-no-mouse-linuxtp -no-neon

#-nomake examples 

#-nomake docs

#-nomake demos

#-nomake tools 


echo yes | ./configure -prefix /opt/framework/qt/arm -opensource -embedded arm -xplatform qws/linux-arm-g++  -no-webkit  -qt-libtiff -qt-libmng  -qt-mouse-tslib -qt-mouse-pc -no-mouse-linuxtp -no-neon -nomake examples  -nomake docs -nomake demos -nomake tools


echo "config finished!"


make && make install


4、在开发板根文件系统opt下创建/opt/framework/qt/arm目录,将/opt/framework/qt/arm目录下的lib目录复制到开发板根文件系统的该目录下。


cd  /nf  s/rootf 

mkdir   -p   opt/framework/qt/arm

cp /opt/framework/qt/arm/lib  ./ -dr


5、编写以下脚本,命名为setenvqt,此脚本用来为开发板设置Qt运行环境。

注意“等号左右边不能有空格,否则Linux会提示错误 bad variable name”


#!/bin/sh

export  QWS_DISPLAY=:1

export  QT_QWS_FONTDIR=/opt/framework/qt/arm/lib/fonts

export  QWS_MOUSE_PROTO="Tslib MouseMan:/dev/event0"

export  QWS_KEYBOARD=TTY:/dev/tty1

export  HOME=/root


echo "qt init finished!"


将脚本移到开发板根文件系统usr/sbin目录下,在etc/profile中加入


. setenv4qt


这样开发板开机就能加载setenv4qt中的环境变量了。


根文件系统编译镜像指令:mkyaffs2image-128M rootfs rootfs_qt.img


三、嵌入式Qt程序测试

创建一个Helloworld测试程序。


#include

#include

#include


int main(int argc, char* argv[])

{

  QApplication a(argc, argv);    // Qapplication表示一个应用程序,而它的成员函数exec()则用来执行程序以及消息处理

  QMainWindow w;                 //定义一个QmainWindow主窗口对象w


  QPushButton b(&w);             //通过&w,在主窗口上定义QpushButton按钮对象b

  b.setText("Yangfeiwu.Today is 20190927.");        //通过b对象的成员函数setText(),设置按钮名字为Hello QT


  w.show();                      //显示主窗口

  return a.exec();               //通过exec()执行程序以及消息处理

}


编译测试程序:


/opt/framework/qt/arm/bin/qmake  -project

/opt/framework/qt/arm/bin/qmake  -makefile

make


下载到开发板根目录,去开发板执行指令 /HelloQt -qws -fn SIMHEI。

如果报错libts-0.0找不到,则执行以下指令:


#find -name libts-0.0*

#ln -s /usr/tslib4arm/lib/libts-0.0.so.0  ./opt/framework/qt/arm/lib/libts-0.0.so.0


再次执行,就启动qt程序了。

在这里插入图片描述
在这里插入图片描述

未完待续


关键字:mini2440  移植  QT 编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/ic501615.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:ARM集成开发环境eclipse的安装(for Linux)
下一篇:ADS1.2使用jlink调试程序(调试芯片s3c2440 arm9)

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

mini2440裸机试炼之——Uart与pc端实现文件、字符传输
:rULCON0|=0x03;              //设置UART0数据发送8个数据位赵老师的一段话(关于中断的,作为笔记):最后还要强调几点关于非FIFO模式下UART中断的一些注意事项:1.对于s3c2440来说,接收数据是被动的,发送数据是主动的,因此一般来说,接收数据用中断方式,发送数据用查询方式较好;2. 在中断方式下,当接收到数据时,尽管可能该数据无用,但也一定要读取它,否则下次再接收数据时,不会再引起中断,因为接收数据缓存器被上次接收到的数据所霸占,只要没有读取它,它就永远在那里;3. 由于UART中断涉及到SUBSRCPND寄存器,因此在
发表于 2020-07-04
<font color='red'>mini2440</font>裸机试炼之——Uart与pc端实现文件、字符传输
mini2440裸机试炼之IIS——音乐播放器
; Port_Init();    MMU_Init(); //地址映射初始化    Beep(2000, 100);       music_player();}music_player.c/*********************************** 实现功能     music播放器  ***********************************/ #include "2440lib.h"#include "2440
发表于 2020-07-04
<font color='red'>mini2440</font>裸机试炼之IIS——音乐播放器
mini2440裸机试炼之——IIC控制EEPROM数据传输
,AT24C02A会再返回一个从设备地址信息或从设备内存地址信息作为应答,所以一定要把该字节读取后抛弃,因为它不是我们所要读取的信息;4、按照AT24C02A的时序,在发送从设备地址字节时,它的最低位是0表示写,1表示读。但对于s3c2440来说,不用人为设置这一位,即是0是1都无所谓,因为这一位是由s3c2440根据是主设备发送模式还是主设备接收模式来自动设置。(所以都默认使用0xa0);EEPROM介绍AT24CXX系列是带有iic总线接口的EEPROM,其中主要包括AT24C01/02/08/16等,其容量(bits x页)分别为128 x 8/256x 8/1024 x 8/2048 x 8/;对于AT24C02A的三位地址线都是
发表于 2020-07-04
<font color='red'>mini2440</font>裸机试炼之——IIC控制EEPROM数据传输
mini2440裸机试炼之——看门狗中断和复位操作
结果:AXD调试执行到看门狗计数器rWTCNT为零时,进入复位,CPU停止工作,也就不产生中断。复位关闭axd后,u-boot串口初始化提示(没能及时在第一次蜂鸣器响按下按键停止autoboot):复位关闭axd后,u-boot串口初始化提示(及时在第一次蜂鸣器响按下按键停止autoboot):这里就是复位到用uboot初始化开发板的时候,可是不明确为什么必需要在第一次蜂鸣器就按下按键才干进到uboot附:硬件环境:J-link v8、mini2440、J-link转接板、串口转USB线软件环境:windows7(32位)、开发板uboot(NandFlash)、J-link驱动(J-Link ARM V4.10i)、SecureCRT
发表于 2020-07-04
<font color='red'>mini2440</font>裸机试炼之——看门狗中断和复位操作
arm-linux-gcc 裸机程序开发(一)
以前开发arm裸机程序都是在ADS1.2开发环境下编译和调试的。刚开始时初学嵌入式好多东西不懂,选择这个开发环境的理由,一是资料多的,mini2440开发板上提供了很多例程可以参考,网上几乎所有arm裸机程序都是基于ADS1.2开发的。二是开发环境友善,虽然后来感觉ADS1.2有点难用,但毕竟是IDE的环境,对初学者来说总比命令行的方式更加直观与方便。随着学习的深入,感觉它就像傻瓜相机一样,虽然好用但屏蔽了很多内容,影响了我们深入理解代码编译以及链接的细节。而且ADS对于程序的开发没有GNU工具链灵活。这段时间因为需要,又要编写一些arm裸机程序。自己已经用Linux习惯了,不想再切回windows下工作了。所以,最近对linux
发表于 2020-07-04
mini2440开发板建立Keil MDK/Jlink开发调试环境
新建Keil工程,device选择三星的s3c2440。询问”是否将启动代码拷贝到工程目录”,选择是。在工程配置的Target标签页中做如下配置:确定后编写主函数并编译工程。假如没有错误,打开工程目录下的”工程名.sct”文件,就会发现ROM1的0×30000000就是程序的入口地址,对应启动代码中的”RESET”。安装Jlink驱动后,在Keil的debug标签中选择”J-link/J-Trace”作为调试工具。在Initialization File文本框中选择调试的初始化文件。打开初始化文件,将文件最后的”LOAD .XXX.axf”,中的XXX替换为自己工程目录下的axf文件名。在Utilities标签页中,选择J
发表于 2020-07-02
小广播
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2020 EEWORLD.com.cn, Inc. All rights reserved