国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

迅為i.MX6ULL開發(fā)板移植Gdb+Gdbserver調(diào)試

發(fā)布時間:2021-5-31 10:46    發(fā)布者:落風
因為有很多小伙伴是從單片機轉(zhuǎn)過來的,用慣了單片機使用JLINk來調(diào)試程序,換到Linux非常不習(xí)慣。確實是如此,如果能在Linux上能設(shè)置斷點,單步調(diào)試,查看變量,那就再好不過了。那么接下來將教大家怎么在arm板上調(diào)試應(yīng)用代碼的方法。
首先,了解下基本的思路:
采用這種方式進行遠程調(diào)試,目標系統(tǒng)必須包括gdbserver程序,宿主機也必須安裝gdb程序。一般Linux發(fā)行版中都有一個可以運行的gdb,但我們不能直接使用該發(fā)行版中的gdb來做遠程調(diào)試,而要獲取gdb的源代碼包,針對arm平臺做一個簡單的配置,重新編譯得到相應(yīng)的gdb,如armv4.
搭建環(huán)境
UBuntu版本:Ubuntu 12.04
交叉編譯器:arm-2009q3.tar.bz2
gdb版本:gdb-7.8.1.tar.gz
開發(fā)板硬件:i.MX6ULL 終結(jié)者
開發(fā)板系統(tǒng):支持ssh的busybox
注意事項:如果大家下載的gdb版本比較高,那么Ubuntu的GCC就必須用4.8以上的版本。交叉編譯器要選擇和自己編譯的文件系統(tǒng)一致的編譯器,因為busybox的根文件系統(tǒng)用的是arm-2009q3,所以這里編譯gdb也使用這個編譯
搭建步驟
(1)第一步:下載gdb壓縮包
下載地址:http://ftp.gnu.org/gnu/gdb/ 這里我們下載的是gdb-7.8.1.tar.gz這個版本。
(2)第二步:編譯并安裝gdb
把gdb壓縮包放到ubuntu之后,我們進入到解壓生成的文件,如圖 1示:

輸入以下命令:
./configure -target=arm-none-linux-gnueabi --prefix=/home/topeet/arm-linux-gdb/arm-linux-gdb生成Makefile。target為目標平臺,prefix為安裝路徑。

生成Makefile成功如圖 3所示:

輸入make,編譯gdb,編譯成功如圖 4所示:

輸入make install ,安裝gdb,一會我們在ubuntu上啟動的就是這個gdb,安裝成功如圖 5所示:

進入gdb源碼下的gdb/gdbserver目錄,如圖 6所示:


輸入以下命令:
./configure -target=arm-none-linux-gnueabi --prefix=/home/topeet/arm-linux-gdb/arm-linux-gdbserver
生成Makefile,target為目標平臺,prefix為安裝路徑。

然后執(zhí)行make CC=/usr/local/arm/arm-2009q3/bin/arm-none-linux-gnueabi-gcc命令,注意,這里交叉編譯器一定要寫絕對路徑。
編譯過程中會出現(xiàn)圖 8錯誤:

我們打開gdb/gdbserver路徑下的config.h文件,注釋掉196行左右的HAVE_SYS_REG_H這個宏定義,然后保存退出。如圖 9所示:

打開gdb/gdbserver路徑下的linux-x86-low.c的C文件,注釋掉116行#include頭文件,然后保存退出。如圖 10所示:

再次編譯輸入make CC=/usr/local/arm/arm-2009q3/bin/arm-none-linux-gnueabi-gcc,編譯成功如圖 11所示:

編譯完成后,使用make install 命令安裝,安裝完成后會在安裝路徑生成一個文件夾,如圖 12所示:

第三步,在ARM板上搭建遠程調(diào)試環(huán)境
(1)把gdb/gdbserver下的gdbserver 拷貝到文件系統(tǒng)busybox的bin目錄下,然后打包燒寫生成的文件系統(tǒng)rootfs.tar.bz2
(2)編寫測試程序hello.c

編譯測試程序,編譯的時候要加-g參數(shù),編譯完成之后,我們把測試代碼通過SSH放在開發(fā)板上,然后再測試代碼所在的路徑下輸入以下命令在目標板啟動服務(wù)器,其中192.168.1.5為ubuntu的IP,8000為端口號。啟動成功如圖 14所示:

