【正点原子FPGA连载】 第十二章ZU+ MPSoc Qt开发摘自【正点原子】【正点原子】DFZU2EG_4EV MPSoc之嵌入式Qt开发指南_V1.0

1)实验平台:正点原子MPSoC开发板
2)平台购买地址:https://detail.tmall.com/item.htm?id=692450874670
3)全套实验源码+手册+视频下载地址: http://www.openedv.com/thread-340252-1-1.html

第十二章ZU+ MPSoc Qt开发

本章开始写与正点原子ZU+ MPSoc开发板相关的实例。所有例子都是基于正点原子ZU+ MPSoc的出厂系统上进行。请不要使用其他系统或者自己开发的内核设备树等!否则可能驱动与应用对应不上没法操作硬件设备。本章适用于正点原子MPSoc开发板。
搭建ZU+ MPSoc的Qt开发环境,正点原子已经早有相关文档,写的很详细。请大家先熟悉正点原子ZU+ MPSoc的Qt开发环境。交叉编译Qt应用程序有两种方法。一种是直接在终端使用命令行编译Qt项目。一种是在Qt Creator里搭建交叉编译套件的方法来编译Qt项目。请大家根据个人的喜好使用其中一种即可或者两者都熟悉。本教程倾向使用Qt Creator里搭建交叉编译套件的方法来编译Qt项目。

12.1为MPSoc开发Qt的必要条件

要让Qt在MPSoc平台上运行,需要一个Qt支持的平台环境,从Qt手册可以看到,Qt支持的嵌入式平台如下:
在这里插入图片描述

图 12.1.1 Qt支持的嵌入式平台
其中包括嵌入式Linux,而我们使用Petalinux搭建出来的linux系统属于嵌入式Linux。其他平台笔者未用过,此处不做介绍。
有了嵌入式linux系统后,运行Qt前需要先安装Qt,如同在Ubuntu系统上运行Qt前需要安装Qt。在Ubuntu系统上安装的Qt很大,因为其中包括了开发工具IDE,而嵌入式平台因为资源和性能等限制,一般只包括运行Qt必须的Qt库等文件即可。而Qt库哪里来的呢?
如果使用Petalinux工具的话,在使用Petalinux工具构建根文件系统的时候可以配置Qt包,这样生成的根文件系统就包括Qt库了;否则的话,可能需要自己手动移植了。手动移植的方法请参考开发板光盘资料(A盘)\4_SourceCode\06_Embedded_Qt_Design\【正点原子】DFZU2EG_4EV MPSoc之移植Qt5.12.12 V1.x.pdf。
现在有了嵌入式Linux系统平台,且其中有Qt库,就可以在MPSoc上运行Qt程序了么?
当然可以了。
以上就是在MPSoc上运行Qt的必要条件了,包括嵌入式Linux系统平台和运行在该平台上的Qt库。
现在我们来了解下如何为MPSoc开发Qt。
由于嵌入式Linux系统一般不包括编译工具,且由于资源和性能等原因无法安装集成开发工具IDE,所以为MPSoc开发Qt,一般都是在电脑上交叉编译好Qt程序,然后将其拷贝到开发板上运行。既然要在电脑上交叉编译好Qt程序,那么在电脑上肯定有一套移植好的Qt,而且有相应的交叉编译工具,那么这套Qt和交叉编译工具哪里来的呢?
如果是用Petalinux生成的带Qt的根文件系统的话,构建的 SDK中就包含了Qt和交叉编译工具,然后将其添加到Qt Creator中即可,参见MPSoc之嵌入式Linux开发指南第10章《Petalinux构建Qt和OpenCV交叉编译开发环境》中的配置 Qt Creator一节。
如果是自己手动移植的Qt,请参考上面的移植Qt文档。
需要特别注意的是出厂根文件系统是用Petalinux 2020.2 版本构建的,所以读者在出厂系统上运行的qt程序,必须是使用Petalinux2020.2 版本构建的 SDK中的交叉编译工具链编译的,否则可能报找不到库错误,如glibc库,实际是库版本不对。如何安装Petalinux2020.2 版本构建的 SDK及其在网盘中的位置,请参考上面移植文档的的第一章,安装完成后,将其添加到Qt Creator中即可,参见MPSoc之嵌入式Linux开发指南第10章《Petalinux构建Qt和OpenCV交叉编译开发环境》中的配置 Qt Creator一节,注意Qt版本选择Qt 5.13.2。

12.2使用命令行编译

请参考开发板光盘资料(A盘)\4_SourceCode\06_Embedded_Qt_Design\【正点原子】DFZU2EG_4EV MPSoc之移植Qt5.12.12 V1.x.pdf第五章第5.4小节,使用命令行编译的方法。不过此方法需要拷贝执行文件到板子上运行。

12.3使用Qt Creator交叉编译

请参考开发板光盘资料(A盘)\4_SourceCode\06_Embedded_Qt_Design\【正点原子】DFZU2EG_4EV MPSoc之移植Qt5.12.12 V1.x.pdf第五章第5.3小节。推荐使用在Qt Creator中搭建开发环境,可以远程连接开发板运行。但若结果不正确时(比如需要环境变量,路径等),建议拷贝执行文件到开发板上运行。
注:用Qt Creator 交叉编译MPSoc的Qt源码时,会把程序中的类当作未识别的类,如下图所示:
在这里插入图片描述

图 12.3.1 出现警告
这个可以不用理会。
想解决这个问题也有方法。因为高版本的 Qt creator 多了一个 ClangCodeModel插件,把这个插件去掉,重启Qt creator 就不会有这个报错信息了。在Qt Creator菜单栏中点击“帮助” -> “关于插件”,在C++栏找到“ClangCodeModel”,取消勾选即可,如下图所示:
在这里插入图片描述

图 12.3.2 解决警告
点击关闭,会提示是否要现在重启,点击Now即可重启生效。

12.4使用出厂镜像的注意事项

  1. 关闭出厂镜像的Qt GUI显示界面
    使用出厂镜像时,需要先关闭出厂镜像的Qt GUI显示界面,否则的话会造成干扰。关闭方法如下:
    临时关闭(本次关闭,重启后恢复):
    长按开发板上的PL_RST按键不放,会自动退出Qt GUI显示界面。
    永久关闭:
    在串口终端执行下列命令:
    update-rc.d -f qtGUI.sh remove
    那么下次启动之后将不会再显示 Qt GUI,此时重启或者使用上面的临时关闭方法即可。当然,如果用户还想开启显示,可以执行下面这条命令:
    update-rc.d qtGUI.sh defaults 90 0
  2. 出厂系统的Qt版本与移植的版本不一样的兼容性问题
    如果在电脑上不是使用sdk中的Qt,而是按照移植文档移植的Qt,而出厂系统的Qt版本是5.13.2,移植教程的Qt版本是5.12.12,在电脑上使用移植的5.12.12版本编译,能直接运行在出厂系统上么?答案是可以的,只要使用相同的交叉编译器就可以。因为这两个版本相近,只要不是使用Qt5.13.2没有,Qt5.12.12有的功能就可以,一般我们开发Qt,不会使用特别的功能,毕竟都5.13.2版本了,常用的该有的功能都有了。此外,笔者在验证本篇的示例时,都是在电脑上使用移植的5.12.12版本编译,在出厂系统上运行测试的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值