当前位置: 首页 > news >正文

第六章 QT和OPENCV交叉编译开发环境以及QT远程调试

第六章 QT和OPENCV交叉编译开发环境


之前linux启动后的文件系统中只有很少的功能和支持,缺少opencv和qt相关的库,一个方法是下载源码去交叉编译,另一个办法是通过petalinux去配置(本质上还是下载源码和交叉编译)。

根文件系统配置

配置命令

petalinux-config -c rootfs

选择相关的包

这里只写包名,在配置界面可以按"/"查找,查找后按数字键进入到对应的项目。

配置说明
gdb调试应用程序
gdbserver网络远程调试应用程序
packagegroup-petalinux-matchbox简易的Linux桌面管理系统
packagegroup-petalinux-opencvopencv 库
packagegroup-petalinux-qtqt 库
packagegroup-petalinux-v4lutilsv4l 工具,视频配置小工具
packagegroup-petalinux-x11x11 库
libmali-xlnxGPU 库

生成SDK和安装

  • 为什么要生成SDK?
    虽然前面选择了相关的包,比如opencv和qt,这些包的环境已经编译到了文件系统中,但在电脑上编译的话也需要相关的头文件和库文件,生成SDK后就得到了一个已经整合好的环境,比较方便。
petalinux-build --sdk

在"images/linux"下生成sdk.sh。

安装命令:

./sdk.sh

安装好后会有一句提示,如何使用SDK环境。

source /opt/petalinux/2023.1/environment-setup-cortexa72-cortexa53-xilinx-linux

QTCreator 交叉编译环境设置

交叉编译配置

  1. “Tools->Options”里面Kits进行配置。

  2. 配置qmake。
    在这里插入图片描述

  3. 配置GCC的C和C++。
    在这里插入图片描述

  4. 配置gdb。
    在这里插入图片描述

  5. 新增Kits。
    在这里插入图片描述

  6. 创建工程的时候选择刚刚配置的Kit就可以使用了。

应用程序测试

直接新建一个工程,进行编译。可以看到编译成功且用的是交叉编译链。
在这里插入图片描述

将编译好的文件可以拷贝到板子上运行。

export DISPLAY=:0.0
./hello

在这里插入图片描述

QT远程调试

上一步编译出了能在板端执行的可执行文件,但是需要手动拷贝到板端。
通过Qt的部署功能(依赖SSH)可以将文件通过网络传输到板端,再加上gdbserver就可以通过Qt进行调试了。

远端设备配置

根据板子IP设置就行。
设置好后可以在Kits进行设备选择。
在这里插入图片描述

如果需要命令行参数的话在运行设置里面修改。

在这里插入图片描述

问题记录

显示驱动加载失败

现象
[    9.982154] xilinx-psgtr fd400000.phy: Invalid reference clock number 2
[    9.988766] zynqmp-display fd4a0000.display: failed to get PHY lane 0
[    9.995242] zynqmp-display: probe of fd4a0000.display failed with error -22
排查过程

错误位于linux-xlnx-xilinx-v2023.1\drivers\phy\xilinx\phy-zynqmp.c
在这里插入图片描述

打印显示的错误是时钟2,实际上有4个,没超出数组大小,说明时钟2为空。
在这里插入图片描述
在这里插入图片描述
查看初始化的地方,是在找类似的字段初始化"ref0"。
在这里插入图片描述
查看设备树,并没有类似的字段,但确实是使用的ref2参考时钟。
在这里插入图片描述
在这里插入图片描述

解决方法

在system-user.dtsi手动增加ref2时钟。因为整个设备树只用了这一个ref2时钟,其他时钟还没有使用到,这里只添加一个。

更改后可成功加载驱动和输出图像。

&psgtr {clocks = <&video_clk>;clock-names = "ref2";
};

video_clk时钟是27M的参考时钟,和设计中对应。
在这里插入图片描述

在这里插入图片描述

QT远程上传文件失败(未解决)

现象

显示空间不够,但是是有的,改了上传路径也不行。
在这里插入图片描述

Mobaxterm串口敲指令卡顿(未解决)

现象

添加了QT等库后,Mobaxterm敲指令会时不时的卡一下,体验特别差。

http://www.dtcms.com/a/461752.html

相关文章:

  • hello_mybatis
  • 【大模型理论篇】MCP协议中sse、stdio、streamable_http含义
  • Git 小白超详细指南
  • 深度学习基础:从原理到实践——第二章神经网络(上)
  • 企业网站制作报价单哈尔滨视频剪辑培训机构
  • SOME/IP车载服务的形式化安全分析和防护
  • TCP三次握手与四次挥手状态解析
  • 网站想换空间invoker wordpress
  • Eureka注册中心
  • 网站建设销售总结房屋装修在线设计网站
  • 机器学习基本概念
  • Buffer:Node.js 里处理二进制数据的 “小工具”
  • 网站开发博客大前端d8扁平化wordpress模板
  • Go 语言环境安装指南
  • UiPath2025笔记第六节:java调试API触发器
  • Python实现自动化巡检ESXi6.7并输出excel报告
  • wordpress手机显示不了图片关键词优化计划
  • Python学习之基础篇
  • 手机app开发 网站建设描述网站开发的广告词
  • 24届-Python面经(华为OD)
  • JavaSpring项目之连接,并使用redis
  • 前端核心框架vue之(vue状态核心案例篇4/5)
  • 前端请求优化进阶:并发控制、缓存优化与错误重试实战教程
  • 网站建设的主要特征一个网址需要多少钱
  • 多模态医疗大模型Python编程合规前置化与智能体持续学习研究(上)
  • Transformer 面试题及详细答案120道(71-80)-- 应用场景
  • 官方网站内容可做证据吗百度软件推广联盟
  • 做网站的好处网站开发课设
  • 解决:谷歌浏览器提示“此扩展程序已停用,因为它已不再受支持”已解决
  • 【小程序】微信开发者工具上调用api接口可以,到了线上调用发现提示wx.request调用报错,原来是https协议问题