<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 使用GDB調試嵌入式系統

使用GDB調試嵌入式系統

——
作者: 時(shí)間:2007-04-18 來(lái)源: 收藏
GNU GCC是用于A(yíng)RM, MIPS, SuperH, PowerPC, x86和其他32位處理器的許多高端系統的編譯器工具。作為GNU 的,GDB是一個(gè)免費的,開(kāi)發(fā)人員可以用它來(lái)進(jìn)行帶有GCC工具的的遠端調試。你可以通過(guò)一系列的端口或TCP/IP連接運行這一遠距離調試。  
 
本文將介紹在你的主站點(diǎn)上需要哪些軟件和嵌入式設備,這樣有助于你能夠使用GDB調試嵌入式代碼。

主機
在主機站點(diǎn)上,你將必須需要一個(gè)GDB版本以作為目標處理器的調試器。賣(mài)方提供的GNU GCC工具應該附帶一個(gè)編譯好的可執行的GDB,否則,你必須從RedHat下載源代碼或者需要一個(gè)GNU FTP,然后自己建立調試器。如果你要運行一個(gè)Linux主機或者一個(gè)Windows的Cygwin,建立調試器是一個(gè)相對簡(jiǎn)單的過(guò)程。

目標“樹(shù)樁(stub)”
GDB調試器與一個(gè)運行于目標處理器的小“樹(shù)樁(stub)”交流。主機調試器與一個(gè)使用簡(jiǎn)單的支持讀寫(xiě)注冊表和內存的協(xié)議交流。你將會(huì )發(fā)現GDB源目錄中有許多處理器體系的寫(xiě)好的“樹(shù)樁”,比如sh-stub.c, i386-stub.c, and m68k-stub.c。

如果你沒(méi)有找到一個(gè)適合的“樹(shù)樁”,在SourceForge上檢查gdbstubs工程。你需要編譯和連接合適的“樹(shù)樁”到目標嵌入程序和提供兩個(gè)通訊函數:getDebugChar()和putDebugChar()。你的系統初始化代碼也會(huì )調用set_debug_traps()函數來(lái)初始化“樹(shù)樁”和安裝必要的調試異常處理。

編寫(xiě)自己的“樹(shù)樁(stub)”
如果你無(wú)法找到已經(jīng)寫(xiě)好的“樹(shù)樁”,你不得不自己編寫(xiě)自己的“樹(shù)樁”。如果你對目標CPUx體系很熟悉的話(huà),這樣的工程也不是很復雜。最簡(jiǎn)單的方法就是對現成的“樹(shù)樁”進(jìn)行更改?!皹?shù)樁”中絕大多數的代碼都與通訊協(xié)議有關(guān),可以可以不變地使用于不同處理器之間。

你將需要更改內嵌匯編程序部分,這主要處理安裝和處理處理器的異常問(wèn)題,包括斷點(diǎn),單步,以及通用的保護錯誤。

異常處理相對比較簡(jiǎn)單:它們必須將CPU注冊存放在一個(gè)靜態(tài)緩沖器,然后輸入handle_exception()函數,這一函數帶有一個(gè)顯示異常原因的整數參數。handle_exception()函數然后取得對CPU的控制并處理與主機調試部分的所有通訊。你將需要對handle_exception()函數作一些特別是更改,但絕大部分的代碼都是可以利用的。

GDB的GUI
GDB是內嵌命令的工具。如果你適合于這一水平的工作,你將發(fā)覺(jué)用戶(hù)界面對基本的調試任務(wù)非常的快捷和方便。如果你覺(jué)得更適應使用GUI調試器,你也必須安裝GDB的GUI中的一個(gè),比如Insight。

如果你對這方面更多的知識感興趣,請查看extensiv online documentation on GDB(GDB中廣泛在線(xiàn)文檔)。

David Brenan是一個(gè)具有15年經(jīng)驗的開(kāi)發(fā)人員,他的工作包括授過(guò)獎?wù)碌膶?zhuān)用數字音頻產(chǎn)品的設計。


評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>