前 言
本文為創(chuàng)龍科技編寫的Linux應用開發(fā)的指引文檔,提供Linux應用開發(fā)環(huán)境、開發(fā)流程等說明,以及對平臺關鍵技術及其支持情況進行簡要介紹。同時本文將對部分通用開發(fā)技術進行說明,其它應用開發(fā)內容請按文中說明選擇對應參考文檔進行閱讀。
當前應用開發(fā)支持情況如下表所示。

在完成開發(fā)環(huán)境搭建后,可參考本文的“Linux常用開發(fā)案例”章節(jié)熟悉基本的應用開發(fā)流程,然后可參考如下文檔進行產品應用開發(fā)。
(1)圖形界面開發(fā):暫無參考;
(2)視頻圖像處理開發(fā):暫無參考。
開發(fā)環(huán)境
Windows開發(fā)環(huán)境:Windows10 64bit
Linux開發(fā)環(huán)境:VMware16.2.5、Ubuntu22.04.4 64bit
LinuxSDK開發(fā)包:LinuxSDK-[版本號](基于SDK_2025.1)
交叉編譯工具鏈:
應用開發(fā):gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu
U-Boot、內核開發(fā):gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu
評估板系統(tǒng)版本:U-Boot-2021.01、Linux-6.1.111、Buildroot-2022.02
備注:本文基于8GByteeMMC、1GByteDDR配置核心板進行演示。
術語表
為便于閱讀,下表對文檔出現(xiàn)的關鍵術語進行解釋;對于廣泛認同釋義的術語,在此不做注釋。

