<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 RSP協(xié)議與USB通信在嵌入式調試系統中的應用

GDB RSP協(xié)議與USB通信在嵌入式調試系統中的應用

作者: 時(shí)間:2013-11-14 來(lái)源:網(wǎng)絡(luò ) 收藏

  1 引言

  調試嵌入式程序通常采用一種稱(chēng)為交叉調試的調試技術(shù)來(lái)調試已下載到嵌入式開(kāi)發(fā)板中的程序。該技術(shù)可以允許用戶(hù)通過(guò)PC機端的調試器以某種方式遠程控制目標開(kāi)發(fā)板上被調試程序的運行方式,并具有查看與修改目標開(kāi)發(fā)板上內存單元、寄存器以及被調試程序中變量值等功能。采用硬件仿真器來(lái)調試嵌入式程序是常用的一種開(kāi)發(fā)方式。

  一般嵌入式CPU都設計有JTAG口來(lái)進(jìn)行硬件仿真調試。硬件仿真器通過(guò)JTAG口輸入該CPU型號專(zhuān)有的JTAG時(shí)序來(lái)控制CPU的運行,并通過(guò)JTAG指令來(lái)觀(guān)察CPU以及開(kāi)發(fā)板上硬件設備的運行情況,主要是各種寄存器以及相關(guān)內存地址空間的實(shí)時(shí)數據。

  同時(shí)將嵌入式軟件的運行結果通過(guò)JTAG口按照特定的JTAG時(shí)序輸出反饋給硬件仿真器,硬件仿真器再通過(guò)USB或者串口、并口等總線(xiàn)返回給PC機端的調試軟件。

  硬件仿真器通常采用USB總線(xiàn)與PC機端的調試軟件通信,因此硬件仿真器需要采用相關(guān)的USB芯片來(lái)支持功能,同時(shí)PC端的調試軟件也需要開(kāi)發(fā)針對該款USB芯片的驅動(dòng)功能以支持與硬件仿真器USB芯片的數據交互。此外,PC端的還包括調試器(比如調試器)、協(xié)議轉換器以及位于它們之間的遠程調試協(xié)議(通常是 ),這些都是針對特定型號CPU定制的。

  本文通過(guò)對 技術(shù)的研究與應用,針對一款具有自主知識產(chǎn)權的ZW100DSP處理器成功開(kāi)發(fā)了一套,從而為該款DSP的應用提供了極大的便利。該的框架如圖1所示。

  

  2 GDB 與EZ-USB FX2芯片概述

  2.1 GDB RSP協(xié)議

  GDB 遠程串行通信協(xié)議RSP(GDB RemoteSerial Protocol)是基于消息的 ASCⅡ碼字符流協(xié)議,規定有服務(wù)器端(RSP Server)與客戶(hù)端(RSP Client)之分,通常在GDB中實(shí)現客戶(hù)端功能,而服務(wù)器端通常另起一個(gè)進(jìn)程實(shí)現與GDB的RSP協(xié)議通信,兩者之間的數據交互一般采用進(jìn)程間的通信方式來(lái)實(shí)現,常用的有網(wǎng)絡(luò )socket通信等。

  調試系統的RSP Server和RSP Client雙方通過(guò)RSP協(xié)議進(jìn)行數據的接收和發(fā)送。RSP 數據包包含了調試信息和校驗兩個(gè)部分。調試信息是以“$”作為開(kāi)始、以“#”作為結尾的ASCⅡ碼字符流,后面跟兩個(gè)字節的校驗碼,該校驗碼的值是調試信息中所有字符的 ASCⅡ碼相加后取256的模,該值用兩個(gè)十六進(jìn)制字符表示,數據包格式如圖2所示。

  

  接收方接收到數據包后進(jìn)行解析,如果接收到的數據包正確,會(huì )返回響應信息“+”字符,如果接收到的數據包出錯,需要重新傳送數據包,則返回響應信息“-”字符。發(fā)送方通過(guò)接收方發(fā)回的響應信息判斷數據是否發(fā)送成功。

  RSP協(xié)議的調試命令是通過(guò)第一個(gè)ASCⅡ碼字符進(jìn)行區別的。以下是比較常用的調試命令及其功能:

  ● C:報告目標CPU掛起的原因;

  ● c、C、s和S:恢復運行或者單步調試目標CPU;

  ● D:與目標板斷開(kāi)連接;

  ● g和G:讀寫(xiě)通用寄存器;

  ● m和M:讀寫(xiě)內存地址空間;

  ● p和P:讀寫(xiě)指定寄存器;

  ● X:加載二進(jìn)制數據;

  ● z和Z:清除或者設置斷點(diǎn)。

  2.2 Cypress EZ-USB FX2功能

  硬件仿真器采用Cypress的EZ-USB FX2芯片與PC端的調試進(jìn)程(RSP Server)進(jìn)行通信。Cypress公司的EZ-USB FX2系列芯片是世界第一個(gè)集成USB 2.0協(xié)議的微處理器,它支持12 Mb/s的全速傳輸和480 Mb/s的高速傳輸,可使用4種USB傳輸方式:控制傳輸、中斷傳輸、批量傳輸和同步傳輸;完全使用USB 2.0,并向下兼容USB1.1.

數字通信相關(guān)文章:數字通信原理


通信相關(guān)文章:通信原理



上一頁(yè) 1 2 3 下一頁(yè)

評論


相關(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>