91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

DR1平臺(tái)Linux應(yīng)用開(kāi)發(fā)指南:含GDB調(diào)試、Python及MQTT實(shí)戰(zhàn)

Tronlong創(chuàng)龍科技 ? 來(lái)源:Tronlong創(chuàng)龍科技 ? 作者:Tronlong創(chuàng)龍科技 ? 2026-01-05 16:48 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

前 言

本文為創(chuàng)龍科技編寫的Linux應(yīng)用開(kāi)發(fā)的指引文檔,提供Linux應(yīng)用開(kāi)發(fā)環(huán)境、開(kāi)發(fā)流程等說(shuō)明,以及對(duì)平臺(tái)關(guān)鍵技術(shù)及其支持情況進(jìn)行簡(jiǎn)要介紹。同時(shí)本文將對(duì)部分通用開(kāi)發(fā)技術(shù)進(jìn)行說(shuō)明,其它應(yīng)用開(kāi)發(fā)內(nèi)容請(qǐng)按文中說(shuō)明選擇對(duì)應(yīng)參考文檔進(jìn)行閱讀。

當(dāng)前應(yīng)用開(kāi)發(fā)支持情況如下表所示。

wKgZO2lbdamAQEqRAAAW4Efnnak361.png

在完成開(kāi)發(fā)環(huán)境搭建后,可參考本文的“Linux常用開(kāi)發(fā)案例”章節(jié)熟悉基本的應(yīng)用開(kāi)發(fā)流程,然后可參考如下文檔進(jìn)行產(chǎn)品應(yīng)用開(kāi)發(fā)。

(1)圖形界面開(kāi)發(fā):暫無(wú)參考;

(2)視頻圖像處理開(kāi)發(fā):暫無(wú)參考。

開(kāi)發(fā)環(huán)境

Windows開(kāi)發(fā)環(huán)境:Windows10 64bit

Linux開(kāi)發(fā)環(huán)境:VMware16.2.5、Ubuntu22.04.4 64bit

LinuxSDK開(kāi)發(fā)包:LinuxSDK-[版本號(hào)](基于SDK_2025.1)

交叉編譯工具鏈:

應(yīng)用開(kāi)發(fā):gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu

U-Boot、內(nèi)核開(kāi)發(fā):gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu

評(píng)估板系統(tǒng)版本:U-Boot-2021.01、Linux-6.1.111、Buildroot-2022.02

備注:本文基于8GByteeMMC、1GByteDDR配置核心板進(jìn)行演示。

術(shù)語(yǔ)表

為便于閱讀,下表對(duì)文檔出現(xiàn)的關(guān)鍵術(shù)語(yǔ)進(jìn)行解釋;對(duì)于廣泛認(rèn)同釋義的術(shù)語(yǔ),在此不做注釋。

wKgZPGlbdbmAbiiSAAA1gnmDsns568.png

注意事項(xiàng)

(1)無(wú)特殊說(shuō)明情況下,默認(rèn)使用USB TO UART1接口作為調(diào)試串口,使用Linux系統(tǒng)啟動(dòng)卡啟動(dòng)系統(tǒng),通過(guò)路由器與PC機(jī)進(jìn)行網(wǎng)絡(luò)連接。請(qǐng)根據(jù)評(píng)估底板絲印將啟動(dòng)方式選擇撥碼開(kāi)關(guān)撥為011(1~3),此檔位為Micro SD啟動(dòng)模式。

(2)本文檔涉及的開(kāi)發(fā)案例位于產(chǎn)品資料“4-軟件資料Demo”路徑下的base-demos目錄。base-demos目錄存放Linux常用開(kāi)發(fā)案例,案例bin目錄存放可執(zhí)行文件,案例src目錄存放源碼。

1開(kāi)發(fā)環(huán)境搭建說(shuō)明

1.1LinuxSDK使用說(shuō)明

請(qǐng)參考《開(kāi)發(fā)環(huán)境搭建》的LinuxSDK安裝章節(jié)正確解壓LinuxSDK并安裝相關(guān)依賴軟件,然后參考《Linux系統(tǒng)開(kāi)發(fā)手冊(cè)》的LinuxSDK配置與編譯章節(jié)正確編譯LinuxSDK,生成支持應(yīng)用開(kāi)發(fā)的交叉編譯工具鏈。

編譯完LinuxSDK后,請(qǐng)執(zhí)行如下命令,完成Linux應(yīng)用開(kāi)發(fā)的環(huán)境變量配置,即可進(jìn)行Linux應(yīng)用開(kāi)發(fā)。

Host# export PATH=/home/tronlong/DR1/SDK_2025.1/device/output/anlogic_dr1m90/buildroot/host/bin/:$PATH

