chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

linux環(huán)境下在線調(diào)試環(huán)境的搭建方案解析

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

掃碼添加小助手

加入工程師交流群

1.引言

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

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.

它的工作原理是:在主機(jī)Ubuntu下運(yùn)行g(shù)db,在嵌入式板子上運(yùn)行g(shù)dbserver,這樣就可以在線調(diào)試了。

2.環(huán)境介紹

2.1.硬件

1) 網(wǎng)上的一個(gè)第三方做的NUC972開發(fā)板:

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

2.2.軟件

1) Uboot繼續(xù)使用之前文章用的,無須改動(dòng)。

2) Kernel在上一篇基礎(chǔ)上,無須改動(dòng)。

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

3.Buildroot配置

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

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

這個(gè)的作用是: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,注意一定得先選中這個(gè),不然第三步無法執(zhí)行。

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已經(jīng)搭建好了。

4.新建測試程序

1)新建一個(gè)測試程序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”參數(shù)表示進(jìn)行 GDB 編譯。

這個(gè)程序放到板子里運(yùn)行結(jié)果如下:

我們用下面的在線調(diào)試方法去看看什么原因?qū)е碌腟egmentation fault

5.在線調(diào)試

調(diào)試前,將板子和PC之間通過網(wǎng)線相連接,步驟如下:

1) 在開發(fā)板可執(zhí)行程序所在的目錄下,執(zhí)行如下命令啟動(dòng)gdbserver:

命令格式:gdbserver :

192.168.0.80 為Ubuntu 的 IP 地址, 1234 為連接的端口號(hào)

注:需要先將虛擬機(jī)Ubuntu的IP配置為固定的192.168.0.80,這個(gè)設(shè)置方法在《Linux學(xué)習(xí)系列八:操作網(wǎng)口》中有介紹

2) 在Ubuntu下啟動(dòng)gdb調(diào)試,命令格式:

<應(yīng)用程序路徑>

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

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

(gdb)target remote 192.168.0.100:1234

其中192.168.0.100 是開發(fā)板的IP地址

4)之后就可輸入如下 GDB 調(diào)試命令,其他調(diào)試命令的詳細(xì)用法請(qǐng)輸入”help 命令名稱”查閱。

命令:l,參看代碼。

命令:b main,在 main處設(shè)置斷點(diǎn)。

命令:b 6,在第六行設(shè)置斷點(diǎn)。

命令:c,繼續(xù)執(zhí)行。

命令:n,單步執(zhí)行。

命令:q,退出gdb。

一直輸入 c, 直到程序結(jié)束。

單步調(diào)試,同時(shí)查看板子上打印的信息

可以看到板子程序執(zhí)行的過程和Ubuntu上加的斷點(diǎn)運(yùn)行的進(jìn)度一致,另外可以

發(fā)現(xiàn)是因?yàn)閘ine 10 導(dǎo)致的Segmentation fault,這樣就定位到了出問題的地方。

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

