国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

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

3天內不再提示

linux環境下在線調試環境的搭建方案解析

電子設計 ? 來源:面包板社區 ? 作者:一口Linux ? 2021-03-02 15:46 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1.引言

單片機一般使用Jlink通過SWD或者JTAG接口直接在IDE中在線調試,Linux應用程序通常是加printf輸出log去調試,這種方式簡單,但是有些隱藏的程序bug只通過加打印信息不那么容易定位,這時可以通過類似單片機調試的gdb調試來實現,本篇為大家介紹linux環境下在線調試環境的搭建,希望對大家有所幫助。

GDB, the GNU Project debugger, allows you to see what is going on `inside' another program while it executes -- or what another program was doing at the moment it crashed.

它的工作原理是:在主機Ubuntu下運行gdb,在嵌入式板子上運行gdbserver,這樣就可以在線調試了。

2.環境介紹

2.1.硬件

1) 網上的一個第三方做的NUC972開發板:

有興趣購買的朋友,可以去他們的淘寶店購買

2.2.軟件

1) Uboot繼續使用之前文章用的,無須改動。

2) Kernel在上一篇基礎上,無須改動。

3) Rootfs在上一篇用Buildroot生成的基礎上,需要做一定的改動,用來生成gdbserver。

3.Buildroot配置

Buildroot里需要做一定的配置,用來生成gdb和gdbserver,步驟如下:

1) 確認Toolchain | Build cross gdb for the host 是否選中,這個默認是選中的。

這個的作用是:Build a cross gdb that runs on the host machine and debugs programs running on the target. It requires 'gdbserver' installed on the target。

2) 選中Toolchain下的Thread library debugging,注意一定得先選中這個,不然第三步無法執行。

3) 選中Target packages | Debugging, profiling and benchmark->gdb和gdbserver

上面的作用是:

This option allows to build gdbserver and/or the gdb debugger for the target.For embedded development, the most common solution is to build only 'gdbserver' for the target, and use a cross-gdb on the host.

4) 保存,編譯即可。

生成的gdb位于:/home/topsemic/nuc972/buildroot/NUC970_Buildroot/output/host/usr/bin

目錄中

生成的gdbserver位于:

/home/topsemic/nuc972/buildroot/NUC970_Buildroot/output/target/usr/bin 目錄中

5) 將上述gdbserver直接放到板子的/usr/bin目錄里即可,然后登錄板子輸入gdbserver,可以看到如下信息,說明板子的gdbserver已經搭建好了。

4.新建測試程序

1)新建一個測試程序gdbtest.c

#include int main(){ char s[64] = "Welcome to www.topsemic.com"; int a = 1; int c = a*2; int *ptr = NULL; printf("s is :%s ", s); printf("c is : %d ", c); *ptr = 20; printf("%d ",*ptr); return 0;}

2)交叉編譯

topsemic@topsemic-virtual-machine:~/nuc972/examples/gdbserver$ arm-linux-gcc gdbtest.c -o gdbtest -g

注:arm-linux-gcc gdbtest.c -o gdbtest -g其中”-g”參數表示進行 GDB 編譯。

這個程序放到板子里運行結果如下:

我們用下面的在線調試方法去看看什么原因導致的Segmentation fault

5.在線調試

調試前,將板子和PC之間通過網線相連接,步驟如下:

1) 在開發板可執行程序所在的目錄下,執行如下命令啟動gdbserver:

命令格式:gdbserver :

192.168.0.80 為Ubuntu 的 IP 地址, 1234 為連接的端口

注:需要先將虛擬機Ubuntu的IP配置為固定的192.168.0.80,這個設置方法在《Linux學習系列八:操作網口》中有介紹

2) 在Ubuntu下啟動gdb調試,命令格式:

<應用程序路徑>

topsemic@topsemic-virtual-machine:~/nuc972/examples/gdbserver$ /home/topsemic/nuc972/buildroot/NUC970_Buildroot/output/host/usr/bin/arm-linux-gdb gdbtest

3) 在彈出的上述對話框(gdb)后輸入以下命令,連接開發板

(gdb)target remote 192.168.0.100:1234

其中192.168.0.100 是開發板的IP地址

4)之后就可輸入如下 GDB 調試命令,其他調試命令的詳細用法請輸入”help 命令名稱”查閱。

命令:l,參看代碼。

命令:b main,在 main處設置斷點。

命令:b 6,在第六行設置斷點。

命令:c,繼續執行。

命令:n,單步執行。

命令:q,退出gdb。

一直輸入 c, 直到程序結束。

單步調試,同時查看板子上打印的信息

可以看到板子程序執行的過程和Ubuntu上加的斷點運行的進度一致,另外可以

發現是因為line 10 導致的Segmentation fault,這樣就定位到了出問題的地方。

注:https://man.linuxde.net/gdb 可以看到詳細的gdb命令用法。

編輯:hfy

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

    關注

    6076

    文章

    45498

    瀏覽量

    670560
  • Linux
    +關注

    關注

    88

    文章

    11761

    瀏覽量

    219071
  • Ubuntu
    +關注

    關注

    5

    文章

    613

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    AT32開源鴻蒙開發環境搭建

    、編譯環境準備及常見問題說明。通過本指南,開發者可以快速構建可用的鴻蒙開發環境,為后續的應用開發、系統移植和功能調試打下堅實基礎。 本指南適用于有一定 Linux 使用經驗的開發人員
    發表于 01-16 13:56

    linux-arm開發環境的簡單配置

    linux-arm開發環境簡單配置 關于linux-arm開發環境簡單配置是ARM學習的第一步,很多初學者會在這問題上糾結很久都不能配置好開發環境
    發表于 01-13 07:56

    經驗分享 | eclipse搭建先楫開發環境

    最近有小伙伴留言,想在eclipse平臺下開發先楫的MCU,但是苦于沒有工程模板,自己折騰了半天又遇到一堆報錯,很費時間?;诖诵枨?,筆者基于HPM6E00EVK一步一步搭建在eclipse下的開發環境,可以順利實現仿真和調試
    的頭像 發表于 12-19 08:32 ?884次閱讀
    經驗分享 | eclipse<b class='flag-5'>搭建</b>先楫開發<b class='flag-5'>環境</b>

    IDC機房環境監測方案—全解析

    文章由山東華科信息技術有限公司提供在數字化轉型加速的今天,IDC機房作為數據存儲與計算的核心載體,其運行環境穩定性直接影響業務連續性。本文系統解析IDC機房環境監測方案的設計邏輯與實施
    的頭像 發表于 12-10 09:22 ?327次閱讀
    IDC機房<b class='flag-5'>環境</b>監測<b class='flag-5'>方案</b>—全<b class='flag-5'>解析</b>

    實驗室環境在線監測管理系統方案

    在科研活動日益頻繁、實驗精度要求不斷提高的當下,實驗室環境的穩定性與可控性成為保障實驗成功與數據可靠的關鍵因素。某工廠要求對多個實驗室、倉庫、走廊等區域的環境進行在線監測與管理,以確保及時發現
    的頭像 發表于 11-26 14:29 ?373次閱讀
    實驗室<b class='flag-5'>環境</b><b class='flag-5'>在線</b>監測管理系統<b class='flag-5'>方案</b>

    移植蜂鳥需要在Linux環境下嗎?

    《手把手教你設計CPU》書上運行Verilog仿真測試那章說為了重現仿真環境,最好在Linux環境下。不知道移植蜂鳥是否需要在Linux環境
    發表于 11-10 07:42

    在Windows和Linux環境下分別使用Olimex和蜂鳥調試器下載程序

    本隊伍編號CICC3042,本篇文章介紹在Windows和Linux環境下分別使用Olimex和蜂鳥調試器下載程序,和上一篇Hbirdv2的移植配合使用。 使用過第一版蜂鳥的同學們可能按照書中
    發表于 10-31 08:26

    tiny4412 Qt環境搭建

    1.硬件環境 PC端:ubuntu18.04 開發板硬件平臺:tiny4412 內核版本:linux3.5 交叉編譯器:arm-linux-gcc Qt版本:Qt5.6 2.搭建 ub
    的頭像 發表于 10-21 09:54 ?663次閱讀
    tiny4412 Qt<b class='flag-5'>環境</b><b class='flag-5'>搭建</b>

    創龍 瑞芯微 RK3588 國產2.4GHz八核 工業開發板—開發環境搭建(一)

    ;還講解了 GDB 10.2 調試工具的環境搭建、演示程序編譯,以及 list、break 等常用調試命令的使用,為開發調試提供全面指導,適
    的頭像 發表于 09-18 16:04 ?604次閱讀
    創龍 瑞芯微 RK3588 國產2.4GHz八核 工業開發板—開發<b class='flag-5'>環境</b><b class='flag-5'>搭建</b>(一)

    ESP32-S3的MicroPython開發環境搭建

    本文通過搭建Thonny IDE開發環境,了解了如何給ESP32-S3燒錄MircoPython固件和MircoPython應用程序。
    的頭像 發表于 09-11 16:02 ?1644次閱讀
    ESP32-S3的MicroPython開發<b class='flag-5'>環境</b><b class='flag-5'>搭建</b>

    開發環境一鍵部署 | 如何搭建Docker環境編譯ARM程序?

    智能化科技領域,嵌入式系統開發占據著極為重要的地位。瑞迅科技RK3568、RK3588主板及核心板以其卓越的性能,為眾多應用場景賦能?;?b class='flag-5'>Linux系統搭建其開發環境,為用戶開啟高效開發的大門。Q痛
    的頭像 發表于 08-15 11:06 ?967次閱讀
    開發<b class='flag-5'>環境</b>一鍵部署 | 如何<b class='flag-5'>搭建</b>Docker<b class='flag-5'>環境</b>編譯ARM程序?

    Linux系統環境監測終極指南

    Linux系統環境主要監測CPU、內存、磁盤I/O和網絡流量。
    的頭像 發表于 06-25 14:41 ?815次閱讀
    <b class='flag-5'>Linux</b>系統<b class='flag-5'>環境</b>監測終極指南

    迅為RK3576開發板NPUrknn-toolkit2環境搭建和使用docker環境安裝

    迅為RK3576開發板NPUrknn-toolkit2環境搭建和使用docker環境安裝
    的頭像 發表于 06-18 15:22 ?1287次閱讀
    迅為RK3576開發板NPUrknn-toolkit2<b class='flag-5'>環境</b><b class='flag-5'>搭建</b>和使用docker<b class='flag-5'>環境</b>安裝

    不借助Linux系統,在Windows下如何搭建ZMC900E交叉編譯環境

    不需要依賴笨重的虛擬機,也不需要安裝雙系統。拋開繁瑣的環境準備,在Windows上輕松搭建交叉編譯環境。本文將介紹如何在Windows上搭建交叉編譯
    的頭像 發表于 05-21 11:34 ?937次閱讀
    不借助<b class='flag-5'>Linux</b>系統,在Windows下如何<b class='flag-5'>搭建</b>ZMC900E交叉編譯<b class='flag-5'>環境</b>

    電磁環境動態監測與分析平臺軟件全面解析

    電磁環境動態監測與分析平臺軟件全面解析
    的頭像 發表于 04-28 16:28 ?717次閱讀
    電磁<b class='flag-5'>環境</b>動態監測與分析平臺軟件全面<b class='flag-5'>解析</b>