全志T113开发板Qt远程调试

1引言

通常情况下工程师在调试Qt程序时,需要频繁制作镜像烧录到核心板来测试Qt程序是否完善,这样的操作既费时又费力。这时我们可以通过QtCreator设备功能,定义设备后,在x86_64虚拟机上交叉编译qt程序,将程序远程部署到arm64的机子上,然后远程调试,大大提高开发效率。

2. 调试环境

本文基于HD-T113-EVM评估板进行验证,HD-T113-EVM基于HD-T113-S3核心板设计,具备千兆网口、双路CAN-bus、2路RS-232、2路RS-485、LCD、4G/5G、WiFi、音频等,接口丰富,适用于工业现场应用需求,亦方便用户评估核心板及CPU的性能。

1.jpg

Linux主机

VM16.1.0 + Ubuntu18.04

交叉编译器

arm-linux-gnueabihf

Qt版本

Qt5.12.12

核心板版本

HD-T113-S3 v1.1

内核版本

Linux  kunos 5.4.61 #2 SMP PREEMPT Tue Dec 12 17:29:56 CST 2023 armv7l GNU/Linux

底板版本

HD-T113-EVM v1.2

2.1       调试前准备

使win10主机、arm开发板和linux虚拟机处于同一网段且三者能互相ping通配置虚拟机ip。虚拟机需要按照以下截图步骤进行设置。

3.png

4.png

    

5.jpg

6.png

2.2       交叉编译环境设置

7.png

/work/T113_Tina5.0/out/t113/hd-t113-evm-emmc/buildroot/buildroot/host/qt5/bin/qmake

2.2.1  编译器

8.png

GCC

/work/T113_Tina5.0/out/t113/hd-t113-evm-emmc/buildroot/buildroot/host/bin/arm-linux-gnueabihf-gcc

G++

/work/T113_Tina5.0/out/t113/hd-t113-evm-emmc/buildroot/buildroot/host/bin/arm-linux-gnueabihf-g++

2.2.2  Kits

9.png

2.3       创建新设备

打开工具->选项->设备,添加新的Generic Linux Device设备。

10.png

11.png

12.png

13.png

14.png

2.3.1  测试成功

15.png

2.3.2  测试失败

1 - 错误描述SSH connectionfailure

16.png

错误分析No routeto tohst找不到主机

解决方案检查虚拟机与开发板ip是否处于同一网段并且能互相ping通

2 - 如虚拟机与开发板可以正常ping通但无法ssh登录开发板

17.png

原因:一台主机上有多个Linux系统,会经常切换,那么这些系统使用同一ip,登录过一次后就会把ssh信息记录在本地的/.ssh/known_hsots文件中,切换该系统后再用ssh访问这台主机就会出现冲突警告,需要手动删除修改known_hsots里面的内容。

有以下两个解决方案:

1.删除修改known_hsots记录,重新登录,使known_hsots生成新的记录;

2.修改配置文件“~/.ssh/config”,添加下两行,

StrictHostKeyChecking no

UserKnownHostsFile /dev/null

重启服务器。

优缺点:

1.需要每次手动删除文件内容,一些自动化脚本的无法运行(在SSH登陆时失败),但是安全性高;

2.SSH登陆时会忽略known_hsots的访问,但是安全性低;

2.4       设置Kits->Device

18.png

2.5       部署应用

1 - 新建项目时,选择Kits为T113

19.png

2 - 编译应用

20.png

3 - 部署应用到开发板

21.png

4 - 提示

部署成功后,可能会提示。kbcommon: ERROR: failed to add defaultinclude path /usr/share/X11/xkb

5–运行结果展示

22.jpg

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/238766.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在docker中搭建部署clickhouse

因需要给网关日志拉取并存储供数据分析师分析,由于几十个项目的网关请求数量很大,放在mysql不合适,MongoDB不适合分析,于是准备存放在clickhouse,clickhouse对于读写支持也比较友好,说干就干 1、在服务器中…

【python】OpenCV—Histogram(9)

学习参考来自 Python下opencv使用笔记(九)(图像直方图) 更多学习笔记可以参考 【python】OpenCV—RGB(1)【python】OpenCV—Rectangle, Circle, Selective Search(1.2)【python】…

精品基于Uniapp+springboot车辆充电桩缴费管理系统管理系统App-地图

《[含文档PPT源码等]精品基于Uniappspringboot充电桩管理系统App》该项目含有源码、文档、PPT、配套开发软件、软件安装教程、项目发布教程、包运行成功! 软件开发环境及开发工具: 开发语言:Java 后台框架:springboot、ssm 安…

uniapp微信小程序投票系统实战 (SpringBoot2+vue3.2+element plus ) -用户投票实现

锋哥原创的uniapp微信小程序投票系统实战: uniapp微信小程序投票系统实战课程 (SpringBoot2vue3.2element plus ) ( 火爆连载更新中... )_哔哩哔哩_bilibiliuniapp微信小程序投票系统实战课程 (SpringBoot2vue3.2element plus ) ( 火爆连载更新中... )共计21条视频…

银河麒麟v10安装前端环境(Node、vue、Electron+vite)

此帖子所提到的所有依赖包都是基于银河麒麟v10真机的arm架构包,如果是在windows上的虚拟机上 把依赖包换成x64的包即可,方法步骤都是一样 一.node安装 原始方法安装(建议用第二种nvm方法,因为更简单): 1…