wKgZPGlbdhWAJI-MAABNALVCKf4451.png圖 1

1.2工具鏈?zhǔn)褂谜f(shuō)明

通過(guò)export命令完成環(huán)境變量配置后,請(qǐng)執(zhí)行如下命令,查看編譯工具鏈版本。

Host# aarch64-linux-gnu-gcc -v

wKgZO2lbdj6Ad7ahAAHO0dHHpd0440.png圖 2

2GDB調(diào)試說(shuō)明

GDB為GNU推出的經(jīng)典命令行調(diào)試工具,在Linux系統(tǒng)下廣泛使用。它功能強(qiáng)大,能讓開(kāi)發(fā)者單步執(zhí)行程序、逐過(guò)程或逐語(yǔ)句調(diào)試,自由跳入或跳出函數(shù),還能按條件設(shè)置斷點(diǎn),實(shí)時(shí)查看變量值,精準(zhǔn)定位程序問(wèn)題。

GDB支持多種語(yǔ)言,包括匯編、C/C++、D、Fortran、GO、Objective-C、OpenCL等。此外,它有遠(yuǎn)程調(diào)試模式,在嵌入式系統(tǒng)調(diào)試中優(yōu)勢(shì)明顯。借助TCP/IP協(xié)議及專有通信協(xié)議,可讓調(diào)試程序的主機(jī)與運(yùn)行程序的目標(biāo)機(jī)跨設(shè)備協(xié)作,高效完成調(diào)試任務(wù)。

2.1調(diào)試環(huán)境搭建

請(qǐng)先參考產(chǎn)品資料用戶手冊(cè)目錄下的《開(kāi)發(fā)環(huán)境搭建》和《Linux系統(tǒng)開(kāi)發(fā)手冊(cè)》安裝、編譯LinuxSDK。

GDB調(diào)試工具壓縮包gdb-10.2.tar.xz位于LinuxSDK源碼目錄"buildroot/dl/gdb/"下。

wKgZO2lbeCqAWNzgAAAzssZTMYM870.png圖?3

在DR1工作目錄下執(zhí)行如下命令,創(chuàng)建gdb-tool目錄用于存放GDB調(diào)試工具壓縮包,將GDB調(diào)試工具包拷貝至該目錄下并解壓。

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

wKgZO2lbeDWADui3AAB3jA7ageY966.png圖 4

wKgZPGlbeDWAU1zLAABM8R5XziM496.png圖 5

執(zhí)行如下命令,配置交叉編譯工具鏈環(huán)境變量,并新建install目錄用于存放編譯生成的GDB調(diào)試工具。

Host# export PATH=/home/tronlong/test/sdk/SDK_2025.1/device/output/anlogic_dr1m90/buildroot/host/bin:$PATH

Host# mkdir install

wKgZPGlbeEWAZJbvAACFA_uhan4902.png圖 6

執(zhí)行如下命令,進(jìn)入GDB調(diào)試工具包目錄,配置GDB調(diào)試工具。

Host# cd gdb-10.2

Host# ./configure --target=aarch64-linux-gnu --prefix=/home/tronlong/DR1/gdb-tool/install/

備注:--target表示GDB調(diào)試工具名稱前綴,選擇aarch64-linux-gnu;--prefix表示存放目錄,選擇新建的install目錄。

wKgZO2lbeFCADfDYAADU0ez-OZ4675.png圖 7

wKgZPGlbeFCAaPqLAADdsJhM2WA198.png圖?8

執(zhí)行如下命令進(jìn)行編譯。

Host# make

wKgZO2lbeGOAXo05AAFFac7Wsq8526.png圖?9

wKgZPGlbeGOALIffAADbhWsjLfs788.png圖?10

執(zhí)行如下命令安裝GDB調(diào)試工具,將會(huì)在”install/bin”目錄下生成GDB調(diào)試工具。

Host# make install

wKgZPGlbeHOADOd_AAEztAZxxLo213.png圖?11

wKgZO2lbeHOAZBd_AAEgUZOH74Y513.png圖?12

wKgZPGlbeHSAC_rOAAA4w05g_WA152.png圖 13

2.2演示程序創(chuàng)建與編譯

在gdb-tool目錄下執(zhí)行如下命令,新建一個(gè)GDB調(diào)試演示程序。

Host# vitest.c

Host# cat test.c

wKgZO2lbeIyAU9ATAAB4CrkjAYs836.png圖 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í)行如下命令,進(jìn)行程序編譯,編譯完成將會(huì)生成test可執(zhí)行程序。