注意事項
(1)無特殊說明情況下,默認使用USB TO UART1接口作為調試串口,使用Linux系統(tǒng)啟動卡啟動系統(tǒng),通過路由器與PC機進行網絡連接。請根據(jù)評估底板絲印將啟動方式選擇撥碼開關撥為011(1~3),此檔位為Micro SD啟動模式。
(2)本文檔涉及的開發(fā)案例位于產品資料“4-軟件資料Demo”路徑下的base-demos目錄。base-demos目錄存放Linux常用開發(fā)案例,案例bin目錄存放可執(zhí)行文件,案例src目錄存放源碼。
1開發(fā)環(huán)境搭建說明
1.1LinuxSDK使用說明
請參考《開發(fā)環(huán)境搭建》的LinuxSDK安裝章節(jié)正確解壓LinuxSDK并安裝相關依賴軟件,然后參考《Linux系統(tǒng)開發(fā)手冊》的LinuxSDK配置與編譯章節(jié)正確編譯LinuxSDK,生成支持應用開發(fā)的交叉編譯工具鏈。
編譯完LinuxSDK后,請執(zhí)行如下命令,完成Linux應用開發(fā)的環(huán)境變量配置,即可進行Linux應用開發(fā)。
Host# export PATH=/home/tronlong/DR1/SDK_2025.1/device/output/anlogic_dr1m90/buildroot/host/bin/:$PATH
圖 1
1.2工具鏈使用說明
通過export命令完成環(huán)境變量配置后,請執(zhí)行如下命令,查看編譯工具鏈版本。
Host# aarch64-linux-gnu-gcc -v
圖 2
2GDB調試說明
GDB為GNU推出的經典命令行調試工具,在Linux系統(tǒng)下廣泛使用。它功能強大,能讓開發(fā)者單步執(zhí)行程序、逐過程或逐語句調試,自由跳入或跳出函數(shù),還能按條件設置斷點,實時查看變量值,精準定位程序問題。
GDB支持多種語言,包括匯編、C/C++、D、Fortran、GO、Objective-C、OpenCL等。此外,它有遠程調試模式,在嵌入式系統(tǒng)調試中優(yōu)勢明顯。借助TCP/IP協(xié)議及專有通信協(xié)議,可讓調試程序的主機與運行程序的目標機跨設備協(xié)作,高效完成調試任務。
2.1調試環(huán)境搭建
請先參考產品資料用戶手冊目錄下的《開發(fā)環(huán)境搭建》和《Linux系統(tǒng)開發(fā)手冊》安裝、編譯LinuxSDK。
GDB調試工具壓縮包gdb-10.2.tar.xz位于LinuxSDK源碼目錄"buildroot/dl/gdb/"下。
圖?3
在DR1工作目錄下執(zhí)行如下命令,創(chuàng)建gdb-tool目錄用于存放GDB調試工具壓縮包,將GDB調試工具包拷貝至該目錄下并解壓。
Host# mkdir gdb-tool
Host# cdgdb-tool
Host# cp /home/tronlong/DR1/SDK_2025.1/buildroot/dl/gdb/gdb-10.2.tar.xz /home/tronlong/DR1/gdb-tool/
Host# tar -xvf gdb-10.2.tar.xz
圖 4
圖 5
執(zhí)行如下命令,配置交叉編譯工具鏈環(huán)境變量,并新建install目錄用于存放編譯生成的GDB調試工具。
Host# export PATH=/home/tronlong/test/sdk/SDK_2025.1/device/output/anlogic_dr1m90/buildroot/host/bin:$PATH
Host# mkdir install
圖 6
執(zhí)行如下命令,進入GDB調試工具包目錄,配置GDB調試工具。
Host# cd gdb-10.2
Host# ./configure --target=aarch64-linux-gnu --prefix=/home/tronlong/DR1/gdb-tool/install/
備注:--target表示GDB調試工具名稱前綴,選擇aarch64-linux-gnu;--prefix表示存放目錄,選擇新建的install目錄。
圖 7
圖?8
執(zhí)行如下命令進行編譯。
Host# make
圖?9
圖?10
執(zhí)行如下命令安裝GDB調試工具,將會在”install/bin”目錄下生成GDB調試工具。
Host# make install
圖?11
圖?12
圖 13
2.2演示程序創(chuàng)建與編譯
在gdb-tool目錄下執(zhí)行如下命令,新建一個GDB調試演示程序。
Host# vitest.c
Host# cat test.c
圖 14
演示程序代碼如下:
#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;
}
執(zhí)行如下命令,進行程序編譯,編譯完成將會生成test可執(zhí)行程序。
備注:編譯時需添加-g參數(shù),生成的可執(zhí)行文件才帶有調試信息。
Host# aarch64-linux-gnu-gcc -g test.c -o test
圖?15
評估板與PC機連接至同一個路由器后進行上電,將編譯后的可執(zhí)行文件test拷貝至評估板文件系統(tǒng)任意目錄下。
Target# lstest
圖?16
2.3調試程序運行
執(zhí)行如下命令,查看虛擬機的IP地址。
Host# ifconfig
圖 17
在評估板文件系統(tǒng)test文件所在路徑下,執(zhí)行如下命令運行gdbserver程序,開啟監(jiān)聽。
備注:192.168.13.81為虛擬機的IP地址;1234為連接的端口號(自行設置);test為將要進行調試的程序。
Target# gdbserver 192.168.13.81:1234 test
圖?18
在虛擬機test文件所在路徑下,執(zhí)行如下命令使用GDB調試工具進行程序調試。
Host# ./install/bin/aarch64-linux-gnu-gdb test
圖?19
執(zhí)行如下命令,連接評估板。192.168.13.47為評估板的IP地址,請以實際情況為準。
(gdb) target remote 192.168.13.47:1234
圖?20
同時,串口調試終端顯示連接成功的相關信息。
圖?21
2.4 程序調試
本章節(jié)主要演示GDB調試的幾個常用命令的使用方法。
2.4.1 list命令
用于列出源碼,簡寫:l。
圖 22
2.4.2 break命令
用于設置斷點,簡寫:b。
分別在main函數(shù)和第10行設置斷點。
圖 23
2.4.3 info breakpoints命令
用于顯示斷點的狀態(tài),簡寫:infob。
圖 24
2.4.4 continue命令
用于恢復程序執(zhí)行,簡寫:c。此命令使GDB恢復程序的執(zhí)行,直至斷點觸發(fā)或程序結束。
圖 25
以上調試過程在第二個斷點中,每輸入一次c命令,將會依次打印arr[]數(shù)組的元素值,然后程序執(zhí)行結束。同時,串口調試終端打印相關信息。
圖 26
2.4.5 print命令
用于打印變量或者變量地址,簡寫:p。
設置斷點后,可依次打印當前變量i的值。
圖 27
以上調試過程在每處斷點中,使用print命令打印變量i的值。同時,串口調試終端打印相關信息。
圖 28
2.4.6 quit命令
退出GDB模式,簡寫:q。當程序調試完成后,使用quit命令退出GDB調試。
圖 29
同時,串口調試終端打印相關信息。
圖 30
由于篇幅過長等原因,部分內容均不逐一展示,如需獲取完整版詳細資料,請關注創(chuàng)龍科技微信公眾號或官網,或者評論區(qū)留言,感謝您的支持!
審核編輯 黃宇
-
Linux
+關注
關注
88文章
11681瀏覽量
218572 -
python
+關注
關注
57文章
4866瀏覽量
89801 -
MQTT
+關注
關注
5文章
730瀏覽量
24933
發(fā)布評論請先 登錄
基于安路DR1M90 FPSoC的Linux系統(tǒng)全流程開發(fā)指南(4)
DR1 系列核心板 PS+PL 異構多核實戰(zhàn)案例手冊(二)
Tiny6410 Linux開發(fā)指南詳解
STM32開發(fā)指南
基于安路DR1M90 FPSoC 的Linux 系統(tǒng)全流程開發(fā)指南(1)
基于安路DR1M90 FPSoC 的Linux 系統(tǒng)全流程開發(fā)指南(3)
DR1M90 評估板 TD-FD 工程與 Linux 多場景應用開發(fā)指南
DR1 系列核心板 PS+PL 異構多核實戰(zhàn)案例手冊(一)
DR1 系列評估板 PS 端裸機與 FreeRTOS 開發(fā)案例手冊
DR1平臺Linux應用開發(fā)指南:含GDB調試、Python及MQTT實戰(zhàn)
評論