飞凌Imx6ull开发板Qt远程调试
相信各位工程师小伙伴都有这样的体会——当调试自己的Qt程序时,尤其是在调整界面显示和整体布局时,需要频繁地制作镜像烧写到核心板里来测试Qt程序是否完善,这样的操作既费时又费力。
今天使用Imx6ull开发板来为大家介绍如何快速进行Qt远程调试。话不多说,我们直接切入正题。
-
编译环境
VM15.5.0 + ubuntu18_04_4
Qt5.6.2 -
开发板硬件说明如下:
核心版版本 :FETMX6ULL-C V1.1
底板版本 :OKMX6ULL-C V1.0
EMMC :8GB (DDR:512M)
7寸显示屏
1.虚拟机网路配置
虚拟机使用桥接模式
虚拟机的IP设置:
网络要ping通开发板
飞凌开发板的ip:192.168.0.232
2.修改工程配置
Step 1:
打开Imx6ull开发板开发环境中的Qt软件
按照以下顺序依次点击:【工具→选项→构建和运行→Debuggers→Add】,选择gdb调试工具路径下的arm-poky-linux-gnueabi-gdb,
飞凌交叉编译环境安装目录:
/opt/fsl-imx-x11/4.1.15-2.0.0/sysroots
gdb工具路径:
/opt/fsl-imx-x11/4.1.15-2.0.0/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/
(注:此路径是自己环境中的路径,大家自己实际环境前的路径会有所差异)
在配置对话框设置gdb路径:
Step 2:
依次点击【工具→选项→构建和运行】
再点击Kit,添加一个新的配置,名称自拟即可,设备类型选择【通用Linux设备】,调试器选择刚刚创建好的Debuggers即可。
Step 3:
点击【工具→选项】
在最左侧选项里选择【设备】,进入【设备】界面后点击Add,添加GenericLinux Device(default for GenericLinux)设备,输入开发板的网络IP以及SSH登录的用户名和密码,再点击Test进行测试,验证连接后配置完成。
Step 4:Qt设备测试连接成功
3.修改项目配置
.Pro文件修改远程部署目录
如果我们要把调试目录放在/forlinx/qtbin目录,在工程的.pro文件下添加:
target.path += /forlinx/qtbin
INSTALLS += target
以支持远程调试。/forlinx/qtbin表示调试程序在目标板中的位置。
会自动体现到编译运行设置中
注意:SFTP上传报127错误,修改scp上传,测试ok
Project设置部署,使用scp命令上传文件(注意目标目录有/)
4.测试开发板SSH登录
飞凌文档默认的SSH账户,密码
使用ssh命令行登录
使用MobaXterm登录
登录左侧可以看到sftp登录没有问题
5.程序运行展示:
6.注意几个坑:
1.使用命令行打开qtcreator
问题现象:
编译报错:
问题分析:
1)虚拟机中的QT应用程序,需要使用命令进行启动,如果使用图标双击启动后编译不成功,具体表现为缺少环境变量。原因未深究。
缺少的环境变量为:OE_QMAKE_CC, OE_QMAKE_CXX等
正确的打开方式:使用命令行(飞凌文档有介绍)
命令行:/home/forlinx/qtcreator-4.5.2/bin/qtcreator.sh &
2.SFTP错误
现象:
问题分析:
https://community.nxp.com/t5/i-MX-Processors/QtCreator-SFTP-initialization-failed/m-p/685376
问题解决:
修改scp测试
测试OK
3.远程运行报错误
现象:
分析:
需要设置export DISPLAY=:0.0 环境变量
参考:https://www.codenong.com/47838027/
解决问题:
将QtCreator->项目-> YourConfiguration-> Run-> RunEnvironment中的环境变量DISPLAY设置为(1)中的已知值。