外汇资讯

RK3562 单板机图形用户界面开发完全手册:Qt Creator 配置与 LVGL 案例详解(二)

2026-02-28 | 分类: 外汇资讯 | 查看: 5845

1.2 通过网络调试Qt工程

本小节使用led_control案例演示通过网络调试Qt工程的方法。

(1)配置环境

点击"Devices -> Devices -> Add",选择"Generic Linux Device",然后点击"Start Wizard"确认。

wKgZO2mhA3KAG5WUAAGr33tM4X8038.png图 30

在弹出的界面中,将"The name to identify this configuration"修改为"RK3562-Device","The device's host name or IPaddress"修改为单板机IP地址,本次操作单板机IP地址为"192.168.13.30","The usernameto log into the device"修改为"root",然后点击"Next >"。

图 31

弹出配置密钥界面,此处无需密钥文件,配置为空即可,继续点击"Next >"。

wKgZPGmhA4qAYm9XAADYz7WQZCQ779.png图 32

然后点击Finish连接单板机。

图 33

wKgZPGmhA5SAKPgzAACllmUWZms375.png图 34

再次查看Devices,可见添加一个了新设备。

wKgZPGmhA6WAKXnvAAHkSzBROyI602.png图 35

请打开led_control工程源码目录的led_control.pro文件,并在文件中添加以下内容。该内容作用是将编译生成的led_control可执行程序安装至单板机系统的"/root/"目录下。

qnx: target.path = /root

else: unix:!android: target.path = /root

!isEmpty(target.path): INSTALLS += target

wKgZPGmhA62ATVhdAAIc1BLdhTc935.png图 36

点击"Projects -> Run -> Add Deploy Step",选中"Deploy files via rsync",通过rsync部署文件。

wKgZO2mhA7WAUmLFAAK-ZHIKgIU500.png图 37

点击"Projects -> Run",选中"System Environment",点击"Fetch Device Environment"获取设备环境。

wKgZO2mhA72ADVOIAALaPGk3E60492.png图 38

点击调试按钮。因目前未设置断点,所以无任何信息打印。

wKgZPGmhA8aAZTJJAAMElvQLjzc560.png图 39

(2)设置断点

打开led_control工程源码目录的mainwindow.cpp文件,点击代码行号的左侧边框栏即可设置断点,或直接按下F9进行设置。断点将以红色实心圆点显示,表示程序执行到该行时将暂停。本次以分别在58、156处设置断点为例进行演示。

wKgZO2mhA8-AHUuOAAAsJ8El6D4842.png图 40

wKgZPGmhA8-APru6AAAe3tzlE1Q404.png图 41

(3)启动调试

点击工具栏的调试按钮(或按F5),观察程序运行。程序会执行到第一个断点处暂停,此时可观察变量的值,调用堆栈、线程状态等信息。

wKgZPGmhA_GAdKY7AAPo-eW98_U046.png图 42

(4)调试操作

a)单步调试

使用单步跳过(F10)、单步进入(F11),单步跳出(Shift+F11)按键来逐行执行代码,观察程序的执行流程。按下F11可以进入函数里面进行调试,按下"Shift+F11"可跳出。可见黄色箭头已跳至UpdateLabelStatus函数。

wKgZPGmhA_qAGwPWAAOtz1yisXE107.png图 43

按下F10进行调试,请重复按下F10,直到界面显示即停下。

wKgZPGmhBAOAS-REAALSGLuXa5E892.png图 44

wKgZO2mhBAOAV1mlAAYr8t159SQ690.png图 45

然后点击led_control程序按键,可通过状态栏查看信息。

b)查看变量和表达式

点击led_control程序按键,可见按钮被按下时,LED的值为0。

wKgZO2mhBBKAbdlXAAO1_cSOaR0731.png图 46

c)继续执行

目前断点已是最后一个,若还存在断点,则按下F10让程序继续执行,直到遇到下一个断点或者程序结束。

(5)调试结束

当调试完后,点击工具栏上的停止按钮结束当前会话。

wKgZPGmhBBuALJ4PAAO5GkRYWEw590.png图 47

(6)分析调试结果

根据调试过程中观察到的信息,分析程序的执行流程和潜在问题,并运行相应的修改和优化。

1.3 基于命令行方式开发

本章节以led_control案例为例,演示基于命令行方式开发Qt程序的方法。

进入led_control工程源码目录,配置交叉编译工具链环境变量,执行qmake命令生成Makefile文件,再执行make命令编译生成可在单板机上正常运行的ARM端Qt程序镜像,如下图所示。

Host# source /home/tronlong/RK3562/environment

Host# qmake

Host# make

wKgZO2mhBCmASI1aAAFa3ZGhRpA449.png图48

wKgZO2mhBCmAEgGwAADETl1-zIk773.png图49

1.4 Qt程序自启动说明

本章节以led_control案例为例,演示Qt程序自启动功能。

请将led_control案例bin目录下可执行程序led_control拷贝至单板机系统"/root/"目录。单板机上电启动进入系统后,执行如下命令,在"/etc/default/"下新建qtapp文件,并添加以下内容设置Qt程序运行依赖环境变量。

Target# vi /etc/default/qtapp

wKgZPGmhBDiAVn_DAAAGAIMXnQ8153.png图50

添加内容如下:

UNTIME_DIR=/run/user/0

DISPLAY=":0"

QT_ROOT=/usr/lib/qt-5.15.10

QT_QPA_FONTDIR=/usr/share/fonts

QT_QPA_PLATFORM_PLUGIN_PATH=/usr/lib/qt-5.15.10/plugins

QT_PLUGIN_PATH=/usr/lib/qt-5.15.10/plugins

LD_LIBRARY_PATH=/usr/lib/qt-5.15.10/lib:/usr/lib/qt-5.15.10/plugins/platform

wKgZPGmhBEGAMfuQAAAeZhYCmNE210.png图51

执行如下命令,在"/etc/systemd/system/"目录下新建qtapp.service文件,并添加以下内容设置Qt程序自启动服务依赖环境以及Qt程序的路径。

Target# vi/etc/systemd/system/qtapp.service

wKgZPGmhBEeAVqEyAABiwLBrDNA465.png图52

添加内容如下:

[Unit]

Description=Qt App Service

Requisite=display-manager.service

After=display-manager.service

[Service]

EnvironmentFile=-/etc/default/qtapp

ExecStart=/root/led_control

Restart=always

[Install]

WantedBy=multi-user.target

wKgZO2mhBFOAZ5R0AAAfPQdhRBk750.png图53

执行如下命令,开启Qt程序自启动,并重启单板机。

Target# systemctl enable qtapp

Target# reboot

wKgZPGmhBF2AenWhAAAUCaqarwo768.png图54

单板机重启后,Qt程序将会自启动。Qt程序运行成功后,可观察到LVDS显示屏显示LED控制界面,可通过点击下方的按钮控制LED的亮灭。如下图所示。

wKgZO2mhBGSASB8YAAbbwtrqB98277.png图55

如需取消单板机Qt程序自启动,请执行如下命令。

Target# systemctl disable qtapp

wKgZPGmhBHOAE9D2AAAPvmf-XaM270.png图56

由于篇幅过长等原因,部分内容均不逐一展示,如需获取完整版详细资料,请关注Tronlong创龙科技微信公众号或官网,或者评论区留言,感谢您的支持!

审核编辑 黄宇

关键词: