0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

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

3天内不再提示

在Linux开发板上跑一个qt程序的基本步骤

大鱼机器人 来源:果果小师弟 作者:智果君 2022-10-24 11:44 次阅读

01

前言

Linux不难,难的是没有找对教程,没有人快速的带你。开发板买了之后就放在那里吃灰,看视频也看不下去,看文档又看不懂,太难了!

本文以通俗易懂的方式讲一下在正点原子Linux开发板上跑一个qt程序的基本步骤,争取让初学者能够在半天的时间跑通第一个程序。


硬件:正点原子 Linux mini开发板 软件:win10,vmware,ubuntu,qtcreator 运行效果如下图所示,就是在正点原子默认的UI界面基础上,运行了一个serialport例程。

c05008d2-51dd-11ed-a3b6-dac502259ad0.png

先说一下初学Linux嵌入式开发的感受,学习STM32时 ,熟悉了Keil或IAR这个集成开发环境,也可以用简单的寄存器来控制某一个引脚。

手做Linux开发之后,首先被几十个G的安装镜像吓住了,感觉Linux编译起来特别复杂很难。还有就是密密麻麻的动辄上百个字符的命令,对于习惯图形化开发的我们来说,实在是感到太难了。

还有卖家那动不动就几十个小时的视频,视频还分好几期:驱动开发、应用开发、Qt开发等。

每个视频都又长又硬,我本开买个板子是想玩一下,结果要看这么多视频,瞬间就不想学了,结果从入门到放弃,板子放那里吃灰。

本文的目的就是让大家抛开视频,把这个十几小时的视频浓缩成一篇文章,让你快速体验嵌入式Linux的开发乐趣!当然我建议官方也出一个快速把玩教程,让开发者快速体验乐趣,这样我想效果会更好!

02

下载资料

首先去正点原子论坛下载资料,注意不要下载视频,视频你可以在B站随时随地看,没人会这么无聊把视频下载下来吧!

c42ff548-51dd-11ed-a3b6-dac502259ad0.png

资料大多是百度网盘,如果不开会员的话会很慢,建议下载资料时买个临时的会员下载,资料下载完了进行下一步。

二、安装虚拟机

安装虚拟机基本在正点原子的大多数PDF教程里面都有,这里就不需要在多说了。如果看文章不清楚,也可以去B站看视频。 c4ce2f92-51dd-11ed-a3b6-dac502259ad0.png

建议初学者仔细的看一遍,如果装错了,没事大不了删了在再装一次。 在安装ubuntu这个步骤中,强烈建议直接下载正点原子已经打包好qtcreator的镜像,将这个镜像安装完毕后,就不用再一步步配置了。

对于需要快速跑通第一个linux程序的同学来说,可以避免学的越细越糊涂的陷阱。跳过这些繁琐的步骤,可以让我们快速站在全局高度理解整个开发过程。

这是啥意思呢?就是你新安装的ubuntu不是啥环境啥软件都没有嘛,你需要自己安装一遍,比较麻烦。

但是你可以用别人的正点原子的他们电脑里面的那个ubuntu系统,他把这个系统打包好了给你,你只需要把他的打包好的系统安装你的虚拟机就可以了,怎么样? 是不是很神奇,你还可以在你的电脑安装别人的电脑系统。这个系统在哪里呢?

c501e3c8-51dd-11ed-a3b6-dac502259ad0.png

下载下来是这样

c5376b60-51dd-11ed-a3b6-dac502259ad0.png

然后按照这里的说明就可以安装正点原子给你打包好的系统了。

c562f26c-51dd-11ed-a3b6-dac502259ad0.png

文件名:【正点原子】I.MX6U 虚拟机使用参考手册V1.3.pdf

03

配置网络环境

你安装完ubuntu后很可能不能上网,这个问题每个人遇到的都不一样,建议按照正点原子的教程把你的windows、ubuntu、开发板让他们网络连接都正常。

可以参考:【正点原子】I.MX6U网络环境TFTP&NFS搭建手册V1.3.1.pdf

c65472e0-51dd-11ed-a3b6-dac502259ad0.png

如果文档看不明白也有视频,对照着视频一步一步也可以。

c6777178-51dd-11ed-a3b6-dac502259ad0.png