備注:編譯時(shí)需添加-g參數(shù),生成的可執(zhí)行文件才帶有調(diào)試信息。

Host# aarch64-linux-gnu-gcc -g test.c -o test

wKgZO2lbeJaAFdZVAABXNTn-oNg853.png圖?15

評(píng)估板與PC機(jī)連接至同一個(gè)路由器后進(jìn)行上電,將編譯后的可執(zhí)行文件test拷貝至評(píng)估板文件系統(tǒng)任意目錄下。

Target# lstest

wKgZPGlbeJ6AabRDAAAE9Sd8XIs661.png圖?16

2.3調(diào)試程序運(yùn)行

執(zhí)行如下命令,查看虛擬機(jī)的IP地址。

Host# ifconfig

wKgZO2lbeKWAYPq8AAGA-eA9ibQ319.png圖 17

在評(píng)估板文件系統(tǒng)test文件所在路徑下,執(zhí)行如下命令運(yùn)行g(shù)dbserver程序,開(kāi)啟監(jiān)聽(tīng)。

備注:192.168.13.81為虛擬機(jī)的IP地址;1234為連接的端口號(hào)(自行設(shè)置);test為將要進(jìn)行調(diào)試的程序。

Target# gdbserver 192.168.13.81:1234 test

wKgZPGlbeLuACGQFAAASAg8upAo945.png圖?18

在虛擬機(jī)test文件所在路徑下,執(zhí)行如下命令使用GDB調(diào)試工具進(jìn)行程序調(diào)試。

Host# ./install/bin/aarch64-linux-gnu-gdb test

wKgZO2lbeMKAJf9-AAD_Keh8s2Q863.png圖?19

執(zhí)行如下命令,連接評(píng)估板。192.168.13.47為評(píng)估板的IP地址,請(qǐng)以實(shí)際情況為準(zhǔn)。

(gdb) target remote 192.168.13.47:1234

wKgZPGlbeMmAb8KJAACmvT_t9hI228.png圖?20

同時(shí),串口調(diào)試終端顯示連接成功的相關(guān)信息。

wKgZO2lbeNCAFUjHAAAWn7y7_R4342.png圖?21

2.4 程序調(diào)試

本章節(jié)主要演示GDB調(diào)試的幾個(gè)常用命令的使用方法。

2.4.1 list命令

用于列出源碼,簡(jiǎn)寫:l。

wKgZO2lbeNaADCH8AABiyg4_q08562.png圖 22

2.4.2 break命令

用于設(shè)置斷點(diǎn),簡(jiǎn)寫:b。

分別在main函數(shù)和第10行設(shè)置斷點(diǎn)。

wKgZPGlbeN2AEO-sAAA3M-GiKoQ056.png圖 23

2.4.3 info breakpoints命令

用于顯示斷點(diǎn)的狀態(tài),簡(jiǎn)寫:infob。

wKgZPGlbeRCACgstAABEcRxJziM268.png圖 24

2.4.4 continue命令

用于恢復(fù)程序執(zhí)行,簡(jiǎn)寫:c。此命令使GDB恢復(fù)程序的執(zhí)行,直至斷點(diǎn)觸發(fā)或程序結(jié)束。

wKgZPGlbeRyAOaF_AAB354HpSeM658.png圖 25

以上調(diào)試過(guò)程在第二個(gè)斷點(diǎn)中,每輸入一次c命令,將會(huì)依次打印arr[]數(shù)組的元素值,然后程序執(zhí)行結(jié)束。同時(shí),串口調(diào)試終端打印相關(guān)信息。

wKgZO2lberKAJoJOAAAioBOYThc227.png圖 26

2.4.5 print命令

用于打印變量或者變量地址,簡(jiǎn)寫:p。

設(shè)置斷點(diǎn)后,可依次打印當(dāng)前變量i的值。

wKgZPGlberuAAY8-AAHHOj5MzCM173.png圖 27

以上調(diào)試過(guò)程在每處斷點(diǎn)中,使用print命令打印變量i的值。同時(shí),串口調(diào)試終端打印相關(guān)信息。

wKgZPGlbesSAQB2mAAAiNHXN9dM500.png圖 28

2.4.6 quit命令

退出GDB模式,簡(jiǎn)寫:q。當(dāng)程序調(diào)試完成后,使用quit命令退出GDB調(diào)試。

wKgZO2lbesuAQ2NSAAA8favW3JQ895.png圖 29

同時(shí),串口調(diào)試終端打印相關(guān)信息。

wKgZO2lbetOABCdKAAAifo_tGeg469.png圖 30

