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

迅為i.MX6ULL開發板移植Gdb+Gdbserver調試

發布時間:2021-5-31 10:46    發布者:落風
因為有很多小伙伴是從單片機轉過來的,用慣了單片機使用JLINk來調試程序,換到Linux非常不習慣。確實是如此,如果能在Linux上能設置斷點,單步調試,查看變量,那就再好不過了。那么接下來將教大家怎么在arm板上調試應用代碼的方法。
首先,了解下基本的思路:
采用這種方式進行遠程調試,目標系統必須包括gdbserver程序,宿主機也必須安裝gdb程序。一般Linux發行版中都有一個可以運行的gdb,但我們不能直接使用該發行版中的gdb來做遠程調試,而要獲取gdb的源代碼包,針對arm平臺做一個簡單的配置,重新編譯得到相應的gdb,如armv4.
搭建環境
UBuntu版本:Ubuntu 12.04
交叉編譯器:arm-2009q3.tar.bz2
gdb版本:gdb-7.8.1.tar.gz
開發板硬件:i.MX6ULL 終結者
開發板系統:支持ssh的busybox
注意事項:如果大家下載的gdb版本比較高,那么Ubuntu的GCC就必須用4.8以上的版本。交叉編譯器要選擇和自己編譯的文件系統一致的編譯器,因為busybox的根文件系統用的是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為安裝路徑。

然后執行make CC=/usr/local/arm/arm-2009q3/bin/arm-none-linux-gnueabi-gcc命令,注意,這里交叉編譯器一定要寫絕對路徑。
編譯過程中會出現圖 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板上搭建遠程調試環境
(1)把gdb/gdbserver下的gdbserver 拷貝到文件系統busybox的bin目錄下,然后打包燒寫生成的文件系統rootfs.tar.bz2
(2)編寫測試程序hello.c

編譯測試程序,編譯的時候要加-g參數,編譯完成之后,我們把測試代碼通過SSH放在開發板上,然后再測試代碼所在的路徑下輸入以下命令在目標板啟動服務器,其中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所示:

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

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

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

在串口控制臺可以看到對應的打印信息

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


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

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

廠商推薦

  • Microchip視頻專區
  • 利用SAM E54 Xplained Pro評估工具包演示CAN轉USB橋接器以及基于CAN的主機和自舉程序應用程序
  • 使用SAM-IoT Wx v2開發板演示AWS IoT Core應用程序
  • 使用Harmony3加速TCP/IP應用的開發培訓教程
  • 集成高級模擬外設的PIC18F-Q71家族介紹培訓教程
  • 貿澤電子(Mouser)專區
關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产吃奶摸下激烈视频无遮挡 | 男女性高爱潮是免费 | 可以免费观看一级毛片黄a 可以免费观看的黄色网址 可以看的黑人性较视频 | 欧美洲视频在线观看 | a毛片毛费观看 | 国产精品午夜高清在线观看 | 91污网站 | 午夜羞羞视频在线观看 | 成人国产一区 | 国内自拍视频在线看免费观看 | 国产剧情自拍 | 91精品国产一区 | www.青青青| 欧美一区二区三区在观看 | 91亚洲免费| 欧美成人亚洲国产精品 | 色花堂国产精品第一页 | 久久99国产亚洲高清 | 久久毛片免费看一区二区三区 | 91最新| 欧美一级做a爰片免费 | 国产精品香蕉在线 | 欧美在线观看一区二区 | 亚洲一区二区精品视频 | 久久永久影院免费 | 香蕉久久久 | 四虎永久在线精品波多野结衣 | 2022av视频| 欧美三级一区二区 | 最近中文字幕完先锋资源 | 欧美激情免费观看一区 | 天天摸天天干天天操 | 久久精品无码一区二区日韩av | 大伊香蕉精品一区视频在线 | 久久精品2021国产 | 免费一级毛片能看的 | 91在i线观| 日本一区网站 | 黄色片在线免费观看视频 | 2023av在线| 欧美在线看片a免费观看 |