編輯:hfy

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

    關(guān)注

    6067

    文章

    44992

    瀏覽量

    650499
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11511

    瀏覽量

    213815
  • Ubuntu
    +關(guān)注

    關(guān)注

    5

    文章

    592

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    Linux系統(tǒng)環(huán)境監(jiān)測終極指南

    Linux系統(tǒng)環(huán)境主要監(jiān)測CPU、內(nèi)存、磁盤I/O和網(wǎng)絡(luò)流量。
    的頭像 發(fā)表于 06-25 14:41 ?174次閱讀
    <b class='flag-5'>Linux</b>系統(tǒng)<b class='flag-5'>環(huán)境</b>監(jiān)測終極指南

    迅為RK3576開發(fā)板NPUrknn-toolkit2環(huán)境搭建和使用docker環(huán)境安裝

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

    不借助Linux系統(tǒng),在Windows下如何搭建ZMC900E交叉編譯環(huán)境

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

    電磁環(huán)境動(dòng)態(tài)監(jiān)測與分析平臺(tái)軟件全面解析

    電磁環(huán)境動(dòng)態(tài)監(jiān)測與分析平臺(tái)軟件全面解析
    的頭像 發(fā)表于 04-28 16:28 ?252次閱讀
    電磁<b class='flag-5'>環(huán)境</b>動(dòng)態(tài)監(jiān)測與分析平臺(tái)軟件全面<b class='flag-5'>解析</b>

    KaihongOS操作系統(tǒng):開發(fā)環(huán)境搭建

    開發(fā)環(huán)境搭建 下載開發(fā)工具—DevEco Studio 建議使用 DevEco Studio 4.1 Release(即 4.1.0.400)版本的 DevEco Studio。 下載鏈接
    發(fā)表于 04-23 07:27

    基于華為云 Flexus 云服務(wù)器 X 實(shí)例搭建 Linux 學(xué)習(xí)環(huán)境

    不僅提供了強(qiáng)大的計(jì)算資源,還擁有靈活的擴(kuò)展能力和穩(wěn)定的運(yùn)行表現(xiàn),為用戶提供了可靠的技術(shù)支撐。特別是對(duì)于那些希望快速搭建 Linux 學(xué)習(xí)環(huán)境的用戶來說,華為云 Flexus 云服務(wù)器 X 實(shí)例是一個(gè)理想的選擇。例如,Instan
    的頭像 發(fā)表于 12-25 17:10 ?609次閱讀
    基于華為云 Flexus 云服務(wù)器 X 實(shí)例<b class='flag-5'>搭建</b> <b class='flag-5'>Linux</b> 學(xué)習(xí)<b class='flag-5'>環(huán)境</b>

    如何搭建企業(yè)AI開發(fā)環(huán)境

    搭建企業(yè)AI開發(fā)環(huán)境是一個(gè)復(fù)雜而細(xì)致的過程,涉及硬件選擇、操作系統(tǒng)配置、軟件安裝、工具選用以及實(shí)踐等多個(gè)方面。下面,AI部落小編將詳細(xì)介紹如何搭建企業(yè)AI開發(fā)環(huán)境。
    的頭像 發(fā)表于 12-20 10:37 ?700次閱讀

    【MM32F5270】Keil開發(fā)環(huán)境搭建

    本文是對(duì)MM32F5270相關(guān)的靈動(dòng)官網(wǎng)資料和社區(qū)現(xiàn)有幾篇環(huán)境搭建帖的整理和總結(jié)。詳細(xì)且完整的記錄了——如何從零搭建MM32F5270 Keil開發(fā)環(huán)境以及如何編譯運(yùn)行MM32F527
    的頭像 發(fā)表于 11-06 16:14 ?3805次閱讀
    【MM32F5270】Keil開發(fā)<b class='flag-5'>環(huán)境</b><b class='flag-5'>搭建</b>

    Linux環(huán)境變量配置方法

    Linux環(huán)境變量配置分為設(shè)置永久變量和臨時(shí)變量兩種。環(huán)境變量設(shè)置方法同時(shí)要考慮環(huán)境Shell類型,不同類型的SHELL設(shè)置臨時(shí)變量方法和設(shè)置永久變量對(duì)應(yīng)的配置文件不同。
    的頭像 發(fā)表于 10-23 13:39 ?710次閱讀

    城市水環(huán)境治理在線監(jiān)測系統(tǒng)方案

    環(huán)境是城市生態(tài)系統(tǒng)的重要組成部分,包括河流、湖泊、濕地等自然水體以及城市排水系統(tǒng)。在城市日常運(yùn)行中,這些水體系統(tǒng)十分容易受到污染與破壞,影響到居民生活質(zhì)量與城市生命力。對(duì)此,數(shù)之能提供城市水環(huán)境治理在線監(jiān)
    的頭像 發(fā)表于 09-12 10:44 ?443次閱讀

    TI RF Transceiver EVM自動(dòng)化環(huán)境搭建方法

    電子發(fā)燒友網(wǎng)站提供《TI RF Transceiver EVM自動(dòng)化環(huán)境搭建方法.pdf》資料免費(fèi)下載
    發(fā)表于 09-04 09:35 ?0次下載
    TI RF Transceiver EVM自動(dòng)化<b class='flag-5'>環(huán)境</b><b class='flag-5'>搭建</b>方法

    MCUXpresso IDE下在線聯(lián)合調(diào)試雙核MCU工程的三種方法

    大家好,我是痞子衡,是正經(jīng)搞技術(shù)的痞子。今天痞子衡給大家分享的是MCUXpresso IDE下在線聯(lián)合調(diào)試i.MXRT1170雙核工程的三種方法。
    的頭像 發(fā)表于 08-08 15:18 ?1364次閱讀
    MCUXpresso IDE<b class='flag-5'>下在線</b>聯(lián)合<b class='flag-5'>調(diào)試</b>雙核MCU工程的三種方法

    SemiDrive X9 AI 開發(fā)環(huán)境搭建

    SemiDrivex9AI開發(fā)環(huán)境搭建分開發(fā)機(jī)端,開發(fā)板端。主要的工具是SDNN,它是一個(gè)基于開源編譯器框架TVM的端到端的AI編譯器框架,Semidrive對(duì)TVM編譯器框架做了適配,主要特性如下
    的頭像 發(fā)表于 08-03 08:27 ?905次閱讀
    SemiDrive X9 AI 開發(fā)<b class='flag-5'>環(huán)境</b><b class='flag-5'>搭建</b>

    風(fēng)機(jī)環(huán)境智能監(jiān)控方案

    ,特殊的環(huán)境條件對(duì)風(fēng)機(jī)的運(yùn)行維護(hù)和故障預(yù)警提出了嚴(yán)峻挑戰(zhàn)。因此,實(shí)施一套高效、智能的風(fēng)機(jī)環(huán)境智能監(jiān)控方案顯得尤為重要。 方案概述 風(fēng)機(jī)環(huán)境
    的頭像 發(fā)表于 08-01 16:41 ?604次閱讀

    pytorch環(huán)境搭建詳細(xì)步驟

    PyTorch作為一個(gè)廣泛使用的深度學(xué)習(xí)框架,其環(huán)境搭建對(duì)于從事機(jī)器學(xué)習(xí)和深度學(xué)習(xí)研究及開發(fā)的人員來說至關(guān)重要。以下將介紹PyTorch環(huán)境搭建的詳細(xì)步驟,包括安裝Anaconda、配
    的頭像 發(fā)表于 08-01 15:38 ?1869次閱讀