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

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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

ElfBoard技術貼|如何在【RK3588】ELF 2開發(fā)板進行GDB調試

ElfBoard ? 2025-11-11 13:47 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

GDB(GNU Project Debugger)是在Linux環(huán)境下功能全面的調試工具。它提供了一系列強大的調試功能,包括設置斷點、單步執(zhí)行、打印與觀察變量、查看寄存器及堆棧信息等。在Linux軟件開發(fā)的實踐中,GDB被視為調試C及C++程序的核心工具,廣泛用于幫助開發(fā)者定位和解決程序中的問題。

1. 虛擬機中安裝GDB工具

為避免符號解析錯誤或架構不兼容問題,用于遠程調試的GDB應在版本上與開發(fā)板的工具鏈對齊。

elf@ubuntu:~/work/EDU/sdk/ELF2-linux-source$ ./build.sh bconfig

路徑:

->Toolchain

wKgZPGkSzXKAekthAAGNEZO2Ge8544.png

選擇GDB版本,這里選擇gdb12.x

wKgZPGkSzWSAPRSCAAGMcQH0Duk276.png

2. 文件系統(tǒng)添加gdbserver功能

elf@ubuntu:~/work/EDU/sdk/ELF2-linux-source$./build.sh bconfig

路徑:

-> Target packages -> Debugging, profiling and benchmark

wKgZO2kSzTeAXTZWAAFpV_xjotM823.png

3. 重新編譯

elf@ubuntu:~/work/EDU/sdk/ELF2-linux-source$./build.sh buildroot

這樣就可以將軟件包直接編譯到文件系統(tǒng)的鏡像中了。

4. 燒寫文件系統(tǒng)

5. 應用編譯及拷貝

elf@ubuntu:~/work$vi gdbdemo.c

例程代碼如下:

#include int main() { int a = 10; int b = 20; int sum = a + b; printf("a = %d, b = %d\n", a, b); printf("sum = %d\n", sum); for (int i = 0; i < 5; i++) { printf("Loop i = %d\n", i); } return 0; }

添加交叉編譯器路徑,進行交叉編譯,編譯要調試的應用程序:必須要加-g選項

elf@ubuntu:~/work$ export PATH=/home/elf/aarch64-buildroot-linux-gnu_sdk-buildroot/bin/:$PATH elf@ubuntu:~/work$ aarch64-linux-gcc -g gdbdemo.c -o gdbdemo

將編譯生成的gdbdemo通過U盤拷貝到開發(fā)板上,比如/home/elf路徑下,下述以U盤為例,拷貝到開發(fā)板。

root@elf2-buildroot:~#cp/mnt/udisk/gdbdemo /home/elf

6. 設置開發(fā)板IP和端口

root@elf2-buildroot:~# gdbserver 172.20.8.7:2345 /home/elf/gdbdemo Process /home/elf/gdbdemo created; pid = 1314 Listening on port 2345

7. 給虛擬機設置同網(wǎng)段的IP并保證可以ping通開發(fā)板IP

8. 調試

GDB工具所在路徑:

ELF2-linux-source/buildroot/output/elf2_fs/host/bin/aarch64-linux-gdb

elf@ubuntu:~/work$ ./EDU/sdk/ELF2-linux-source/buildroot/output/elf2_fs/host/bin/aarch64-linux-gdb gdbdemo GNU gdb (GDB) 12.1 Copyright (C) 2022 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "--host=x86_64-pc-linux-gnu --target=aarch64-buildroot-linux-gnu". Type "show configuration" for configuration details. For bug reporting instructions, please see: . Find the GDB manual and other documentation resources online at: . For help, type "help". Type "apropos word" to search for commands related to "word"... Reading symbols from gdbdemo... (gdb) target remote 172.20.8.7:2345 //連接開發(fā)板 Remote debugging using 172.20.8.7:2345 Reading /lib/ld-linux-aarch64.so.1 from remote target... warning: File transfers from remote targets can be slow. Use "set sysroot" to access files locally instead. Reading /lib/ld-linux-aarch64.so.1 from remote target... Reading symbols from target:/lib/ld-linux-aarch64.so.1... (No debugging symbols found in target:/lib/ld-linux-aarch64.so.1) Reading /home/elf/work/EDU/sdk/ELF2-linux-source/buildroot/output/elf2_fs/host/lib/debug/.build-id/01/bd8db25550e790a84285a6377baa031748d93c.debug from remote target... 0x0000007ff7ff1900 in _start () from target:/lib/ld-linux-aarch64.so.1 (gdb)

