芯片资讯
- 发布日期:2024-01-16 07:04 点击次数:148 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](/uploads/allimg/240116/0S1554533-0.jpg)
Linux主机
VM16.1.0+Ubuntu18.04
交叉编译器
arm-linux-gnueabihf
Qt版本
Qt5.12.12
核心板版本
HD-T113-S3v1.1
内核版本
Linuxkunos5.4.61#2SMPPREEMPTTueDec1217:29:56CST2023armv7lGNU/Linux
底板版本
HD-T113-EVMv1.2
2.1调试前准备使win10主机、arm开发板和linux虚拟机处于同一网段且三者能互相ping通配置虚拟机ip。虚拟机需要按照以下截图步骤进行设置。
![3.png](/uploads/allimg/240116/0S1551918-1.png)
![4.png](/uploads/allimg/240116/0S1555120-2.png)
![5.jpg](/uploads/allimg/240116/0S155B38-3.jpg)
![6.png](/uploads/allimg/240116/0S1553507-4.png)
![7.png](/uploads/allimg/240116/0S1553003-5.png)
/work/T113_Tina5.0/out/t113/hd-t113-evm-emmc/buildroot/buildroot/host/qt5/bin/qmake
2.2.1编译器![8.png](/uploads/allimg/240116/0S1554W6-6.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.2Kits![9.png](/uploads/allimg/240116/0S1553434-7.png)
打开工具->选项->设备,添加新的GenericLinuxDevice设备。
![10.png](/uploads/allimg/240116/0S15564M-8.png)
![11.png](/uploads/allimg/240116/0S155G33-9.png)
![12.png](/uploads/allimg/240116/0S1554U6-10.png)
![13.png](/uploads/allimg/240116/0S1552408-11.png)
![14.png](/uploads/allimg/240116/0S155M00-12.png)
![15.png](/uploads/allimg/240116/0S15525B-13.png)
1-错误描述SSHconnectionfailure
![16.png](/uploads/allimg/240116/0S1551309-14.png)
错误分析Noroutetotohst找不到主机
解决方案检查虚拟机与开发板ip是否处于同一网段并且能互相ping通
2-如虚拟机与开发板可以正常ping通但无法ssh登录开发板
![17.png](/uploads/allimg/240116/0S155DT-15.png)
原因:一台主机上有多个Linux系统,会经常切换, 电子元器件采购网 那么这些系统使用同一ip,登录过一次后就会把ssh信息记录在本地的/.ssh/known_hsots文件中,切换该系统后再用ssh访问这台主机就会出现冲突警告,需要手动删除修改known_hsots里面的内容。
有以下两个解决方案:
1.删除修改known_hsots记录,重新登录,使known_hsots生成新的记录;
2.修改配置文件“~/.ssh/config”,添加下两行,
StrictHostKeyCheckingno
UserKnownHostsFile/dev/null
重启服务器。
优缺点:
1.需要每次手动删除文件内容,一些自动化脚本的无法运行(在SSH登陆时失败),但是安全性高;
2.SSH登陆时会忽略known_hsots的访问,但是安全性低;
2.4设置Kits->Device![18.png](/uploads/allimg/240116/0S1554A5-16.png)
1-新建项目时,选择Kits为T113
![19.png](/uploads/allimg/240116/0S155I21-17.png)
2-编译应用
![20.png](/uploads/allimg/240116/0S1551L5-18.png)
3-部署应用到开发板
![21.png](/uploads/allimg/240116/0S1552N0-19.png)
4-提示
部署成功后,可能会提示。kbcommon:ERROR:failedtoadddefaultincludepath/usr/share/X11/xkb
5–运行结果展示
![22.jpg](/uploads/allimg/240116/0S1554I4-20.jpg)