立即注册
查看: 179|回复: 0

[arm开发经验分享] 全志T113开发板Qt远程调试

已绑定手机
发表于 2024-1-10 17:56:40 | 显示全部楼层 |阅读模式 来自 湖北省武汉市
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的性能。
ABUIABACGAAgxsb5rAYo-vm2-gYw9gk4ywU.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。虚拟机需要按照以下截图步骤进行设置。

ABUIABAEGAAgncH5rAYossXS4Acw4QQ4rAQ.png ABUIABAEGAAgoMH5rAYo15_ErQYw4QQ4kQQ.png



   
ABUIABACGAAgosH5rAYoiMff6wQw3QQ4lgU.jpg ABUIABAEGAAgpcH5rAYostPPtQYwqwQ4nQQ.png



2.2       交叉编译环境设置

ABUIABAEGAAgzML5rAYolrKJ1Qcw9wQ4lwE.png

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


2.2.1  编译器

ABUIABAEGAAg4cL5rAYo1J7Y7QQw_gQ44wI.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

ABUIABAEGAAg7cP5rAYo4Pa6lwMw-wU4-wM.png


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

ABUIABAEGAAghMT5rAYo6tvg9AMwlwc4tgU.png
ABUIABAEGAAgoMT5rAYooIn4kwQwoAM47gI.png
ABUIABAEGAAgssT5rAYowOrWzQQwhwY4gQM.png
ABUIABAEGAAgw8T5rAYokrT5lAUw5gY4-wI.png
ABUIABAEGAAg1sT5rAYorIqqqAIwmwc45AQ.png


2.3.1  测试成功

ABUIABAEGAAg5cT5rAYo9Pi9WTDZBDjgBA.png


2.3.2  测试失败
1 - 错误描述SSH connectionfailure

ABUIABAEGAAg98T5rAYouMXw9QYw3QQ44QQ.png

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

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


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

ABUIABAEGAAgksX5rAYo4KjMFzDeBTj-Ag.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

ABUIABAEGAAgq8X5rAYom-uCoQMw3Ag4uAU.png


2.5       部署应用
1 - 新建项目时,选择Kits为T113

ABUIABAEGAAgyMX5rAYonILGpQYwnQY4kQQ.png

2 - 编译应用

ABUIABAEGAAg58X5rAYo4JOCgQEw8AQ4hgM.png

3 - 部署应用到开发板

ABUIABAEGAAg9cX5rAYo3pKY2wIw7wM4xgM.png

4 - 提示

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

5–运行结果展示
ABUIABACGAAghcb5rAYo5sOUrQIwuAg4uAg.jpg

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

本版积分规则

合作/建议

TEL: 19168984579

工作时间:
周一到周五 9:00-11:30 13:30-19:30
  • 扫一扫关注公众号
  • 扫一扫打开小程序
Copyright © 2013-2024 一牛网 版权所有 All Rights Reserved. 帮助中心|隐私声明|联系我们|手机版|粤ICP备13053961号|营业执照|EDI证
在本版发帖搜索
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表