前言
本文檔為Linux應用開發的指引文檔,提供Linux應用開發環境、開發流程等說明,以及對平臺關鍵技術及其支持情況進行簡要介紹。
當前應用開發支持情況如下表所示。

在完成開發環境搭建后,可參考本文的“Linux常用開發案例”章節熟悉基本的應用開發流程,然后可參考如下文檔進行產品應用開發。
(1)圖形界面開發:參考《圖形用戶界面(GUI)開發手冊》,其中包含Qt和LVGL的開發指引;
(2)視頻圖像處理開發:參考《視頻圖像處理開發手冊》;
(3)Docker開發:參考《Docker開發手冊》,主要介紹Docker安裝、構建鏡像與下載鏡像等;
(4)NPU開發:參考《NPU開發手冊》;
(5)ROS2開發:參考《ROS2開發手冊》,主要演示ROS系統(版本:ROS2 Humble)使用說明;
(6)Modbus開發:參考《Modbus開發手冊》,主要介紹Modbus協議開發案例;
(7)EtherCAT主站開發:參考《EtherCAT開發手冊》,主要演示EtherCAT主站的伺服電機實時控制。
開發環境
Windows開發環境:Windows10、Windows764bit

Linux開發環境:VMware16.2.5、Ubuntu20.04.6 64bit
系統版本:Tronlong-Desktop 20.04、Linux-5.10.209、U-Boot-2017.09
sysroot:rk3562-Tronlong-Desktop-20.04-sysroot-[版本號].tar.gz
應用開發交叉編譯工具:gcc-aarch64-linux-gnu_9.4.0.tar.gz
備注:本文基于2GByte LPDDR4X、16GByte eMMC配置單板機進行演示。
術語表
為便于閱讀,下表對文檔出現的關鍵術語進行解釋;對于廣泛認同釋義的術語,在此不做注釋。
注意事項
無特殊說明情況下,本文默認從eMMC啟動系統,使用DEBUG作為調試串口,使用欣瑞達的XT070YTA23R_A6 LVDS電阻屏作為顯示輸出。
圖1
1開發環境搭建說明
1.1安裝應用開發交叉編譯工具鏈
本文主要提供適配應用開發的交叉編譯工具鏈安裝方式,包括網絡安裝、本地安裝,請根據實際環境選擇其中一種方式進行安裝。
(1)通過網絡安裝
Host# sudo apt update
Host# sudo apt install gcc-aarch64-linux-gnu g++-aarch64-linux-gnu
圖2
圖3
安裝完成后,可執行如下命令查看交叉編譯工具鏈版本號。
Host# aarch64-linux-gnu-gcc --version
Host# aarch64-linux-gnu-g++ --version
圖4
可以看到交叉編譯工具版本為9.4.0及以上版本即為安裝成功,同時交叉編譯工具鏈默認安裝在"/usr/bin/"目錄下。
Host# ls /usr/bin/aarch64-linux-gnu-*
圖5
(2)本地安裝
我司提供的交叉編譯鏈壓縮包位于產品資料“4-軟件資料LinuxTools”目錄下,請將其拷貝至上位機Ubuntu系統任意路徑,執行如下命令進行安裝。
Host# tar -zxf gcc-aarch64-linux-gnu_9.4.0.tar.gz
Host# sudo dpkg -i gcc-aarch64-linux-gnu_9.4.0/*.deb
圖6
圖7
安裝完成后,可執行如下命令查看具體版本號。
Host# aarch64-linux-gnu-gcc --version
Host# aarch64-linux-gnu-g++ --version
圖8
可以看到交叉編譯工具版本號為9.4.0及以上版本即為安裝成功,同時應用交叉編譯工具鏈默認安裝在"/usr/bin/"目錄下。
Host# ls /usr/bin/aarch64-linux-gnu-*
圖9
1.2安裝sysroot
我司提供的sysroot壓縮包主要包含應用開發時所需的庫(常用開發庫、Qt庫等),適用于Linux系統應用開發。
請將產品資料“4-軟件資料LinuxLinuxSDK”目錄下的sysroot壓縮包拷貝至上位機Ubuntu系統"/home/tronlong/RK3562/"目錄。執行如下命令,將其解壓,解壓完成后會在當前目錄下生成一個"sysroot"目錄和environment文件,"sysroot"目錄包含sysroot相關文件。
備注:sysroot壓縮包版本以實際情況為準。
Host# tar -zxf rk3562-Tronlong-Desktop-20.04-sysroot-v1.0.tar.gz
圖10
圖11
執行如下命令,設置交叉編譯工具鏈和sysroot環境變量。
備注:由于Linux應用開發與Linux系統開發使用不同的交叉編譯工具鏈,因此執行如下命令完成應用開發環境變量配置后,當前Terminal命令行終端將不再適用U-Boot、內核開發。如需進行U-Boot、內核開發,請另行打開一個Terminal命令行終端。
Host# source /home/tronlong/RK3562/environment
Host# export
圖12
圖13
2GDB調試說明
GDB為GNU推出的經典命令行調試工具,在Linux系統下廣泛使用。它功能強大,能讓開發者單步執行程序、逐過程或逐語句調試,自由跳入或跳出函數,還能按條件設置斷點,實時查看變量值,精準定位程序問題。
GDB支持多種語言,包括匯編、C/C++、D、Fortran、GO、Objective-C、OpenCL等。此外,它有遠程調試模式,在嵌入式系統調試中優勢明顯。借助TCP/IP協議及專有通信協議,可讓調試程序的主機與運行程序的目標機跨設備協作,高效完成調試任務。
2.1調試環境搭建
在RK3562工作目錄下執行如下命令,創建gdb-test目錄并安裝GDB調試工具。
Host# mkdir gdb-test
Host# sudo apt install gdb gdbserver gdb-multiarch -y
圖14
2.2演示程序創建與編譯
執行如下命令,進入gdb-test目錄并新建一個GDB調試演示程序。
Host# cd gdb-test
Host# vi test.c
圖15
輸入以下內容:
#include
void show() {
printf("shown");
}
int main(int argc, char *argv[])
{
int arr[4] = {1, 2, 3, 4};
int i = 0;
for (i = 0; i < 4; i++) {
printf("arr[%d]: %dn", i, arr[i]);
}
show();
return 0;
}
圖16
執行如下命令,進行程序編譯,編譯完成將會生成test可執行程序。
Host# aarch64-linux-gnu-gcc -g test.c -o test
備注:編譯時需添加-g參數,生成的可執行文件才帶有調試信息。
圖17
請將單板機與PC機連接至同一個路由器,使用Type-C線將單板機的DEBUG調試串口連接至PC機,然后將單板機上電啟動。將編譯后的test可執行文件拷貝至單板機系統任意目錄下。
Target# ls
圖18
2.3調試程序運行
執行如下命令,查看虛擬機的IP地址。
Host# ifconfig
圖19
在單板機系統test文件所在路徑下,執行如下命令運行gdbserver程序,開啟監聽。
備注:192.168.13.50為虛擬機的IP地址;1234為連接的端口號(自行設置);test為將要進行調試的程序。
Target# gdbserver 192.168.13.50:1234 test
圖20
在虛擬機系統test文件所在路徑下,執行如下命令使用GDB調試工具進行調試。
Host# gdb-multiarch test
圖21
執行如下命令,連接單板機。192.168.13.12為單板機的IP地址,請以實際情況為準。
(gdb) target remote 192.168.13.12:1234
圖22
同時,單板機DEBUG調試串口打印連接成功的相關信息。
圖23
2.4程序調試
本章節主要演示GDB調試的幾個常用命令的使用方法。
2.4.1list命令
用于列出源碼,簡寫:l。
圖24
2.4.2break命令
用于設置斷點,簡寫:b。
分別在main函數和第10行設置斷點。
圖25
2.4.3info breakpoints命令
用于顯示斷點的狀態,簡寫:infob。
圖26
2.4.4continue命令
用于恢復程序執行,簡寫:c。此命令使GDB恢復程序的執行,直至斷點觸發或程序結束。
圖27
以上調試過程在第二個斷點中,每輸入一次c命令,將會依次打印arr[]數組的元素值,然后程序執行結束。同時,單板機DEBUG調試串口打印相關信息。
圖28
2.4.5print命令
用于打印變量或者變量地址,簡寫:p。
設置斷點后,可依次打印當前變量i的值。
圖29
圖30
以上調試過程在每處斷點中,使用print命令打印變量i的值。同時,單板機DEBUG調試串口打印相關信息。
圖31
2.4.6quit命令
退出GDB模式,簡寫:q。當程序調試完成后,使用quit命令退出GDB調試。
圖32
同時,單板機DEBUG調試串口打印相關信息。
圖33
審核編輯 黃宇
-
嵌入式
+關注
關注
5198文章
20443瀏覽量
333990 -
Linux
+關注
關注
88文章
11758瀏覽量
219009 -
python
+關注
關注
57文章
4876瀏覽量
90025 -
RK3562
+關注
關注
0文章
99瀏覽量
689
發布評論請先 登錄
RK3562 單板機圖形用戶界面開發完全手冊:Qt Creator 配置與 LVGL 案例詳解(二)
RK3562 單板機圖形用戶界面開發完全手冊:Qt Creator 配置與 LVGL 案例詳解(一)
RK3562 單板機 Linux 應用開發實戰手冊:LED/CAN/TCP/UART 案例與 Python 開發(二)
RK3562 單板機系統開發完全手冊:U-Boot/Kernel/Rootfs 開發與性能優化
3562 單板機 Linux 系統固化完全指南:從 SD 卡啟動到 eMMC 永久部署
RK3562單板機系統使用與開發手冊:基礎操作、升級部署與工具鏈配置(一)
迅為RK3562開發板2900頁+資料_多種系統適配全開源
【米爾-RK3562開發板試用評測】開箱測評
Linux文件系統打包及鏡像制作,觸覺智能RK3562開發板演示
RK3562 單板機 Linux 應用開發實戰手冊:LED/CAN/TCP/UART 案例與 Python 開發(一)
評論