所以网络这一块你也不需要担心了。

04

安装qtcreator

同样安装qtcreator软件可以参考:【正点原子】I.MX6U嵌入式Qt开发指南V1.1.pdf

c6b4c456-51dd-11ed-a3b6-dac502259ad0.png

在ubuntu安装完qtcreator软件后,你就可以像windows下编写程序,然后在ubuntu下面运行了。但是我们的目的是让qt软件运行在我们的arm开发板下面对吧!

这时我们自然想到在ubuntu下面安装一个编译工具把程序编译成可以在arm开发板运行的代码吧!这个就叫做“交叉编译链”

交叉编译器中“交叉”的意思就是在一个架构上编译另外一个架构的代码,相当于两种架构“交叉”起来了,我们的电脑是x86架构,开发板是ARM架构。

05

安装qt交叉编译器

可以参考:【正点原子】I.MX6U 出厂系统Qt交叉编译环境搭建V1.6.pdf

第一章的内容,安装交叉编译器。

你只有安装了这个,你才能在ubuntu中编译出可以在ARM开发板上运行的代码,这一步必须做,而且还要按照她的教程一步一步来。

c70cd196-51dd-11ed-a3b6-dac502259ad0.png


5.1 编译器拷贝

把开发板光盘 A-基础资料->5、开发工具->1、交叉编译器->fsl-imx-x11-glibc-x86_64-meta- toolchain-qt5-cortexa7hf-neon-toolchain-4.1.15-2.1.0.sh 拷贝到 Ubuntu 虚拟机。

拷贝软件可以用MobaXterm软件,这个软件的使用可以参考这篇文章:2022第一篇文,全能终端神器MobaXterm

c81f089c-51dd-11ed-a3b6-dac502259ad0.png

如下图本文已经把交叉编译工具拷贝到了Ubuntu虚拟机。

c86cacc8-51dd-11ed-a3b6-dac502259ad0.png

执行下面的指令修改脚本的权限,修改权限后可以看到此脚本颜色显示改变,说明修改成功。


chmodu+xfsl-imx-x11-glibc-x86_64-meta-toolchain-qt5-cortexa7hf-neon-toolchain-4.1.15-2.1.0.sh 直接执行脚本安装交叉编译工具,连续敲下两次回车键确认,再输入用户密码即可。本次安装的目录为脚本所指定的默认安装的目录,后面的内核编译环境的交叉编译都是按这个安装目录去操作。

c8856920-51dd-11ed-a3b6-dac502259ad0.png

5.2 配置环境变量

我们知道,在linux下,如果运行一个可执行文件,需要在对应目录下右键打开终端,然后./指令运行它,那么我们在其他文件夹下运行一个指定的程序呢? 当然可以,就是用到“环境变量”。没错,在Linux下也需要环境变量!其作用跟windows下一模一样。就是相当于省略了一个非常长的目录。没有环境变量之前,我们需要输入的指令是:


/aaa/bbb/ccc/ddd/eee/fff/hhh/xxx.sh 有了环境变量之后,我们输入的指令是,这就是区别。环境变量让系统知道,无论你在任何位置调用xxx.sh指令,都是调用的特定的文件夹下的某个程序。

xxx.sh 环境变量的设置方法是source /opt......我们在工程目录下右键打开终端,然后运行环境变量。

source/opt/fsl-imx-x11/4.1.15-2.1.0/environment-setup-cortexa7hf-neon-poky-linux-gnueabi

c8b3093e-51dd-11ed-a3b6-dac502259ad0.png

接下来使用env指令查看环境变量,出现这些字样的配置选项之后,就可以了。它表示我们已经将刚安装的“交叉编译工具链”设置到环境变量了。

c8c51fa2-51dd-11ed-a3b6-dac502259ad0.png

使用arm-poky-linux-gnueabi-gcc -v指令可以查看 gcc 版本,表明环境变量已经生效。

c8e93d88-51dd-11ed-a3b6-dac502259ad0.png

OK,至此你的qt交叉编译器就安装好了。

5.3 安装交叉编译环境

上面你只是在ubuntu下你装了交叉编译器器,想编译 Qt 应用程序在开发板上运行起来,那么还需要搭建交叉编译环境,使用 ARM平台的交叉编译器编译的程序才能在I.MX6U 开发板上运行起来。

