1872|6

241

帖子

0

TA的资源

纯净的硅(初级)

楼主
 

【STM32MP135F-DK】7-部署QT开发环境+运行第一个QT程序 [复制链接]

本帖最后由 qiao--- 于 2023-12-18 00:35 编辑

在本篇之前先感谢贴友DDZZ669,因为我在给板子部署环境的时候遇到了一点小问题,后面是通过看这位贴友的帖子才解决的,后面我会提到。

下面开始我们正片。

1.虚拟机上部署qt环境。

在开发qt程序的时候我们一般都是在虚拟机上将程序写好,然后再将写好的程序交叉编译拷贝到板子上,所以虚拟机上的qt开发环境必不可少。

咱们先上qt的下载地址http://download.qt.io/archive/qt/

这个地址可以下载各个环境下的qt环境

   

这个就是可以在Linux上安装的qt,我们将他下载下来拷贝到我们的虚拟机上。然后赋予这个可执行的权限并执行它。

$ chmod +x qt-opensource-linux-x64-5.13.2.run 
$ sudo ./qt-opensource-linux-x64-5.13.2.run 

这时就会启动安装界面,直接傻瓜式安装(下一步、下一步)就行了,这里重点说一下都需要安装哪些组件

 

然后一直点下一步咱们的Linux上的qt环境就搭建好了。

 

2.qt交叉编译器部署。

这个用到的主要就是官方的SDK,在官方的SDK里面有我们想编译qt的一切工具。他这个SDK和我们前几期的SDK不一样,这个SDK好像是专门用于QT的,具体下载网址也不好找,当时我找了好半天,现在又找不到了,于是我就简单粗暴点,直接把这个SDK放在我的百度网盘链接里有需要的自行下载(附件只能上传100M以内的,所以只能以这种方式,放在文章的最后)。

将我们云盘的SDK下载好传到我们的虚拟机上,执行下面的命令进行安装。后续有提示 [y/N] 时,我们按回车键,默认安装即可。安装完成后,安装的交叉编译工具链都会安装在 /opt/ 目录下。

chmod +x st-example-image-qtwayland-openstlinux-weston-stm32mp1-x86_64-toolchain-3.1-snapshot.sh
./st-example-image-qtwayland-openstlinux-weston-stm32mp1-x86_64-toolchain-3.1-snapshot.sh

每次在自己的QT程序写好后直接执行下面的命令进行编译

source /opt/st/stm32mp1/3.1-snapshot/environment-setup-cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi
qmake && make

第一行是设置qt编译相关的环境变量。第二行是正式的编译。

我们可以用qmake -v命令来看一下我们的qmake的版本

 

编译成功后就可以生成我们的可以再板子上运行的可执行文件,这个我们后面再讲。

 

 

3.开发板上的qt环境的搭建。

这个就是我开始遇到问题的原因,开始我是想用builtroot重新构建一个有qt环境根文件系统的,但是我害怕有些东西后面可能会出现问题,于是我就在寻找一些可以移植qt到板子上的一些教程,最终在eeworld找到了,我挂上链接:

【嵌入式Qt】嵌入式Linux Qt运行环境搭建 - ARM技术 - 电子工程世界-论坛 (eeworld.com.cn)

我是按照他的这个方法移植到板子上的。但是我成功移植到板子之后发现这个板子的系统OpenSTLinux不支持frameBuf的驱动,而qt的程序运行必须需要frameBuf,所以我们需要给这个系统加上frameBuf的驱动,我们回到虚拟机,在内核源码的目录中打开终端。然后打开图形化配置界面我们来配置frameBuf的驱动。

我们首先要配置官方SDK的环境变量,然后输入 make menuconfig

 

而我们的frameBuf的驱动在以下的目录中

 

 

勾选上后我们从新编译一下我们的内核

make uImage LOADADDR=0xC2000040

 

编译好以后我们将uImage拷贝到我们板子上的/boot目录下

scp uImage root@192.168.137.12:/boot

然后重启一下开发板,就可以在我们的/dev目录下看到fb0的设备,在原系统中默认是没有这个设备的。

 

这样我们的板子上的qt环境也就搭建好了。

 

4.编写第一个qt程序。