再測試程序所在目錄啟動ubuntu上的gdb,這里啟動的gdb為我們剛剛安裝的gdb,我們輸入以下命令:
/home/topeet/arm-linux-gdb/arm-linux-gdb/bin/arm-none-linux-gnueabi-gdb hello

啟動成功后如圖 15所示:

連接開發(fā)板,輸入以下命令,target remote 192.168.1.3:8000 192.168.1.3為開發(fā)板的IP,8000為端口號。

連接成功后開發(fā)板會打印以下信息,如圖 17所示:

接下來,我們就可以在ubuntu上使用命令來設(shè)置斷點,單步調(diào)試開發(fā)板上的程序了,L 是顯示程序,b 7 是在第七行設(shè)置斷點,info b 是查看斷點,c 是運行。

在串口控制臺可以看到對應(yīng)的打印信息

打斷點的方式主要有以下幾種:
break 函數(shù)名:在某個函數(shù)的入口處添加斷點
break 行號:在指定行添加斷點
break文件名:行號:在指定文件的指定行添加斷點
break行號 if 條件:當條件為真時,指定行號的斷點生效。
查看我們打的斷點,使用命令info breakpoints,可以看見我剛才打的斷點
刪除斷點,使用命令delete斷點編號來完成
運行程序,輸入命令run
 輸入命令:print i,命令格式:print 變量名稱。查看指定變量數(shù)值。
 我們也可以對變量i進行監(jiān)控,可以輸入命令 watch i,命令格式:watch 變量名稱。對指定變量進行監(jiān)控。.
next:單步運行程序,不進入子函數(shù)。
step:單步運行程序,進去子函數(shù)。
如果我們想繼續(xù)調(diào)試呢,可以輸入命令continue
退出調(diào)試。可以使用命令quit
總結(jié):
上面的命令也可以使用簡寫,如break可以簡寫成b,簡寫表如下:


本文地址:http://m.qingdxww.cn/thread-767853-1-1.html     【打印本頁】

本站部分文章為轉(zhuǎn)載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀點和對其真實性負責;文章版權(quán)歸原作者及原出處所有,如涉及作品內(nèi)容、版權(quán)和其它問題,我們將根據(jù)著作權(quán)人的要求,第一時間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區(qū)
  • 利用SAM E54 Xplained Pro評估工具包演示CAN轉(zhuǎn)USB橋接器以及基于CAN的主機和自舉程序應(yīng)用程序
  • 使用SAM-IoT Wx v2開發(fā)板演示AWS IoT Core應(yīng)用程序
  • 使用Harmony3加速TCP/IP應(yīng)用的開發(fā)培訓(xùn)教程
  • 集成高級模擬外設(shè)的PIC18F-Q71家族介紹培訓(xùn)教程
  • 貿(mào)澤電子(Mouser)專區(qū)
關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 欧美在线播放成人免费 | 99久在线观看| 欧美日韩一级视频 | 日本天堂网在线 | 国外成人在线视频网站 | 性感美女被爆操 | 91麻豆精品激情在线观看最新 | 天天摸天天操天天射 | 国产又色又爽又黄的网站在线一级 | 精品欧美一区二区vr在线观看 | www.色女人| 日本网络视频www色高清免费 | 亚洲欧美一区二区久久香蕉 | 青青91| h亚洲| 欧美国产高清 | 欧美做a欧美 | 8848com四虎 | 久久久久久免费播放一级毛片 | 黄色片免费在线观看视频 | 国产在线精品观看一区 | 国产精品国产三级国产在线观看 | 亚洲香蕉网久久综合影院3p | 日本欧美在线播放 | 噜噜噜久久久 | 韩国av片永久免费 | 岛国大片免费看 | 色蜜蜜精品视频在线视频 | 欧美肥 | 国产原创91 | 国产一区导航 | 91观看视频 | 日本不卡在线视频高清免费 | 91蜜桃麻豆 | 久久国产乱子伦精品免费不卡 | 国产一区二区三区精品视频 | 久久精品久久久久 | 那个在线播放观看 | 日韩在线一区高清在线 | 欧美精品一区二区三区久久 | 日韩在线观看第一页 |