主要就是在 配置 Qt Creator中配置Kits,Kit 译作套件,也就是开发编译环境套件,可以搭建不同平台的套件,以不同的套件编译出不同平台的应用程序,也验证了 Qt 跨平台的特性!如果你安装了Android的套件,你还可以在你的手机上运行qt程序。

这里我们需要在脚本里写入设置使能环境变量的指令,首先打开此脚本。


sudovi/opt/Qt5.12.9/Tools/QtCreator/bin/qtcreator.sh 在qtcreator.sh里的第一行插入如下指令,如下图所示。

source/opt/fsl-imx-x11/4.1.15-2.1.0/environment-setup-cortexa7hf-neon-poky-linux-gnueabi

c9088abc-51dd-11ed-a3b6-dac502259ad0.png

保存脚本文件(ESC : wq)。使用如下指令打开Qt Creator。“&”的作用是后台运行

/opt/Qt5.12.9/Tools/QtCreator/bin/qtcreator.sh&

c918ddcc-51dd-11ed-a3b6-dac502259ad0.png

5.4 安装kits

在你安装qtcreater软件后默认只有这一个kits,然后按照教程搭建另外两个kits,其中ATK-I.MX6U是用来大imx6ull ARM平台运行的套件。IMX6U-rsync是用来网络调试下载程序到开发板的套件,就是你在qtcreater上面编译好后,点击运行,就会直接在开发板上面显示你的程序效果。

c940481c-51dd-11ed-a3b6-dac502259ad0.png

在 Qt Creator 中默认情况下,会使用 sftp 或 rsync 发送程序到板卡。由于正点原子 I.MX6U 出厂 Qt 文件系统(文件系统 V1.9 及之后的)里有 rsync 指令,因此可以很方便地使用此方式进行 Qt 远程调试。首先我们要确认下当前出厂文件系统版本号,在出厂系统执行以下指令。


cat/etc/version

c95fcf84-51dd-11ed-a3b6-dac502259ad0.png

如果文件系统不是 V1.9 的,或者不支持 rsync 指令,请去网盘下载最新的出厂系统,使用最新的系统来进行。

设置开发板静态 ip 由于LAN8720PHY 网络芯片没有MAC地址,系统启动时会生成随机MAC地址给网络使用。每次都生成一个MAC地址,导致每次开机网络获取的ip不是固定的。(v2.3 版本文件系统已固定一个随机MAC地址,不会因每次开机改变,请更新到最新文件系统)所以我们要设置给它一个静态的ip,不因MAC地址的改变而改变,设置固定ip方法调试。

开发板启动时会自动获取ip,最简单的方法是直接设置一个ip给它。这样我们就在出厂文件系统里/etc/rc.local 文件里如图位置添加以下文件。

vi/etc/rc.local 添加以下内容,请根据个人使用的路由器,设置相应网段的ip地址。下图为设置 eth0 的静态ip地址。请注意这个 ip 与其他设备的ip冲突!

PATH=/sbin:/bin:/usr/sbin:/usr/bin ifconfigeth0192.168.1.115netmask255.255.255.0 routeadddefaultgw192.168.1.1 echo"nameserver114.114.114.114">/etc/resolv.conf

c99ce82e-51dd-11ed-a3b6-dac502259ad0.png

这样之后没每次开发板连接网线上电后,开发板的IP地址就为192.168.1.115。 加下来参考 【正点原子】I.MX6U 出厂系统Qt交叉编译环境搭建V1.6.pdf 2.5.1小节,完成rsync方式Qt远程调试kits安装。

c9d3b2d2-51dd-11ed-a3b6-dac502259ad0.png

06

实战开搞

我们打开正点原子自带的例程,这里以Qt/03/03_serialport为例。双击03_serialport.pro。

c9ef3778-51dd-11ed-a3b6-dac502259ad0.png

打开后选择IMX6U-rsync套件

ca060cbe-51dd-11ed-a3b6-dac502259ad0.png

打开后软件会自动编译,一般是没有错误的,直接点击左下角的绿色三角号编译运行。

ca2a0cb8-51dd-11ed-a3b6-dac502259ad0.png

