锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

我在Linux开发板上跑的第一个Qt程序

时间:2023-09-26 20:37:02 hf角插接连接器

摘要:学Linux不难,难的是没有找到合适的教程,没有人能很快带你。买了开发板后,我把它放在那里吃灰。我看不下视频,也看不懂文档。太难了!本文以一种通俗易懂的方式谈论正点原子Linux在开发板上跑一个qt程序的基本步骤是让初学者在半天内跑完第一个程序。

硬件:正点原子 Linux mini开发板 软件:win10,vmware,ubuntu,qtcreator 

如下图所示,运行效果为正点原子默认UI在界面的基础上,一个接一个地运行serialport例程。


先说初学Linux学习嵌入式开发的感觉STM32时 ,熟悉了Keil或IAR这种集成开发环境,也可以用简单的寄存器控制引脚。上手做Linux开发后,我首先被几十个G的安装镜像吓坏了。Linux特别复杂,很难编译。还有一个密密麻麻的命令,对我们这些习惯于图形化发展的人来说,实在太难了。还有卖家几十个小时的视频,分为几期:驱动开发、应用开发、Qt开发等。

每个视频都又长又硬。我想买一个板子来玩。结果,我想看这么多视频,但我不想马上学习。结果,从入门到放弃,板子被放在那里吃灰。本文的目的是让大家抛开视频,把这个十几个小时的视频浓缩成一篇文章,让大家快速体验嵌入式Linux开发乐趣!当然,我建议官方也要出一个快速玩耍的教程,让开发者快速体验乐趣,这样我觉得效果会更好!

一、下载信息

首先,去正点原子论坛下载信息。注意不要下载视频。你可以在哔哩哔哩随时随地看视频。没人会这么无聊地下载视频。

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

二、安装虚拟机

虚拟机的安装基本上是正点原子PDF教程里有,这里就不用多说了。如果看不清楚文章,也可以去哔哩哔哩看视频。

建议初学者仔细看一遍。如果装错了,删了再装也没什么大不了的。

在安装ubuntu这一步,强烈建议直接下载正点原子qtcreator的镜像,安装完这个镜像后,就不用一步一步配置了。第一个需要快速运行的人linux对于程序专业的学生来说,他们可以避免学习越详细、越困惑的陷阱。跳过这些繁琐的步骤,我们可以快速理解整个开发过程。

这是什么意思?是你新安装的ubuntu没有任何环境或软件。你需要自己安装,这很麻烦。但是你可以在他们的电脑里使用别人的正点原子ubuntu系统,他把这个系统打包给你,你只需要把他打包的系统安装在你的虚拟机上,怎么样?你还可以在你的电脑上安装别人的电脑系统吗?这个系统在哪里?

下载就是这样

然后按照这里的说明,可以安装正点原子为您打包的系统。

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

配置网络环境

你安装完ubutn以后很可能上不了网。每个人都会遇到不同的问题。建议按照正原子教程把你放在一边windows、ubuntu、开发板使其网络连接正常。可参考:正点原子I.MX6U网络环境TFTP&NFS搭建手册V1.3.1.pdf

假如文档看不懂也有视频,对照视频一步一步也可以。

所以你不用担心网络。

四、安装qtcreator

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

在ubuntu安装完qtcreator软件之后,你就可以像了windows然后在下面写程序ubuntu下面是操作。但我们的目的是让qt我们的软件运行arm面对开发板!这时,我们自然会想到ubuntu下面安装一个编译工具把程序编译成可以在arm开发板运行代码!这叫交叉编译链。交叉编译器中的交叉意味着在一个架构上编译另一个架构的代码,相当于两个架构的交叉。

五、安装qt交叉编译器

可以参考:正点原子I.MX6U 出厂系统Qt构建交叉编译环境V1.6.pdf第一章的内容是安装交叉编译器。只有安装了这个,你才能在那里ubuntu可以在中编译arm开发板上运行的代码。这一步必须做。而且还要按照她的教程一步一步来。

5.1 编译器拷贝

开发板光盘 A-基础资料->5、开发工具->交叉编译器->fsl-imx-x11-glibc-x86_64-meta- toolchain-qt5-cortexa7hf-neon-toolchain-4.1.15-2.1.0.sh

拷贝到 Ubuntu 虚拟机。

可使用复制软件MobaXterm本软件的使用可参考本文:2022年第一篇文章,全能终端神器MobaXterm

下图本文复制了交叉编译工具Ubuntu 虚拟机。

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

chmod u x fsl-imx-x11-glibc-x86_64-meta-toolchain-qt5-cortexa7hf-neon-toolchain-4.1.15-2.1.0.sh 

交叉编译工具直接安装脚本,连续敲下两次回车键确认,再输入用户密码可以。本安装目录为脚本指定的默认安装目录,后核编译环境的交叉编译按本安装目录操作。

5.2 配置环境变量

我们知道,在linux如果运行可执行文件,则需要在相应的目录下右键打开终端./指令操作它,那么我们在其他文件夹下操作指定程序呢?

当然可以,就是用环境变量是的,在Linux还需要环境变量!它的作用和作用windows下一个完全一样。这相当于省略了一个非常长的目录。在环境变量之前,我们需要输入的指令是:

/aaa/bbb/ccc/ddd/eee/fff/hhh/xxx.sh 

有了环境变量,我们输入的指令是,这就是区别。环境变量让系统知道,无论您在哪里呼叫xxx.sh指令是调用特定文件夹下的程序。

xxx.sh /pre> 
  

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

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

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

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

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

5.3 安装交叉编译环境

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

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

参考文档:【正点原子】I.MX6U 出厂系统Qt交叉编译环境搭建V1.6.pdf 2.3小节。

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

sudo vi /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

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

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

5.4 安装kits

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

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

cat /etc/version

如果文件系统不是 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
ifconfig eth0 192.168.1.115 netmask 255.255.255.0
route add default gw 192.168.1.1
echo "nameserver 114.114.114.114" > /etc/resolv.conf

这样之后没每次开发板连接网线上电后,开发板的IP地址就为192.168.1.115

加下来参考 【正点原子】I.MX6U 出厂系统Qt交叉编译环境搭建V1.6.pdf 2.5.1小节,完成rsync方式Qt远程调试kits安装。

六、实战开搞

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

打开后选择IMX6U-rsync套件

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

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

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

最终效果:

怎么样?可能你不知道为啥这么做,但是学习一个新东西最快的就是先玩起来,反向学习才能增加学习的兴趣!

锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章