第一个qt程序我就先做的简单一下,主要是演示一下如何在虚拟机写程序,交叉编译,然后在板子上运行这个过程。

我们打开QTCreator,创建我们的第一个程序。我们就搞一个日历界面吧,他这里面有现成的图形库,也比较方便。

 

  这里NEW一个工程,一直点下一步就可以。注意Class Info这里按照我这样选就可以。

 

进入工程后我们可以点击ui界面进行拖拽图形来构建我们自己的界面

  

  注意这里界面宽度我们选择480*272,因为我们的屏幕是这么大的。然后我们可以点击三角形运行标志运行一下。在我们电脑上的运行效果如下所示:

 

 

5.移植程序到开发板并运行。

这个程序虽然写好了,但是他不能在我们的板子上跑,我们只有用qmake把它编译一遍才能到板子上跑。

我们配置好环境变量然后进入我们的工程目录用qmake编译。

 

下面是编译后的结果,可以看到有很多过程文件,其中绿色颜色的就是可以再我们板子上跑的可执行文件

 

我们接着把它拷贝到我们的板子上:

scp untitled root@192.168.137.12:/home/root/

然后运行它

 

 

接下来我们的板子上就有编写的应用程序界面啦

 

我们也可以进行进行触摸

IMG_7961(1)

总结:ST官方给的SDK包中的资料很完整,可以方便我们开发qt程序,并移植到板子上运行。
 

qt编译SDK下载:链接:https://pan.baidu.com/s/1by-lfuahiHj3XmvMn82bJA?pwd=1x3g 提取码:1x3g

此帖出自stm32/stm8论坛

最新回复

博主你好,我在最后运行程  序的时候出现了界面显示不全,但是在Ubuntu中是完整的    [attach]840080[/attach]  [attach]840081[/attach]     详情 回复 发表于 2024-9-5 15:50
点赞(1) 关注
 

回复
举报

7608

帖子

2

TA的资源

五彩晶圆(高级)

沙发
 

各大镜像都没有qt的历史打包版本了,没想到在官网还能下。谢谢分享!

此帖出自stm32/stm8论坛
 
个人签名

默认摸鱼,再摸鱼。2022、9、28

 

回复

21

帖子

0

TA的资源

一粒金砂(中级)

板凳
 

楼主,“勾选上后我们从新编译一下我们的内核 make uImage LOADADDR=0xC2000040
”时,会报错,缺少文件gmp.h 怎么回事呢,前面的步骤都没问题。请指点一下哦!

 

此帖出自stm32/stm8论坛

点评

重新拉代码编译  详情 回复 发表于 2024-7-12 09:54
 
 

回复

241

帖子

0

TA的资源

纯净的硅(初级)

4
 
zhgongzuoshi 发表于 2024-7-11 16:03 楼主,“勾选上后我们从新编译一下我们的内核 make uImage LOADADDR=0xC2000040 ”时,会报错, ...

重新拉代码编译


此帖出自stm32/stm8论坛
 
 
 

回复

21

帖子

0

TA的资源

一粒金砂(中级)

5
 
本帖最后由 zhgongzuoshi 于 2024-7-15 09:58 编辑

总算折腾的编译通过了。但是在编译 qt程序时 又遇到问题了,楼主似乎在这一步省略介绍了一些 如何使用qmake的命令吧。

 

 

按照楼主的方法把内核重新编译后,把生成的uImage替换到板子里,结果卡在这起不来了:

 

 

此帖出自stm32/stm8论坛
 
 
 

回复

2

帖子

0

TA的资源

一粒金砂(初级)

6
 

博主你好,我在最后运行程  序的时候出现了界面显示不全,但是在Ubuntu中是完整的 

 

   

IMG_20240905_154450.jpg (2.91 MB, 下载次数: 0)

IMG_20240905_154450.jpg
此帖出自stm32/stm8论坛

点评

添加字库就好了  详情 回复 发表于 2024-9-7 13:51
 
 
 

回复

241

帖子

0

TA的资源

纯净的硅(初级)

7
 
lsc2001 发表于 2024-9-5 15:50 博主你好,我在最后运行程  序的时候出现了界面显示不全,但是在Ubuntu中是完整的    ...

添加字库就好了

此帖出自stm32/stm8论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表