此時就可以根據(jù)需求進行調試了,下面是幾個常用的命令

(1)l:列出所有源代碼

(2)b:設置斷點

(3)c:運行到斷點處

(4)s:單步運行執(zhí)行

(5)n:單步執(zhí)行,但是step會進入函數(shù)里面,但是next不會

(6)p a:打印a這個變量的值

(7)q:退出,輸入此命令則開發(fā)板上的gdbserver也退出

下面以具體示例介紹參數(shù)的使用方法。

(gdb) l //列出源代碼 1 #include 2 3int main() { 4 int a = 10; 5 int b = 20; 6 int sum = a + b; 7 8 printf("a = %d, b = %d\n", a, b); 9 printf("sum = %d\n", sum); 10 (gdb) b 9 //在第9行設置斷點 Breakpoint 1 at 0x55555557d0: file gdbdemo.c, line 9. (gdb) c // 繼續(xù)執(zhí)行程序,直到遇到斷點,此時終端打印a = 10, b = 20 Continuing. Reading /lib/libc.so.6 from remote target... Breakpoint 1, main () at gdbdemo.c:9 9 printf("sum = %d\n", sum); (gdb) c //從當前斷點繼續(xù)執(zhí)行到程序結束。 Continuing. [Inferior 1 (process 1367) exited normally] (gdb)