架构简介,到底什么是架构?

1. 前言 对技术人员来说,“架构”是一个再常见不过的词儿了。我们经常对新员工培训整个系统的架构,参加架构设计评审,学习业界开源系统(例如,MySQL、Hadoop)的架构,研究大公司的架构实现&#…

“确定要在不复制其属性的情况下复制此文件?”解决方案(将U盘格式由FAT格式转换为NTFS格式)

文章目录 1.问题描述2.问题分析3.问题解决3.1 方法一3.2 方法二3.3 方法三 1.问题描述 从电脑上复制文件到U盘里会出现“确定要在不复制其属性的情况下复制此文件?”提示。 2.问题分析 如果这个文件在NTFS分区上,且存在特殊的安全属性。那么把它从NT…

L1-025 正整数A+B(Java)

题的目标很简单,就是求两个正整数A和B的和,其中A和B都在区间[1,1000]。稍微有点麻烦的是,输入并不保证是两个正整数。 输入格式: 输入在一行给出A和B,其间以空格分开。问题是A和B不一定是满足要求的正整数&#xff0…

Mac 环境多JDK安装与切换

一、下载jdk 去Oracle官网上下载想要安装的jdk版本,M芯片选择arm架构的.bmg格式的文件。 https://www.oracle.com/java/technologies/downloads/。 二、安装jdk 2.1 双击下载的文件,安装步骤一步步点继续就好。 2.2 安装完成后会在/Library/Java/JavaV…

【Azure 架构师学习笔记】- Azure Databricks (5) - Unity Catalog 简介

本文属于【Azure 架构师学习笔记】系列。 本文属于【Azure Databricks】系列。 接上文 【Azure 架构师学习笔记】- Azure Databricks (4) - 使用Azure Key Vault 管理ADB Secret 前言 DataBricks Unity Catalog(UC)是一个统一的对数据资产治理的解决方案…

探索FTP:原理、实践与安全优化

引言 在正式开始讲解之前,首先来了解一下文件存储的类型有哪些。 DAS、SAN和NAS是三种不同的存储架构,分别用于解决不同场景下的数据存储需求。 DAS (Direct Attached Storage 直接附加存储):DAS 是指将存储设备(如硬盘&#x…

如何在电脑上建立待办事项列表,高效管理每日待办事项?

很多人在日常工作中都面临着诸多待办的任务,确保这些任务按时、高效地完成对工作效率至关重要。想象一下:你是一名项目经理,每天需要跟进各个项目的进展情况,安排会议、协调团队工作、处理突发问题等,这些需要严格按时…

分布式架构理论:从头梳理分布式架构的重难点

文章目录 一、分布式架构 - 系统理论1、分布式一致性与CAP理论2、BASE理论3、分布式一致性算法:Raft(1)Paxos算法(2)Raft算法(3)共识算法:拜占庭将军问题 4、脑裂现象和Lease机制&am…

【ceph】在虚拟环境中需要给osd所在的虚拟盘扩容操作

本站以分享各种运维经验和运维所需要的技能为主 《python零基础入门》:python零基础入门学习 《python运维脚本》: python运维脚本实践 《shell》:shell学习 《terraform》持续更新中:terraform_Aws学习零基础入门到最佳实战 《k8…

Java_线程通信

一、线程通信 首先,什么是线程通信呢? 当多个线程共同操作共享资源时,线程间通过某种方式互相告知自己的状态,以相互协调,避免无效的资源挣抢。 线程通信的常见模式:是生产者与消费者模型 生产者线程负…

Vue 中修改 Element 组件的 下拉菜单(Dropdown) 的样式

Vue 中修改 Element 组件的 下拉菜单(Dropdown) 的样式 今天在项目中碰到一个 UI 改造的需求,需要根据设计图把页面升级成 UI 设计师提供的设计图样式。 到最后页面改造完了,但是 UI 提供的下拉菜单样式全部是黑色半透明的,只能硬着头皮改了。…

【LeetCode】组合两个表(mysql)

题目 编写解决方案,报告 Person 表中每个人的姓、名、城市和州。如果 personId 的地址不在 Address 表中,则报告为 null 。 以 任意顺序 返回结果表。 结果格式如下所示。 答 select firstName ,lastName,city,state from Person left join Address …

[渗透测试学习] Hospital - HackTheBox

文章目录 信息搜集getshell提权信息搜集 nmap扫描一下端口 发现8080端口和443端口有http服务 然后发现3389端口是启用了ms-wbt-server服务 在对443端口的扫描没有收获,并且只有邮箱登录界面无法注册 接着看向8080端口,我们随便注册用户登录后发现有文件上传功能 getshell …

git撤销提交到本地的commit

有些时候,当我们提交代码到本地后,突然发现因为某些原因需要撤销提交本地的代码。 就比如我,因为代码写错了分支,已经提交到本地了,而我需要取消,并且还要把代码搞得另外的分支上。 提交前: …

放空一下自我 free

文章目录 放空一下自我 free默认的效果使用易读的参数间隔显示内存状态查看meminfo文件更多信息 放空一下自我 free **free**这个命令在Linux系统监控的工具里面,算是使用的比较多的一个。 使用_man_查看可知,官方含义为: Display amount o…