然后你就可以在开发板上面看到神奇的一幕,你的上位机跑到开发板上面了,之后你连接开发板上面的串口就可以愉快的玩耍了。

:因为开发板有正点原子的开机qt桌面,你可以禁止它不让他显示,参考如下:

cb08b7ce-51dd-11ed-a3b6-dac502259ad0.png

最终效果:

cb8cdedc-51dd-11ed-a3b6-dac502259ad0.jpg





审核编辑:刘清

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

    关注

    18

    文章

    979

    浏览量

    46958
  • Linux开发板
    +关注

    关注

    0

    文章

    22

    浏览量

    11353
  • qt程序
    +关注

    关注

    0

    文章

    3

    浏览量

    1677

原文标题:我在Linux开发板上跑的第一个Qt程序

文章出处:【微信号:All_best_xiaolong,微信公众号:大鱼机器人】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    如何在嵌入式Linux开发板上配置Qt运行环境

    本文基于I.MX6ULL芯片的Linux开发板,介绍如何在嵌入式Linux开发板上配置Qt运行环境,并运行
    发表于 10-10 09:56 2239次阅读

    Linux系统中搭建Qt Creator开发环境

    Linux开发板中配置Qt运行环境一文中介绍了如何将Qt移植到Linux开发板上,接下来就需要编
    发表于 11-29 14:06 1779次阅读

    PCQT怎样控制开发板的LED

    请问如何用电脑QT界面控制S3C2440的驱动程序,使得LED灯亮?我PC机上用QT编写
    发表于 09-02 10:32

    4412开发板烧写Linux-QT问题

    请教下:我买的开发板Linux+qt系统烧写和加载系统都没问题。前两天买的两块新的核心qt
    发表于 12-11 16:12

    Linux Qt 及Arm开发板汉字显示

    搜就有,不过这只是平台,其他的也样关于显示汉字,我们可以把这个问题分成两小问题:1
    发表于 11-24 16:49

    【IMX6UL开发板试用体验】-3-Qt开发环境搭建()

    程序都可以正常跑了,但是环境变量却没有设置呢。还让我们再设置遍。6、第一个C程序本来以为写个简单的C程序会很顺利的
    发表于 03-05 20:51

    Linux QT5程序编译准备源码

    -lGLESv2 -lEGL -lpthread MY-IMX6-A9 设备运行把编译得到的 AboutUs 复制到开发板
    发表于 03-08 11:27

    如何快速上手开发板,并且HarmonyOS简单程序

    如何快速上手开发板,并且HarmonyOS简单
    发表于 09-10 14:36

    如何用QT开发软件放在板子

    您好,我现在想用QT开发软件放在板子,但是
    发表于 01-04 07:28

    【创龙科技TL570x-EVM开发板试用体验】TL570x-EVM 的QT软件开发

    程序,同样把他们复制到开发主机环境中,用上面的方法对他们进行交叉编译,并在TL5708开发板都成功的运行起来。编译过程不再赘述。其中Textures是
    发表于 06-13 17:13

    Arm linux开发环境下运行主机中编译好的QT程序

    的,这个时候我们可以考虑不在开发板搭建Qtopia环境,只将Qte移植过去即可,只要版本OK,QT程序即可在开发板的终端界面直接运行!完成
    发表于 06-27 15:47

    如何将Qt程序移植到Arm开发板

    各位大侠,我现在在Linux Red Hat 9.0下用Qt编写了简单的程序,如何将该程序
    发表于 07-13 11:51

    文详解RK3308开发板Qt开发的流程

    应用程序,而无需下载编译 SDK 代码。SDK中编译QT工具链准备工作:Ubuntu系统RK3308 Linux SDKQt Creator开发
    发表于 08-16 16:58

    RK3568移植QT程序新的yocto文件系统

    硬件平台为飞凌嵌入式rk3568开发板,打算要移植qt程序新的yocto文件系统,可参
    发表于 08-30 17:21

    【米尔-全志T113-S3开发板- 极致双核A7国产处理器-试用体验】从零开始开发板QT程序

    : source /etc/file 之后如果顺利,你就能把你ubutunqt程序传到开发板进行通了。 但是第
    发表于 09-07 21:48