EDA365电子论坛网
标题: 全志T113开发板Qt远程调试 [打印本页]
作者: 武汉万象奥科 时间: 2024-1-10 17:57
标题: 全志T113开发板Qt远程调试
1引言
0 D$ y7 m% t, V% V+ F& Y通常情况下工程师在调试Qt程序时,需要频繁制作镜像烧录到核心板来测试Qt程序是否完善,这样的操作既费时又费力。这时我们可以通过QtCreator设备功能,定义设备后,在x86_64虚拟机上交叉编译qt程序,将程序远程部署到arm64的机子上,然后远程调试,大大提高开发效率。
& M; M9 Y' d2 f: ?
* X5 h- I( B+ W8 d/ f; Q- u2. 调试环境; S8 z& d* o$ J) B6 h
本文基于HD-T113-EVM评估板进行验证,HD-T113-EVM基于HD-T113-S3核心板设计,具备千兆网口、双路CAN-bus、2路RS-232、2路RS-485、LCD、4G/5G、WiFi、音频等,接口丰富,适用于工业现场应用需求,亦方便用户评估核心板及CPU的性能。
| 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 |
5 P y" c+ B9 w7 D- e
6 J4 K* h: K. I* T5 e
; w6 X# f' k. d) O
- C0 @6 i$ _, p
% M% |* d. a( u
2.1 调试前准备
& U- Y+ h7 j. D2 I' @ \5 S8 q) D使win10主机、arm开发板和linux虚拟机处于同一网段且三者能互相ping通配置虚拟机ip。虚拟机需要按照以下截图步骤进行设置。
0 b( [. _: C& H& |; X- q
0 L2 [7 ^4 }( o4 m2 A, u
& z+ O, S+ `% B5 y4 N
) s# | p, T3 L( `' P2 L3 d) J( J! e
8 \/ m$ }: @1 a5 Y8 N5 S9 b
! H2 D1 Q. `8 g; k- M% @
- A( a+ J3 f/ F/ `: G7 x$ O
* N" y# ]" @1 x j5 O. E) N0 Q
2.2 交叉编译环境设置
6 _2 a2 Q' e% Y, @7 E/ t# n% h9 D5 k5 R0 f0 [+ @
. a" d4 h, U- r, }3 b/ d+ x
/work/T113_Tina5.0/out/t113/hd-t113-evm-emmc/buildroot/buildroot/host/qt5/bin/qmake
: d) q& C( x u
) ^8 Y, O6 ~) z2 [' c
2.2.1 编译器, s) R; A; i' ]$ \; M
' L$ v/ y9 p; W/ ]' E: d/ F
0 `! M) J v# ?# I0 ~5 K3 C! O
GCC
. a& `5 w$ t( E
/work/T113_Tina5.0/out/t113/hd-t113-evm-emmc/buildroot/buildroot/host/bin/arm-linux-gnueabihf-gcc
2 a0 y7 ]4 B$ E" Q' v- o! q* Z$ O
G++
" R4 y; q/ o1 a0 \& Y
/work/T113_Tina5.0/out/t113/hd-t113-evm-emmc/buildroot/buildroot/host/bin/arm-linux-gnueabihf-g++
8 Z+ ^* a$ e% S4 `* X
* x! ]! l9 q$ e" M* T! c
2.2.2 Kits
/ `- g7 ?2 G7 k7 d6 @8 C W; W1 R e$ f" S' Z
; ~: _ M2 V- x4 |2 H% e+ p
$ u* X( F! Z8 q, R
2.3 创建新设备+ N, q5 j' U1 J# g; q( o- g% g! g, u
打开工具->选项->设备,添加新的Generic Linux Device设备。
/ F; o( U1 B* `9 ^
' b6 ?; A9 I1 I2 o `3 a$ H% }, U
7 D8 Y/ d. z: T' O1 Z* C2.3.1 测试成功
8 s5 C" w' P$ f! C8 o* ^4 w7 y! r3 _+ u7 m# r
( W5 q8 ?0 a( D2 U# a
9 C+ o! Z( `2 C' s5 M# t: g# E
2.3.2 测试失败
8 a/ U0 e5 w6 J. v) `( F1 H1 - 错误描述SSH connectionfailure
# `5 V+ V% Q- J3 ~. X
; Y* @" g" }6 `7 x. |6 h
错误分析No routeto tohst找不到主机
: n2 n$ j/ W! I% F; p. d; j! w
解决方案检查虚拟机与开发板ip是否处于同一网段并且能互相ping通
! [( E" t% e" Y( v# A; H, w3 @
3 B# s9 d5 Z* L. s1 b, m& p7 g2 ~
2 - 如虚拟机与开发板可以正常ping通但无法ssh登录开发板
- G9 q1 L0 G% w
, P; N; D& h, i4 C$ t
原因:一台主机上有多个Linux系统,会经常切换,那么这些系统使用同一ip,登录过一次后就会把ssh信息记录在本地的/.ssh/known_hsots文件中,切换该系统后再用ssh访问这台主机就会出现冲突警告,需要手动删除修改known_hsots里面的内容。
4 c# f$ M4 b5 b
( H& j- H. m/ Q/ K' ^; s5 h
有以下两个解决方案:
& m2 P+ v( h* `' j! b
1.删除修改known_hsots记录,重新登录,使known_hsots生成新的记录;
0 _) y# h4 E2 h$ z8 z& c4 a
2.修改配置文件“~/.ssh/config”,添加下两行,
& L1 [# S0 L: x1 F5 h( K& g% w
StrictHostKeyChecking no
* O! q8 r1 `4 G) a" f
UserKnownHostsFile /dev/null
2 u4 |- |. c2 d1 Q3 Y7 O+ H: V1 j! Q
重启服务器。
: ]& B6 ` l7 O% i2 {; p' r' {) G
5 \3 h+ d1 d0 ]2 a
优缺点:
9 x3 X0 P4 `+ S, e
1.需要每次手动删除文件内容,一些自动化脚本的无法运行(在SSH登陆时失败),但是安全性高;
% U: n2 d k& @3 C
2.SSH登陆时会忽略known_hsots的访问,但是安全性低;
7 u2 ? N! H7 C. G' I
2 {( G g' k- Y6 P$ |
7 K1 N7 `- d8 A& O1 n2.4 设置Kits->Device/ v/ I! I; `+ Y, F @0 w
4 @, x, E {8 t7 R0 T
- u- d# `+ Z, E+ E
6 G# _' R( c# C" M0 f! [2.5 部署应用" q* K6 E9 g9 I
1 - 新建项目时,选择Kits为T113
# n, h T* E0 m/ Q: s6 m
# Y/ X) Y% i4 C6 [: [% A+ I
2 - 编译应用
6 `6 p2 n" u4 X* U
k' `5 C8 b, w
3 - 部署应用到开发板
0 I1 n j5 ?4 r: h
7 B$ w) J$ N3 X
4 - 提示
* ~. `4 o2 ^2 R- e2 n( u: v
部署成功后,可能会提示。kbcommon: ERROR: failed to add defaultinclude path /usr/share/X11/xkb
P1 M' m& w9 V0 y# n! U2 O
5–运行结果展示
( }4 x+ g( _7 o6 d% ?% z) b
作者: ad_gao 时间: 2024-1-10 18:42
开发板有详细资料吗
| 欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) |
Powered by Discuz! X3.2 |