由于篇幅過(guò)長(zhǎng)等原因,部分內(nèi)容均不逐一展示,如需獲取完整版詳細(xì)資料,請(qǐng)關(guān)注創(chuàng)龍科技微信公眾號(hào)或官網(wǎng),或者評(píng)論區(qū)留言,感謝您的支持!

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Linux
    +關(guān)注

    關(guān)注

    88

    文章

    11756

    瀏覽量

    218996
  • python
    +關(guān)注

    關(guān)注

    57

    文章

    4876

    瀏覽量

    90013
  • MQTT
    +關(guān)注

    關(guān)注

    5

    文章

    733

    瀏覽量

    25059
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    基于安路DR1M90 FPSoC的Linux系統(tǒng)全流程開(kāi)發(fā)指南(4)

    ,以及 CPU/DDR 管理,附帶 TFTP+NFS 快速調(diào)試方案。實(shí)操命令與配置步驟,適配特定硬件與開(kāi)發(fā)環(huán)境,幫助開(kāi)發(fā)者完成系統(tǒng)鏡像生成、替換與
    的頭像 發(fā)表于 11-30 15:46 ?2180次閱讀
    基于安路<b class='flag-5'>DR1</b>M90 FPSoC的<b class='flag-5'>Linux</b>系統(tǒng)全流程<b class='flag-5'>開(kāi)發(fā)指南</b>(4)

    使用GDB調(diào)試Linux應(yīng)用程序

    本篇講解使用GDB調(diào)試Linux應(yīng)用程序,以下以 `hellowld.c` 為例介紹 GDB調(diào)試入門。
    發(fā)表于 06-27 15:48 ?823次閱讀

    DR1 系列核心板 PS+PL 異構(gòu)多核實(shí)戰(zhàn)案例手冊(cè)(二)

    本文為創(chuàng)龍科技DR1 系列評(píng)估板 PS+PL 異構(gòu)多核開(kāi)發(fā)指南,涵蓋 9 類核心案例與關(guān)鍵技術(shù)實(shí)現(xiàn)。核心內(nèi)容包括 AXI 總線與 PS_PLIO 兩種通信方式,涉及 GPIO 控制、串口 / CAN
    的頭像 發(fā)表于 01-14 17:23 ?4549次閱讀
    <b class='flag-5'>DR1</b> 系列核心板 PS+PL 異構(gòu)多核<b class='flag-5'>實(shí)戰(zhàn)</b>案例手冊(cè)(二)

    Tiny6410 Linux開(kāi)發(fā)指南詳解

    ............................................................................................................................- 1 - Tiny6410 L
    發(fā)表于 07-08 17:12 ?210次下載
    Tiny6410 <b class='flag-5'>Linux</b><b class='flag-5'>開(kāi)發(fā)指南</b>詳解

    Linux平臺(tái)下Mini210S裸機(jī)程序開(kāi)發(fā)指南

    Linux平臺(tái)下Mini210S裸機(jī)程序開(kāi)發(fā)指南
    發(fā)表于 10-29 10:52 ?59次下載
    <b class='flag-5'>Linux</b>的<b class='flag-5'>平臺(tái)</b>下Mini210S裸機(jī)程序<b class='flag-5'>開(kāi)發(fā)指南</b>

    C#上位機(jī)實(shí)戰(zhàn)開(kāi)發(fā)指南

    C#上位機(jī)實(shí)戰(zhàn)開(kāi)發(fā)指南
    發(fā)表于 11-22 19:25 ?0次下載

    Tina Linux配置開(kāi)發(fā)指南

    Tina Linux配置開(kāi)發(fā)指南
    的頭像 發(fā)表于 03-02 15:28 ?2w次閱讀
    Tina <b class='flag-5'>Linux</b>配置<b class='flag-5'>開(kāi)發(fā)指南</b>

    Linux NOR開(kāi)發(fā)指南

    Linux NOR開(kāi)發(fā)指南
    的頭像 發(fā)表于 03-06 09:55 ?2276次閱讀
    <b class='flag-5'>Linux</b> NOR<b class='flag-5'>開(kāi)發(fā)指南</b>

    如何使用linuxgdb來(lái)調(diào)試python程序

    如何使用linuxgdb來(lái)調(diào)試python程序? 在Linux下,可以使用GDB(GNU
    的頭像 發(fā)表于 01-31 10:41 ?3935次閱讀

    基于安路DR1M90 FPSoC 的Linux 系統(tǒng)全流程開(kāi)發(fā)指南1

    ,以及 CPU/DDR 管理,附帶 TFTP+NFS 快速調(diào)試方案。實(shí)操命令與配置步驟,適配特定硬件與開(kāi)發(fā)環(huán)境,幫助開(kāi)發(fā)者完成系統(tǒng)鏡像生成、替換與
    的頭像 發(fā)表于 11-25 14:09 ?383次閱讀
    基于安路<b class='flag-5'>DR1</b>M90 FPSoC 的<b class='flag-5'>Linux</b> 系統(tǒng)全流程<b class='flag-5'>開(kāi)發(fā)指南</b>(<b class='flag-5'>1</b>)

    基于安路DR1M90 FPSoC 的Linux 系統(tǒng)全流程開(kāi)發(fā)指南(3)

    ,以及 CPU/DDR 管理,附帶 TFTP+NFS 快速調(diào)試方案。實(shí)操命令與配置步驟,適配特定硬件與開(kāi)發(fā)環(huán)境,幫助開(kāi)發(fā)者完成系統(tǒng)鏡像生成、替換與
    的頭像 發(fā)表于 11-26 17:01 ?316次閱讀
    基于安路<b class='flag-5'>DR1</b>M90 FPSoC 的<b class='flag-5'>Linux</b> 系統(tǒng)全流程<b class='flag-5'>開(kāi)發(fā)指南</b>(3)

    DR1M90 評(píng)估板 TD-FD 工程與 Linux 多場(chǎng)景應(yīng)用開(kāi)發(fā)指南

    設(shè)備樹(shù)編譯,F(xiàn)D 工程的 HPF 文件導(dǎo)入、裸機(jī) / FreeRTOS 工程創(chuàng)建,以及通過(guò) JTAG 下載器、PS 端的程序加載與調(diào)試。文檔基于 Windows10 與 DR1 專用開(kāi)發(fā)工具,提供完整
    的頭像 發(fā)表于 01-07 11:37 ?558次閱讀
    <b class='flag-5'>DR1</b>M90 評(píng)估板 TD-FD 工程與 <b class='flag-5'>Linux</b> 多場(chǎng)景應(yīng)用<b class='flag-5'>開(kāi)發(fā)指南</b>

    DR1 系列核心板 PS+PL 異構(gòu)多核實(shí)戰(zhàn)案例手冊(cè)(一)

    本文為創(chuàng)龍科技DR1 系列評(píng)估板 PS+PL 異構(gòu)多核開(kāi)發(fā)指南,涵蓋 9 類核心案例與關(guān)鍵技術(shù)實(shí)現(xiàn)。核心內(nèi)容包括 AXI 總線與 PS_PLIO 兩種通信方式,涉及 GPIO 控制、串口 / CAN
    的頭像 發(fā)表于 01-14 15:37 ?159次閱讀
    <b class='flag-5'>DR1</b> 系列核心板 PS+PL 異構(gòu)多核<b class='flag-5'>實(shí)戰(zhàn)</b>案例手冊(cè)(一)

    DR1 系列評(píng)估板 PS 端裸機(jī)與 FreeRTOS 開(kāi)發(fā)案例手冊(cè)

    本文為創(chuàng)龍科技DR1 系列評(píng)估板 PS 端裸機(jī)與 FreeRTOS 開(kāi)發(fā)指南,涵蓋三大核心案例與雙開(kāi)發(fā)模式實(shí)現(xiàn)。核心內(nèi)容包括 LED 定時(shí)閃爍、按鍵控制 LED 亮滅、串口數(shù)據(jù)回顯功能,詳細(xì)說(shuō)明工程
    的頭像 發(fā)表于 01-19 17:12 ?145次閱讀
    <b class='flag-5'>DR1</b> 系列評(píng)估板 PS 端裸機(jī)與 FreeRTOS <b class='flag-5'>開(kāi)發(fā)</b>案例手冊(cè)

    RK3562 單板機(jī) Linux 應(yīng)用開(kāi)發(fā)實(shí)戰(zhàn)手冊(cè):LED/CAN/TCP/UART 案例與 Python 開(kāi)發(fā)(二)

    本文為創(chuàng)龍科技RK3562 單板機(jī)應(yīng)用開(kāi)發(fā)指南,核心包含交叉編譯工具鏈部署、GDB 遠(yuǎn)程調(diào)試,以及 LED、CAN、TCP/UDP、MQTT實(shí)戰(zhàn)
    的頭像 發(fā)表于 02-25 11:35 ?250次閱讀
    RK3562 單板機(jī) <b class='flag-5'>Linux</b> 應(yīng)用<b class='flag-5'>開(kāi)發(fā)</b><b class='flag-5'>實(shí)戰(zhàn)</b>手冊(cè):LED/CAN/TCP/UART 案例與 <b class='flag-5'>Python</b> <b class='flag-5'>開(kāi)發(fā)</b>(二)