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

嵌入式ARM 2022-07-27 12:00

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

所以,今天就以通俗易懂的方式,讲一下在正点原子Linux开发板上跑一个Qt程序的基本步骤,争取让新手也能在半天的时间跑通第一个程序(本文主要面向初学者,老鸟可以忽略)。

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

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

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

上手做Linux开发之后,先是被几十个G的安装镜像吓住了,感觉Linux编译起来特别复杂很难。还有就是密密麻麻的动辄上百个字符的命令,对于习惯图形化开发的我们来说,实在是感到太难了。另外,卖家那动不动就几十个小时的视频,视频还分好几期,什么驱动开发、应用开发、Qt开发等。

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

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

一、下载资料

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


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

二、安装虚拟机

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

建议初学者仔细的看一遍,如果装错了,没事大不了删了在再装一次。

在安装ubuntu这个步骤中,强烈建议直接下载正点原子已经打包好qtcreator的镜像,将这个镜像安装完毕后,就不用再一步步配置了。对于需要快速跑通第一个linux程序的同学来说,可以避免学的越细越糊涂的陷阱。跳过这些繁琐的步骤,可以让我们快速站在全局高度理解整个开发过程。

这是啥意思呢?就是你新安装的ubuntu不是啥环境啥软件都没有嘛,你需要自己安装一遍,比较麻烦。但是你可以用别人的正点原子的他们电脑里面的那个ubuntu系统,他把这个系统打包好了给你,你只需要把他的打包好的系统安装你的虚拟机就可以了,怎么样?是不是很神奇,你还可以在你的电脑安装别人的电脑系统。这个系统在哪里呢?

下载下来是这样:

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

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

三、配置网络环境

当你安装完ubuntu后,很可能不能上网,这个问题每个人遇到的都不一样,建议按照正点原子的教程把你的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开发板运行的代码吧!这个就叫做“交叉编译链”

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

五、安装Qt交叉编译器

可以参考:【正点原子】I.MX6U 出厂系统Qt交叉编译环境搭建V1.6.pdf第一章的内容,安装交叉编译器,你只有安装了这个,你才能在ubuntu中编译出可以在ARM开发板上运行的代码。

注意:这一步必须做,而且还要按照她的教程一步一步来!

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

如下图所示,本文已经把交叉编译工具拷贝到了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

环境变量的设置方法是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上面编译好后,点击运行,就会直接在开发板上面显示你的程序效果。

在 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桌面,你可以禁止它不让他显示,参考如下:

最终效果如下:

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

来源:果果小师弟

版权归原作者所有,如有侵权,请联系删除。

推荐阅读
基于MCU通用GUI大盘点
为什么很多人下班后只关显示器,从不关电脑?
这些国产软件一度被大众误以为是外国大佬研发的…