wKgZPGkSzKeAKPbuAAGzSeqwMNI945.png

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

    關注

    5199

    文章

    20454

    瀏覽量

    334232
  • 嵌入式開發(fā)板

    關注

    5

    文章

    111

    瀏覽量

    19810
  • Linux開發(fā)

    關注

    0

    文章

    46

    瀏覽量

    7693
  • RK3588
    +關注

    關注

    8

    文章

    556

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    瑞芯微RK3588開發(fā)板RK3588 EVB和RK3588S EVB解讀

    瑞芯微RK3588開發(fā)板RK3588 EVB和RK3588S EVB解讀 瑞芯微旗艦芯RK3588系列
    的頭像 發(fā)表于 09-22 15:54 ?2.3w次閱讀
    瑞芯微<b class='flag-5'>RK3588</b><b class='flag-5'>開發(fā)板</b><b class='flag-5'>RK3588</b> EVB和<b class='flag-5'>RK3588</b>S EVB解讀

    Banana Pi開源社區(qū)基于瑞芯微RK3588開發(fā)板,DeepSeek開發(fā)利器

    Banana Pi開源社區(qū)基于瑞芯微RK3588開發(fā)板,DeepSeek開發(fā)利器
    的頭像 發(fā)表于 02-19 18:25 ?3933次閱讀
    Banana Pi開源社區(qū)基于瑞芯微<b class='flag-5'>RK3588</b><b class='flag-5'>開發(fā)板</b>,DeepSeek<b class='flag-5'>開發(fā)</b>利器

    ElfBoard技術|如何在RK3588ELF 2開發(fā)板進行根系統(tǒng)的定制

    ELF 2開發(fā)板已經(jīng)適配了Linux 5.10及Elf2 Desktop 22.04操作系統(tǒng),其中Elf2 Desktop 22.04系統(tǒng)是
    的頭像 發(fā)表于 07-02 16:33 ?3016次閱讀
    <b class='flag-5'>ElfBoard</b><b class='flag-5'>技術</b><b class='flag-5'>貼</b>|如<b class='flag-5'>何在</b>【<b class='flag-5'>RK3588</b>】<b class='flag-5'>ELF</b> <b class='flag-5'>2</b><b class='flag-5'>開發(fā)板</b>上<b class='flag-5'>進行</b>根系統(tǒng)的定制

    ElfBoard技術|如何在RK3588ELF 2開發(fā)板進行UART引腳復用配置

    IOMUX(引腳功能復用)是芯片廠商為高效利用有限硬件引腳資源而設計的關鍵技術,它允許單個物理引腳通過軟件配置為多種不同的功能(如GPIO、UART、I2C等)。不同SoC芯片的配置方式各異,本文將以【RK3588
    的頭像 發(fā)表于 11-18 16:54 ?5483次閱讀
    <b class='flag-5'>ElfBoard</b><b class='flag-5'>技術</b><b class='flag-5'>貼</b>|如<b class='flag-5'>何在</b>【<b class='flag-5'>RK3588</b>】<b class='flag-5'>ELF</b> <b class='flag-5'>2</b><b class='flag-5'>開發(fā)板</b>上<b class='flag-5'>進行</b>UART引腳復用配置

    ElfBoard技術|如何在RK3588ELF 2開發(fā)板實現(xiàn)I2C功能復用

    C等。由于此項配置的具體實現(xiàn)因SoC平臺而異,本文特以【RK3588ELF 2開發(fā)板上的I2C6引腳為例,系統(tǒng)說明從硬件規(guī)格查詢到軟件驅動
    的頭像 發(fā)表于 12-04 10:10 ?7813次閱讀
    <b class='flag-5'>ElfBoard</b><b class='flag-5'>技術</b><b class='flag-5'>貼</b>|如<b class='flag-5'>何在</b>【<b class='flag-5'>RK3588</b>】<b class='flag-5'>ELF</b> <b class='flag-5'>2</b><b class='flag-5'>開發(fā)板</b>實現(xiàn)I<b class='flag-5'>2</b>C功能復用

    TB-RK3588開發(fā)板Windows上串口調試與Linux主機調試說明

    1、TB-RK3588串口調試說明串口連接使用MicroUSB數(shù)據(jù)線(需自備)連接TB-RK3588X如下圖位置,線纜另一端接至電腦端。說明:開發(fā)板
    發(fā)表于 05-31 18:04

    【首發(fā)開箱】揭開RK3588開發(fā)板的神秘面紗!

    教你玩轉RK3588開發(fā)板硬聲入駐企業(yè):瑞芯微教程包含以下內容:1、開箱:EVB開箱接線2、外部接口:EVB硬件接口介紹。3、環(huán)境搭建:EVB使用及調試方法。4、系統(tǒng)升級:
    的頭像 發(fā)表于 03-14 11:24 ?4752次閱讀
    【首發(fā)開箱】揭開<b class='flag-5'>RK3588</b><b class='flag-5'>開發(fā)板</b>的神秘面紗!

    瑞芯微RK3588開發(fā)板評測Ⅱ——DEBUG&amp;amp;接口調試方法

    上期分享了RK3588開發(fā)板的固件燒錄教程,引起了廣大發(fā)燒友的關注,本期技術干貨內容分享開發(fā)板的DEBUG和接口功能調試方法,繼續(xù)以英碼嵌入
    的頭像 發(fā)表于 11-02 15:46 ?9728次閱讀
    瑞芯微<b class='flag-5'>RK3588</b><b class='flag-5'>開發(fā)板</b>評測Ⅱ——DEBUG&amp;amp;接口<b class='flag-5'>調試</b>方法

    迅為RK3588開發(fā)板-基于瑞芯微RK3588攝像頭方案

    RK3588開發(fā)板
    的頭像 發(fā)表于 06-09 11:09 ?7444次閱讀
    迅為<b class='flag-5'>RK3588</b><b class='flag-5'>開發(fā)板</b>-基于瑞芯微<b class='flag-5'>RK3588</b>攝像頭方案

    rk3588有哪些開發(fā)板

    rk3588有哪些開發(fā)板 當前,rk3588開發(fā)板有RockPro64、Rock960 Plus、Rockchip Sapphire、Khadas VIM3 Pro和Firefly
    的頭像 發(fā)表于 08-15 17:04 ?3902次閱讀

    RK3588!黑神話悟空,啟動?-迅為電子RK3588開發(fā)板

    RK3588!黑神話悟空,啟動?-迅為電子RK3588開發(fā)板
    的頭像 發(fā)表于 08-30 14:13 ?2339次閱讀
    <b class='flag-5'>RK3588</b>!黑神話悟空,啟動?-迅為電子<b class='flag-5'>RK3588</b><b class='flag-5'>開發(fā)板</b>

    技術分享|iTOP-RK3588開發(fā)板Ubuntu20系統(tǒng)旋轉屏幕方案

    技術分享|iTOP-RK3588開發(fā)板Ubuntu20系統(tǒng)旋轉屏幕方案
    的頭像 發(fā)表于 04-18 15:19 ?1344次閱讀
    <b class='flag-5'>技術</b>分享|iTOP-<b class='flag-5'>RK3588</b><b class='flag-5'>開發(fā)板</b>Ubuntu20系統(tǒng)旋轉屏幕方案

    ElfBoard技術|【RK3588ELF 2開發(fā)板開機自啟動詳解

    在嵌入式系統(tǒng)開發(fā)中,合理管理開機自啟動項目能夠優(yōu)化系統(tǒng)啟動流程,確保關鍵服務和應用按時加載運行。本文將詳細介紹在ELF2開發(fā)板Linux5.10.209系統(tǒng)下基于SystemVinit服務管理機制
    的頭像 發(fā)表于 06-27 16:20 ?2054次閱讀
    <b class='flag-5'>ElfBoard</b><b class='flag-5'>技術</b><b class='flag-5'>貼</b>|【<b class='flag-5'>RK3588</b>】<b class='flag-5'>ELF</b> <b class='flag-5'>2</b><b class='flag-5'>開發(fā)板</b>開機自啟動詳解

    ElfBoard技術|如何在RK3588ELF 2開發(fā)板用戶空間更換開機Logo

    ,提升了開發(fā)調試效率。一、添加Logo分區(qū)elf@ubuntu:~/work/ELF2-linux-source$videvice/rockchip/.chip
    的頭像 發(fā)表于 10-29 11:12 ?1167次閱讀
    <b class='flag-5'>ElfBoard</b><b class='flag-5'>技術</b><b class='flag-5'>貼</b>|如<b class='flag-5'>何在</b>【<b class='flag-5'>RK3588</b>】<b class='flag-5'>ELF</b> <b class='flag-5'>2</b><b class='flag-5'>開發(fā)板</b>用戶空間更換開機Logo

    ElfBoard技術|如何在RK3588ELF 2開發(fā)板實現(xiàn)GPIO功能復用

    RK3588ELF2開發(fā)板的GPIO引腳為例,詳細闡述從硬件查找到軟件配置的完整流程。1.引腳確認在開始配置之前,首先需要了解【RK3588E
    的頭像 發(fā)表于 12-29 10:37 ?1085次閱讀
    <b class='flag-5'>ElfBoard</b><b class='flag-5'>技術</b><b class='flag-5'>貼</b>|如<b class='flag-5'>何在</b>【<b class='flag-5'>RK3588</b>】<b class='flag-5'>ELF</b> <b class='flag-5'>2</b><b class='flag-5'>開發(fā)板</b>實現(xiàn)GPIO功能復用