全志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的性能。

|------------------|---------------------------------------------------------------------------------|
| 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。虚拟机需要按照以下截图步骤进行设置。

2.2 交叉编译环境设置

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

2.2.1 编译器

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

2.3 创建新设备

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

2.3.1 测试成功
2.3.2 测试失败

1 - 错误描述SSH connectionfailure

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

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

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

原因:一台主机上有多个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

2.5 部署应用

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

2 - 编译应用

3 - 部署应用到开发板

4 - 提示

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

5--运行结果展示

相关推荐
SomeB1oody3 分钟前
【Rust自学】7.4. use关键字 Pt.2 :重导入与换国内镜像源教程
开发语言·后端·rust
新手小袁_J6 分钟前
No Python at ‘C:\Users\MI\AppData\Local\Programs\Python\Python39\python.exe‘
开发语言·python·error·no python
stormjun6 分钟前
基于 Python Django 的二手电子设备交易平台(附源码,文档)
开发语言·python·django·二手电子设备·电子设备售卖·电子设备交易
新知图书8 分钟前
Rust编程与项目实战-箱
开发语言·后端·rust
SomeB1oody12 分钟前
【Rust自学】7.3. use关键字 Pt.1:use的使用与as关键字
开发语言·后端·rust
DARLING Zero two♡19 分钟前
【优选算法】Sliding-Chakra:滑动窗口的算法流(上)
java·开发语言·数据结构·c++·算法
君败红颜25 分钟前
Apache Commons Pool2—Java对象池的利器
java·开发语言·apache
意疏34 分钟前
JDK动态代理、Cglib动态代理及Spring AOP
java·开发语言·spring
程序员_三木34 分钟前
使用 Three.js 创建圣诞树场景
开发语言·前端·javascript·ecmascript·three
小王努力学编程36 分钟前
【C++篇】AVL树的实现
java·开发语言·c++