1.2 通過網絡調試Qt工程
本小節使用led_control案例演示通過網絡調試Qt工程的方法。
(1)配置環境
點擊"Devices -> Devices -> Add",選擇"Generic Linux Device",然后點擊"Start Wizard"確認。
圖?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 >"。
圖?32
然后點擊Finish連接單板機。
圖?33
圖?34
再次查看Devices,可見添加一個了新設備。
圖?35
請打開led_control工程源碼目錄的led_control.pro文件,并在文件中添加以下內容。該內容作用是將編譯生成的led_control可執行程序安裝至單板機系統的"/root/"目錄下。
qnx: target.path = /root
else: unix:!android: target.path = /root
!isEmpty(target.path): INSTALLS += target
圖?36
點擊"Projects -> Run -> Add Deploy Step",選中"Deploy files via rsync",通過rsync部署文件。
圖?37
點擊"Projects -> Run",選中"System Environment",點擊"Fetch Device Environment"獲取設備環境。
圖?38
點擊調試按鈕。因目前未設置斷點,所以無任何信息打印。
圖?39
(2)設置斷點
打開led_control工程源碼目錄的mainwindow.cpp文件,點擊代碼行號的左側邊框欄即可設置斷點,或直接按下F9進行設置。斷點將以紅色實心圓點顯示,表示程序執行到該行時將暫停。本次以分別在58、156處設置斷點為例進行演示。
圖?40
圖?41
(3)啟動調試
點擊工具欄的調試按鈕(或按F5),觀察程序運行。程序會執行到第一個斷點處暫停,此時可觀察變量的值,調用堆棧、線程狀態等信息。
圖?42
(4)調試操作
a)單步調試
使用單步跳過(F10)、單步進入(F11),單步跳出(Shift+F11)按鍵來逐行執行代碼,觀察程序的執行流程。按下F11可以進入函數里面進行調試,按下"Shift+F11"可跳出。可見黃色箭頭已跳至UpdateLabelStatus函數。
圖?43
按下F10進行調試,請重復按下F10,直到界面顯示即停下。
圖?44
圖?45
然后點擊led_control程序按鍵,可通過狀態欄查看信息。
b)查看變量和表達式
點擊led_control程序按鍵,可見按鈕被按下時,LED的值為0。
圖?46
c)繼續執行
目前斷點已是最后一個,若還存在斷點,則按下F10讓程序繼續執行,直到遇到下一個斷點或者程序結束。
(5)調試結束
當調試完后,點擊工具欄上的停止按鈕結束當前會話。
圖?47
(6)分析調試結果
根據調試過程中觀察到的信息,分析程序的執行流程和潛在問題,并運行相應的修改和優化。
1.3 基于命令行方式開發
本章節以led_control案例為例,演示基于命令行方式開發Qt程序的方法。
進入led_control工程源碼目錄,配置交叉編譯工具鏈環境變量,執行qmake命令生成Makefile文件,再執行make命令編譯生成可在單板機上正常運行的ARM端Qt程序鏡像,如下圖所示。
Host# source /home/tronlong/RK3562/environment
Host# qmake
Host# make
圖48
圖49
1.4 Qt程序自啟動說明
本章節以led_control案例為例,演示Qt程序自啟動功能。
請將led_control案例bin目錄下可執行程序led_control拷貝至單板機系統"/root/"目錄。單板機上電啟動進入系統后,執行如下命令,在"/etc/default/"下新建qtapp文件,并添加以下內容設置Qt程序運行依賴環境變量。
Target# vi /etc/default/qtapp
圖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
圖51
執行如下命令,在"/etc/systemd/system/"目錄下新建qtapp.service文件,并添加以下內容設置Qt程序自啟動服務依賴環境以及Qt程序的路徑。
Target# vi/etc/systemd/system/qtapp.service
圖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
圖53
執行如下命令,開啟Qt程序自啟動,并重啟單板機。
Target# systemctl enable qtapp
Target# reboot
圖54
單板機重啟后,Qt程序將會自啟動。Qt程序運行成功后,可觀察到LVDS顯示屏顯示LED控制界面,可通過點擊下方的按鈕控制LED的亮滅。如下圖所示。
圖55
如需取消單板機Qt程序自啟動,請執行如下命令。
Target# systemctl disable qtapp
圖56
由于篇幅過長等原因,部分內容均不逐一展示,如需獲取完整版詳細資料,請關注Tronlong創龍科技微信公眾號或官網,或者評論區留言,感謝您的支持!
審核編輯 黃宇
-
單板機
+關注
關注
1文章
42瀏覽量
18868 -
LVGL
+關注
關注
2文章
124瀏覽量
4557 -
RK3562
+關注
關注
0文章
99瀏覽量
689
發布評論請先 登錄
RK3562 單板機 Linux-RT 系統開發指南:內核配置、實時性優化與案例詳解
單片機與單板機的區別
SBC8100單板機設計及使用指南
RK3562開發板:安卓Linux開發從入門到精通(二)
新一代低價開發板芯片RK3562來啦! — 觸覺智能RK3562開發板
RK3562單板機系統使用與開發手冊:基礎操作、升級部署與工具鏈配置(一)
3562 單板機 Linux 系統固化完全指南:從 SD 卡啟動到 eMMC 永久部署
RK3562 單板機系統開發完全手冊:U-Boot/Kernel/Rootfs 開發與性能優化
RK3562 單板機 Linux 應用開發實戰手冊:LED/CAN/TCP/UART 案例與 Python 開發(二)
RK3562 單板機圖形用戶界面開發完全手冊:Qt Creator 配置與 LVGL 案例詳解(二)
評論