完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>

|
` 本帖最后由 zxl_zxl 于 2016-6-26 16:29 编辑 【创龙AM4379 Cortex-A9试用体验】之移植QT5.4.1与tslib1.4到TL-4379开发板 在我的TL4379开发板的第三篇试用报告中介绍了开发环境的搭建,之所以要自己动手搭建这个开发环境的一个很重要原因是,我无法成功安装ti SDK,也就无法使用TI SDK里面提供的arm-linux-gnueabihf-gcc交叉编译工具,以及无法使用TI SDK移植好的QT.5.4.1,无法使用qmake交叉编译能够在TL-4379开发板上运行的QT应用程序,当然很郁闷。 这一篇试用报告就是要解决在无法成功安装TI SDK开发工具的情况下,如何开发能够在TL-4379开发板上运行的QT应用程序。我们自己来移植、交叉编译QT.5.4.1。 之所以选择交叉编译QT5.4.1,是因为当前TL4379的出厂固件中运行的就是基于QT5.4.1,为了验证我们移植的QT的正确性,我们也选择编译QT5.4.1,在Ubuntu虚拟机上交叉编译基于我们自己移植的QT5.4.1的QT应用程序,而无需在开发板上设置移植后的QT的系统环境变量。 由于我们使用的人机接口是电阻式触摸屏,我们移植的QT5.4.1还需要对触摸屏顶层API支持,即对tslib的支持,所以对QT5.4.1的移植分为两部分:tslib的移植和QT5.4.1的移植。 1.交叉编译tslib1.4 当前,对触摸屏信号的获取、校正、滤波处理,均采用开源的tslib,我们采用tslib1.4.首先到网上下载tslib1.4的源码包(或从我提供的附件中下载)。 通过samba将tslib1.4源码包拷贝到Ubuntu虚拟机,执行如下命令: tar -zxvf tslib-1.4.tar.gz 执行结果如下图所示:
执行命令: cd tslib 安装交叉编译tslib必须的一些工具 sudo apt-get install autoconf sudo apt-get install automake sudo apt-get install libtool 生产configure文件 ./autogen.sh 配置tslib,生产Makefile文件 ./configure --prefix=/usr/local/tslib --host=arm-linux-gnueabihfac_cv_func_malloc_0_nonnull=yes 其中--prefix代表编译后安装文件目录,--host代表我们上一篇安装的交叉编译工具链。 执行编译tslib命令: make 交叉编译完成后,执行安装命令: sudo make install 必须使用sudo执行这条命令,执行结束后,我们查看一下是否安装成功,执行命令: ls /usr/local/tslib 结果如下:
出现bin,etc,include,lib这4个目录,说明交叉编译并安装tslib成功。 2.交叉编译QT5.4.1 2.1下载QT5.4.1源码 到QT官网上下QT5.4.1源码,下载地址如下: http://download.qt.io/archive/qt/5.4/5.4.1/single/ 下载如图所示的那一项:
2.2解压并配置源码 将下载的qt-everywhere-opensource-src-5.4.1.tar.gz文件拷贝到Ubuntu虚拟机,执行如下命令解压: tar -zxvf qt-everywhere-opensource-src-5.4.1.tar.gz 解压后如图所示:
cd qt-everywhere-opensource-src-5.4.1 修改交叉编译架构用到的信息: ged itqtbase/mkspecs/linux-arm-gnueabi-g++/qmake.conf 修改如下图所示:
创建一个脚本文件,用于生成Makefile,执行命令 ged itqt.configure.sh 输入如图所示内容并保存:
其中-prefix /usr/local/qt_5.4.1_arm_tslib代表我们编译完QT5.4.1后要安装地址;-tslib代表QT对触摸板的支持,-I 和 -L后面分别为为第一步编译tslib的include和lib的安装目录。 执行命令: chmod 777 qt.configure.sh ./qt.configure.sh 上述命令自动生成Makefile文件。 执行命令启动编译: make 编译大概2个小时。 编译结束后,执行安装命令: sudo make install 我们切换到目标目录下看看是否安装成功: cd /usr/local/qt_5.4.1_arm_tslib ls 如图所示:
3设置QT的交叉编译环境 我们安装Qtcreator,来配置交叉编译QT程序的开发环境。首先根据创龙公司提供的qtcreator安装包,将Qtcreator安装到Ubuntu虚拟机,我将将qtcreator安装到了/media/tl437x目录下,如图所示:
执行命令: cd qtcreator-2.6.1/bin ./qtcreator 进入qtcreator开发环境,如图所示:
在菜单中选择Tools——Options,在弹出的对话框中,选择Build & Run,选择标签Compilers,按下图设置:
选择C++交叉编译器,路径选择我们上一篇试用报告中设置的路径,如下图所示:
切换到Qt Versions标签,点击“Add”按钮,选择qmake,如图所示:
选择完成,按“OK”按钮,设置如图所示:
切换到Kits标签,点击“Add”按钮,然后设置如下图所示:
按照上述步骤设置完后,点击“OK”按钮,完成对QT交叉编译环境的设置。 4交叉编译一个能够在TL4379开发板上运行的QT应用程序 4.1创建工程 我们在Qtcreator的集成开发环境中,创建一个简单的工程,步骤如下: 1)在file菜单项选中新建project,如图所示:
选择Qt Gui Application,点击choose,如下图所示:
设置项目名称和项目的保存路径,点击Next,如下图所示:
选择我们上一节设置的QT Kits,点击Next,如下图所示:
选择QWidget选项,点击Next,在对话框中选择Finish按钮,完成工程向导。 4.2 设置界面与命令 再上一节的创建工程的基础上,我们设置一个简单的界面,如图所示:
设置按钮的的命令处理函数,右击按钮,在弹出的选项中选择clicked信号,如图所示:
在程序中输入如下代码:
编译得到可执行程序。 5. 在TL4379开发板上配置tslib并测试QT程序 启动开发板,执行如下命令,设置tslib相关的系统环境变量: 1)将交叉编译好的tslib拷贝到NFS共享目录 cp -R /usr/local/tslib /nfsshare 2)挂载NFS mount -t nfs 192.168.1.136:/nfsshare /mnt-o nolock 3)将NFS中的tslib文件拷贝到开发板 cd /mnt cp -R tslib /usr/local 4)设置环境变量 vi /etc/profile 在该文件末尾输入下图所示的内容:
保存退出,执行命令: source /etc/profile 5)将Ubuntu虚拟机中的/home/tl/myqtproject中的helloworld_tslib6程序拷贝到NFS共享目录,并在开发板上执行如下命令: cd /mnt ./helloworld_tslib3 -plugintslib:/dev/input/touchscreen0 命令行显示的结果如图所示:
TL4379显示如图所示: 按下“Push Me”按钮,弹出提示对话框,如图所示:
出现如上图所示的效果,说明我们以上步骤移植QT5.4.1是成功的。 6. 小结 这是我第一次对QT移植的尝试,中间在触摸tslib的配置与命令启动过程中,反复测试无法成功,后来添加了-plugin tslib:/dev/input/touchscreen0后才是触摸屏对于我移植的QT界面元素有了反应,总之对于刚刚开始学习ARM的入门级菜鸟,对QT的移植成功还是给了很大的鼓励。由于目前我还不想把创龙自带的QT Demo覆盖掉,所以没有写关于QT在开发板上配置一节,这个可以参考其他资料。虽然移植成功了,但是只是初步的成功,还有一些其他的细节需要处理,以后慢慢完善。 `
tslib-1.4.tar.gz
(58.92 KB, 下载次数: 17
)
评分
|
||
相关推荐
10 个讨论
|
||
|
linux还没有一套比较友好的开发环境。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
你正在撰写讨论
如果你是对讨论或其他讨论精选点评或询问,请使用“评论”功能。
基于米尔MYC-LR3576开发板的实时视频识别系统设计与实现
304 浏览 0 评论
飞凌嵌入式ElfBoard-文件I/O的深入学习之阻塞I/O与非阻塞I/O
466 浏览 0 评论
大神们,想知道你们都用什么ide编程调试器? Arduino IDE?还是 e2studio ?还有其他吗?哪个好用呢
580 浏览 0 评论
865 浏览 0 评论
837 浏览 0 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-3 13:16 , Processed in 1.250094 second(s), Total 93, Slave 72 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
4417