首页 > 其他分享 >全志T113开发板Qt远程调试

全志T113开发板Qt远程调试

时间:2024-01-10 18:01:19浏览次数:20  
标签:buildroot Qt 虚拟机 hsots 全志 开发板 t113 T113

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

全志T113开发板Qt远程调试_linux

 

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


全志T113开发板Qt远程调试_开发板_02

全志T113开发板Qt远程调试_核心板_03



    

全志T113开发板Qt远程调试_linux_04

全志T113开发板Qt远程调试_linux_05



2.2       交叉编译环境设置


全志T113开发板Qt远程调试_开发板_06


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


2.2.1  编译器


全志T113开发板Qt远程调试_开发板_07


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


全志T113开发板Qt远程调试_开发板_08


2.3       创建新设备

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


全志T113开发板Qt远程调试_核心板_09

全志T113开发板Qt远程调试_核心板_10

全志T113开发板Qt远程调试_linux_11

全志T113开发板Qt远程调试_开发板_12

全志T113开发板Qt远程调试_核心板_13


2.3.1  测试成功


全志T113开发板Qt远程调试_开发板_14


2.3.2  测试失败

1 - 错误描述SSH connectionfailure


全志T113开发板Qt远程调试_核心板_15


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


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



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


全志T113开发板Qt远程调试_开发板_16


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


全志T113开发板Qt远程调试_开发板_17


2.5       部署应用

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


全志T113开发板Qt远程调试_linux_18


2 - 编译应用


全志T113开发板Qt远程调试_linux_19


3 - 部署应用到开发板


全志T113开发板Qt远程调试_开发板_20


4 - 提示


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


5–运行结果展示

全志T113开发板Qt远程调试_核心板_21

标签:buildroot,Qt,虚拟机,hsots,全志,开发板,t113,T113
From: https://blog.51cto.com/u_15595051/9183864

相关文章

  • 全志T113开发板Qt远程调试
    1引言 通常情况下工程师在调试Qt程序时,需要频繁制作镜像烧录到核心板来测试Qt程序是否完善,这样的操作既费时又费力。这时我们可以通过QtCreator设备功能,定义设备后,在x86_64虚拟机上交叉编译qt程序,将程序远程部署到arm64的机子上,然后远程调试,大大提高开发效率。  2. 调试......
  • 迅为iTOP-3568开发板助力实时系统,Preemption与Xenomai
    iTOP-RK3568开发板使用手册上新,后续资料会不断更新,不断完善,帮助用户快速入门,大大提升研发速度。iTOP-RK3568开发板支持了Preemption和Xenomai实时系统。实时系统以其卓越的实时性能,为用户提供出色的体验,《iTOP-3568开发板实时系统使用手册》将对实时系统的选择、编译烧写、测试等方......
  • QT:绘图
    QPainter能够实现绘制二维图形,适合用于绘制复杂度不高的固定图形,并且不能实现图项的选择、编辑、拖放、修改等交互功能对于需要绘制大量的、需要交互的图形,可以使用GraphicsViewItem QGraphicsEllipsetItem椭圆QGraphicsLineItem 直线QGraphicsPathItem......
  • C++和Qt面试题(精简版)
    C++面试题什么是c++?请简述它的优点和缺点c++是一种面向对象的编程语言,实现了继承、抽象、多态和封装等概念。**优点:**能够开发复杂的应用程序,提供了极大地灵活性,让开发者能够控制资源的使用和可用性,从而最大限度的提高性能。**缺点:**由于C++太过自由,导致指针对内存操作时可能造成内......
  • 迅为RK3568开发板Android11/12/Linux编译驱动到内核
    在平时的驱动开发中,经常需要在内核中配置某种功能,为了方便大家开发和学习,本小节讲解如何在内核中添加驱动。具体的讲解原理讲解请参考本手册的驱动教程。Android11源码如果想要修改内核,可以运行以下命令进行修改:cdkernel/makeARCH=arm64rockchip_defconfigmakeARCH=arm64men......
  • 将开发板设计拆解为10个部分,教你DIY属于年轻人的第一块Linux开发板
    本项目是基于全志F1C200S设计的开源屏幕开发板,设计的目标是提供一个低成本、超迷你且适合Linux开发的平台,特别是针对屏幕接口的支持。项目简介开发板板载16Mnorflash,主控芯片采用F1C200S,内置64MDRAM。同时附带USBHost接口以及USBtype-c口,以及CH340串口转USB芯片,用于开发调试使......
  • Qt中QItemEditorFactory的使用
    一般而言QItemEditorFactory是用于替换Qt中已有的数据类型的编辑器控件。因为如果是自定义类型的话,用它也比较复杂,还不如直接自定义一个新的QStyledItemDelegate。尽管如此,本文也给出一个自定义数据类型的例子,用于解释QItemEditorFactory的用法。本例子开发环境是VS2017和Qt5.9。......
  • Qt QProcess进程间调用及交互通信,完整示例
    1.概述使用Qt进行应用程序开发,主要是通过QProcess类用于启动外部程序并与其进行通信.1.1.运行进程要启动进程,需要运行的程序的名称和命令行参数作为参数传递给start()。参数以QStringList形式提供。start()方法原型:voidstart(constQString&program,constQStringList&a......
  • Qt 快速读取大文件最后一行内容
    0.前言有时候根据需求,需要读取文本的最后一行内容。如果是小文本,按照顺序读,然后取最后一行就Ok;但如果是大文本,即使是放到线程里跑,读取到最后一行也会有延迟,比较耗时。1.解决方案查看QFile帮助手册,其有boolseek(qint64pos);意思就是查找设备中的位置。成功时返回true;否......
  • 迅为RK3588开发板编译 Buildroot单独编译图形化界面二
    第二步:编译kernel首先在linux源码目录下输入以下命令进入编译的UI界面,进入之后如下所示:./build.sh然后将光标移动到第二个kernel,点击回车即可开始kernel内核的编译,编译过程如下所示:内核编译完如下图所示:编译完成后映像文件会打包成boot.img放到kernel目录。如下图......