→点关注,不迷路←
嵌入式ARM 关注这个时代最火的嵌入式ARM,你想知道的都在这里。
评论
  •                                                                        
    广州铁金刚 2026-08-06 17:44 100324浏览
  • ​摘要:低价大流量卡正全面退市,政策收紧已成定局。面对传统号卡的不确定性,随身WiFi凭借稳定连接、多设备共享、独立设备和灵活套餐等优势,成为务实可靠的备选方案。1、流量卡黄金时代要结束了通信行业正迎来一场前所未有的“地震式”调整——曾让无数用户追捧的低价大流量卡,正在全速退出各大平台。这早已不是一次普通的竞合,而是一场趋势性的行业洗牌。回望过去,19元200G的神卡,那时真是“睡着都能笑醒”,便宜到不敢相信,爽到忍不住炫耀。那些日子,好像随便刷、随便看,流量自由触手可及。可如今,回头再看,那种
    爱上电路设计 2026-08-03 10:21 128869浏览
  • 在EMC测试过程中,传导发射(Conducted Emission,CE)超标是工程师最常遇到的问题之一。更令人头疼的是,同样的超标曲线背后,可能对应着完全不同的干扰机理:有的是差模噪声沿电源回路传播,有的是共模电流通过寄生路径耦合,还有些问题甚至并非来自电源本身,而是负载、电缆布局或接地结构引起的连锁反应。 · 150kHz~1MHz 超标:多为差模噪声为主,干扰沿火线-零线回路传输。 · 1MHz~30MHz 超标:通常共模噪声占主导,干扰通过火线/零线对地回路传播。 如果条件允许,用电流探
    誉磁电磁兼容EMC 2026-07-31 18:45 501浏览
  • 在前六期中,我们已经分别讨论了 CRA 的适用范围、整体影响、漏洞通报义务、风险评估与技术文档证据链、第三方组件与 SBOM 供应链治理,以及产品上市后的支持期、安全更新、用户说明和终止支持管理。到这里,企业已经能够回答几个核心问题:产品是否落入 CRA 适用范围,产品由哪些组件构成,企业如何证明自己在设计、开发和上市前采取了必要的安全措施,以及产品上市后如何持续维护和安全下线。但对于真正准备落地 CRA 合规的企业来说,还有一个更现实的问题:CRA 的法规条文相对原则化,企业应当如何把“网络安
    虹科云科技 2026-08-03 16:51 149219浏览
  • 智能宠物用品这几年快速普及,自动清理几乎成了智能猫砂盆的标配。猫咪用完离场,设备自动翻转清理,养宠家庭省去了每天弯腰清理的麻烦。但自动清理的第一步,是先准确判断猫到底在不在盆里。这个看似简单的问题,在小空间里并不容易做好。近场检测的痛点:距离太远反而误事猫砂盆内部空间有限。如果传感器的检测距离设得偏大,盆外路过的猫、人甚至物品都会被误判为猫在盆内,结果该清理时不清理、不该清理时乱清理,体验直接崩坏。这类产品的核心诉求其实就一句话:近距离、小范围、精准识别,不能有半点误判。常规感应方案常因检测距离
    唯创知音语音芯片 2026-07-31 16:51 306浏览
  •     长期专注WiFi领域,也算是行业老兵了!同行闲聊中,时不时能提起我和我们!从疫情起,国产替代风生水起,起起落落,大浪淘沙,生存下来的都是强者!    WiFi模块应用广泛,对于高端市场和特定市场,要求WIFI模块需要过CE/FCC之类的认证,也就是说没有认证的模块,不具备导入产品设计.接下来就和大家聊聊认证模块选型参考!    WIFi模块硬件方面主要考虑以下九点特性:    1
    纳拓科技 2026-07-31 17:56 252浏览
  • 摘要防爆自控系统同时布设本安信号、工业总线、动力供电三类线路,仅依靠标识标牌管控插接极易出现人为错插问题,高压动力回路窜入本安弱电回路会突破安全栅限能标准,产生点火风险。依托 A、D、K 标准化机械防呆编码体系,搭配护套颜色区分管理,适配 3 针 3 孔免焊接冷压增安型防爆航插、5PIN 总线防爆航空插头、8 芯焊接防爆法兰插座的选型使用,从物理结构层面杜绝防爆接近开关连接器、防爆传感器航插接头混用插接问题,补齐防爆系统被动安全防护体系。关键词圆形防爆连接器,防呆编码防爆航插,防爆航空插头,防爆
    kyfbest科迎法电气 2026-07-31 18:29 407浏览
  •        很多人只见过封装在SMD外壳里的小尺寸晶振,却不知道一颗2016、1612甚至1210封装的微型石英晶振,从一块巴掌大的石英原矿,到最终能稳定起振的成品,要经过十几道精密工序。它内部的石英晶片厚度最薄不到20微米,比普通A4纸的1/5还薄,整个生产过程里哪怕0.1微米的误差,都会直接废掉整批产品,这也是小尺寸晶振过去长期依赖进口,国内厂商花了十几年才啃下量产硬骨头的核心原因。1. 原石定向切割:0.01度的角度误差都不能有小尺寸晶振的第一步,
    TKD泰晶科技 2026-08-07 08:43 374浏览
  • 文:杜杰编辑:侯煜当地时间7月28日,美国特朗普政府落地最新科技封锁政策,美国联邦通信委员会(FCC)正式更新《受管制清单》,新增两大类设备——境外生产的先进机器人设备、境外生产的联网电力逆变器。FCC在官方情况说明书中明确,该类境外制造产品,“会对美国国家安全或美国民众的人身安全构成无法承受的风险”。本次新规设置明确豁免机制:经美国国防部(DoW)、电力逆变器品类经美国国土安全部(DHS)审核并授予“有条件批准”,认定对应设备品类不存在重大安全风险,即可获得准入豁免。同时政策严格执行新老划断原
    华尔街科技眼 2026-08-03 21:28 325浏览
  • 在芯片总成本中占比不到 1%,却可能因一处品质偏差导致整片晶圆报废——半导体切割/研磨胶带,正随着先进封装的爆发,成为封测产线选型中最谨慎对待的耗材之一。但鲜有人注意到,决定这层胶带性能上限的,是上游一层更薄的基膜。这个长期由日本企业主导的隐形环节,正在出现国产突围的信号。一、需求之变:先进封装与“韬定律”重塑胶带市场AI 算力芯片、HBM 高带宽存储、Chiplet 芯粒等先进封装产品持续放量,国内封测产线扩产节奏不减。作为晶圆减薄与切割工序的必需耗材,晶圆胶带的需求同步扩容。据 QYRese
    芯膜前沿 2026-07-31 16:35 372浏览
  • 摘要在防爆电气设计中,只参照芯数选型而忽略额定载流量,长期满负荷运行会出现插头发热、接触面氧化、IP67 密封受热老化等问题。结合常用 3 针 3 孔、4 芯、5PIN、8PIN 圆形防爆连接器,制作分级电流参数对照表,区分冷压免焊接、焊接两种接线结构的安全载流数值,设置合理电流冗余系数,搭配使用环境修正参数,规范防爆接近开关连接器、防爆法兰插座的选型计算方式。关键词圆形防爆连接器,载流参数表,防爆法兰插座,防爆端子接头,IP67 防爆防水接插件1 产品概述圆形防爆连接器触点载流能力由插针直径、
    kyfbest科迎法电气 2026-08-03 09:18 128642浏览
  • 产品使用18V供电,配套4串锂离子电池,需要设计一个充电器。因为输入18V,电池最高 16.8V,压差仅 1.2V。因为压差太小。使用开关型的充电控制芯片不稳定。尝试自行设计一个。整体采用分立三极管 + TL431架构,分4个功能单元:使能控制回路、限流环路、TL431 精密恒压反馈环路、PNP 功率管主功率输出回路;实现完整锂电池充电逻辑。使能控制回路按键按下:5V 电压经 R12 (2kΩ) 送入 NPN 管 Q3 基极,Q3 饱和导通,对地拉低 R1、R2 组成的分压控制节点电位;该节点直
    southcreek 2026-08-07 13:45 316浏览
  • 做蓝牙音箱的工程师大概都碰过这个局面。产品要连手机放歌,要本地播开机提示音和按键音,还要接 App 做配网和状态上报。三件事拆开,早先的常规做法是音频蓝牙一颗料、数传蓝牙一颗料、本地播放再挂一颗小 MCU 加一片 Flash。板子越画越大,BOM 越算越贵,待机电流和固件工作量也跟着涨。WT2605C 出来以后,这套需求可以集成到一颗芯片,就是 WT2605C-32N,该芯片采用QFN32 封装,4×4 毫米,把音频蓝牙、BLE 数传和 MP3 本地播放三样全包了。对蓝牙音箱来说,最实在的好处就
    唯创知音语音芯片 2026-08-06 15:14 284浏览
  • 导语在现代高速数字电路设计中,信号的完整性已不仅是理想波形推演,而是一场与物理非理想特性正面博弈的工程实践。滤波器芯片作为净化传输链路的关键屏障,其核心挑战在于:能否有效识别并滤除那些隐匿在电平跳变过程中的亚纳秒级瞬态脉冲干扰,这类干扰持续极短,却足以在高速链路中引发误触发。然而,传统函数发生器受限于采样率与边沿速率,根本无法忠实复现如此狭窄且陡峭的异常波形。针对此困境,德思特TS-AWG7000系列任意波形发生器以17 GS/s采样率与50 ps原生边沿速度,为瞬态脉冲提供精细刻画,配合SPG
    德思特测试测量 2026-08-05 14:06 5浏览
  • 在物联网从“万物互联”迈向“万物智联”的进程中,LTE Cat.1凭借其在速率、成本与网络覆盖之间的完美平衡,正成为中低速物联网市场的绝对主力。随着2G/3G网络的逐步退网以及新国标对终端设备智能化、定位功能的强制要求,Cat.1模组迎来了爆发式的增长窗口。在这一关键节点,基于华为海思Hi2131芯片设计的LTE Cat.1模组,凭借其在能效、射频、架构及物理规格上的底层创新,成功打破了“高性能必高功耗”的传统魔咒,为行业提供了极具竞争力的连接最优解。核心技术优势:重塑Cat.1能效与连接标杆海
    用户1778981989717 2026-08-05 21:04 169浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