• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      GDB RSP協(xié)議與USB通信在嵌入式調(diào)試系統(tǒng)中的應(yīng)用

      2013-12-05 02:00:58盛建忠張慶文
      電子與封裝 2013年3期
      關(guān)鍵詞:仿真器固件數(shù)據(jù)包

      盛建忠,王 勝,張慶文

      (中國電子科技集團公司第58研究所,江蘇 無錫 214035)

      1 引言

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

      一般嵌入式CPU都設(shè)計有JTAG口來進行硬件仿真調(diào)試。硬件仿真器通過JTAG口輸入該CPU型號專有的JTAG時序來控制CPU的運行,并通過JTAG指令來觀察CPU以及開發(fā)板上硬件設(shè)備的運行情況,主要是各種寄存器以及相關(guān)內(nèi)存地址空間的實時數(shù)據(jù)。同時將嵌入式軟件的運行結(jié)果通過JTAG口按照特定的JTAG時序輸出反饋給硬件仿真器,硬件仿真器再通過USB或者串口、并口等總線返回給PC機端的調(diào)試軟件。

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

      本文通過對GDB RSP協(xié)議與USB通信技術(shù)的研究與應(yīng)用,針對一款具有自主知識產(chǎn)權(quán)的ZW100 DSP處理器成功開發(fā)了一套調(diào)試系統(tǒng),從而為該款DSP的應(yīng)用提供了極大的便利。該調(diào)試系統(tǒng)的框架如圖1所示。

      圖1 調(diào)試系統(tǒng)結(jié)構(gòu)圖

      2 GDB RSP協(xié)議與EZ-USB FX2芯片概述

      2.1 GDB RSP協(xié)議

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

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

      圖2 RSP數(shù)據(jù)包格式

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

      RSP協(xié)議的調(diào)試命令是通過第一個ASCⅡ碼字符進行區(qū)別的。以下是比較常用的調(diào)試命令及其功能:

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

      ● c、C、s和S:恢復(fù)運行或者單步調(diào)試目標CPU;

      ● D:與目標板斷開連接;

      ● g和G:讀寫通用寄存器;

      ● m和M:讀寫內(nèi)存地址空間;

      ● p和P:讀寫指定寄存器;

      ● X:加載二進制數(shù)據(jù);

      ● z和Z:清除或者設(shè)置斷點。

      2.2 Cypress EZ-USB FX2功能

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

      EZ-USB FX2的前身是EZ-USB,其芯片固件也是存儲在主機上而不是芯片內(nèi)部,顯著特點是代碼容易升級。芯片結(jié)構(gòu)也與EZ-USB類似,主要包括USB2.0收發(fā)器、串行接口引擎、增強型8051、16 KB的RAM、4 KB的FIFO存儲器、I/O口、數(shù)據(jù)總線、地址總線和通用可編程接口GPIF。

      采用Cypress EZ-USB FX2芯片進行USB通信傳輸性能穩(wěn)定,其硬件性能可以進行靈活配置。該芯片的特點在于:

      (1)USB2.0單芯片解決方案,包括USB2.0收發(fā)器,串行接口引擎(SIE)和增強型51內(nèi)核??伞败浥渲谩盧AM,大小為16 K,可取代傳統(tǒng)51的RAM和ROM,程序可以通過USB口下載或者通過外部EEPROM裝載,同時也支持外界存儲設(shè)備。

      (2)通用可編程接口GPIF。GPIF是FX2一個重要技術(shù),可設(shè)置為主從模式,主從模式下可對外部FIFO、存儲器、ATA接口設(shè)備進行高速讀寫操作,從模式下外部主控器(如DSP,MCU)可把GPIF端口當做FIFO進行高速讀寫操作;支持與外設(shè)通過并行8位或者16位總線傳輸;支持通過GPIF編程工具編程,靈活產(chǎn)生各種波形。支持多CTL輸出和RDY輸入。

      (3)增強工業(yè)級8051內(nèi)核:支持48 MHz時鐘;4個時鐘指令周期,在時鐘為48 MHz時,單指令執(zhí)行時間為83.3 ns;兩個UART;三個TIMER;多中斷系統(tǒng);多數(shù)據(jù)指針。

      3 研究與實現(xiàn)

      GDB RSP協(xié)議與USB通信技術(shù)在調(diào)試系統(tǒng)中主要由三部分組成:EZ-USB FX2芯片USB通信功能開發(fā)、RSP Server與GDB的RSP通信、RSP Server與EZUSB FX2芯片的USB數(shù)據(jù)交互。在進行功能開發(fā)之前,我們需要將EZ-USB FX2的開發(fā)包安裝到PC機上,該開發(fā)包主要包括了EZ-USB FX2芯片的USB驅(qū)動、EZ-USB FX2進行USB開發(fā)所需的鏈接庫和相關(guān)頭文件、增強型8051單片機開發(fā)所需的頭文件等開發(fā)要件。

      3.1 EZ-USB FX2芯片USB通信功能開發(fā)

      為了簡化固件編程,Cypress提供了固件編程框架,開發(fā)人員只需要在此基礎(chǔ)上添加少量代碼就可以完成固件編程。固件編程框架已經(jīng)將USB標準請求和USB電源管理包括進去了,并且提供了任務(wù)調(diào)度函數(shù),只需要在這任務(wù)調(diào)度函數(shù)中添加部分代碼就完成了固件編程。

      圖3 USB芯片固件開發(fā)流程圖

      上電復(fù)位時,固件先初始化一些全局變量,接著調(diào)用初始化函數(shù)TD_Init(),初始化設(shè)備到?jīng)]有配置的狀態(tài)和打開中斷,循環(huán)1 s后重新枚舉,直到端點0接收到SETUP包退出循環(huán),進入循環(huán)語句while,執(zhí)行任務(wù)函數(shù),函數(shù)包括:

      (1)TD_POLL()用戶任務(wù)調(diào)度函數(shù);

      (2)如果發(fā)現(xiàn)USB設(shè)備請求,則執(zhí)行對應(yīng)的USB請求;

      (3)如果發(fā)現(xiàn)U S B空閑置位,則調(diào)用TD_Suspend()這個掛起函數(shù),調(diào)用成功則內(nèi)核掛起,直到出現(xiàn)USB遠程喚醒信號,調(diào)用TD_Resume(),內(nèi)核喚醒重新進入while循環(huán)。

      3.2 PC端USB通信開發(fā)

      PC端USB通信的開發(fā)主要由三部分組成:設(shè)置要讀寫的內(nèi)存空間地址、讀內(nèi)存地址空間、寫內(nèi)存地址空間。這三個功能主要由3個函數(shù)來實現(xiàn):void SetAddr(DWORD addr)、int ReadReg(ULONG addr, ULONG *val)、int WriteReg(ULONG addr,ULONG data)。

      3.2.1 void SetAddr(DWORD addr)函數(shù)的實現(xiàn)

      SetAddr函數(shù)的實現(xiàn)過程可以由圖4來表示。

      圖4 SetAddr函數(shù)實現(xiàn)

      3.2.2 int ReadReg(ULONG addr, ULONG *val)函數(shù)的實現(xiàn)

      考慮到GDB調(diào)試器要頻繁讀取DSP內(nèi)核寄存器及相關(guān)的內(nèi)存地址空間內(nèi)容,因此USB采用異步通信的方式來完成讀取功能,PC端的RSP Server通過啟動傳送線程實現(xiàn)數(shù)據(jù)的異步傳輸。ReadReg函數(shù)的實現(xiàn)流程如圖5所示。

      3.2.3 int WriteReg(ULONG addr, ULONG data)函數(shù)的實現(xiàn)

      在調(diào)試過程中,通常寫寄存器的操作由程序員在調(diào)試過程中手動實現(xiàn),USB通信量相比較于讀操作要小得多,因此本調(diào)試系統(tǒng)采用簡單的Write函數(shù)操作來實現(xiàn)DSP內(nèi)存地址空間的寫操作,其實現(xiàn)流程如圖6所示。

      圖5 ReadReg函數(shù)實現(xiàn)

      圖6 WriteReg函數(shù)實現(xiàn)

      3.3 RSP通信功能開發(fā)

      RSP通信功能的開發(fā)主要包括RSP Client和RSP Server功能的開發(fā),其中RSP Client內(nèi)嵌于GDB調(diào)試器中實現(xiàn)。GDB與RSP Server的通信主要通過基于TCP/IP的網(wǎng)絡(luò)Socket編程來實現(xiàn)。在RSP Server中,RSP命令處理函數(shù)主要用來對RSP的各種命令包在解析之后作出符合DSP條件的具體操作,該命令處理函數(shù)對RSP命令包的處理情況如表1所示。

      在實現(xiàn)了GDB RSP協(xié)議的各個命令包之后,就可以將GDB調(diào)試命令映射到RSP命令包的組合實現(xiàn)常用的GDB調(diào)試命令,如表2所示。

      表1 RSP命令的實現(xiàn)

      表2 GDB命令的實現(xiàn)

      4 結(jié)束語

      GDB RSP協(xié)議與USB通信在嵌入式調(diào)試系統(tǒng)中發(fā)揮了重要作用。本文給出了一種在嵌入式調(diào)試系統(tǒng)中應(yīng)用GDB RSP協(xié)議與USB通信的應(yīng)用案例,解決了通過USB對特定DSP開發(fā)板的硬件仿真調(diào)試問題,使得該DSP平臺的嵌入式應(yīng)用程序的開發(fā)更加方便,縮短了開發(fā)周期并提高了下載目標程序的速度。該調(diào)試系統(tǒng)已經(jīng)通過測試并通過了國家重點項目的驗收。

      [1] USB2.0+FPGA開發(fā)文檔.

      [2] Jeremy Bennett. Howto∶ GDB Remote Serial Protocol Server.

      [3] 劉璐,馬躍. 基于嵌入式操作系統(tǒng)的GDB遠程調(diào)試[EB/OL]. 中國科技論文在線.

      [4] 于婷,龍翔,高小鵬. 基于模擬器遠程調(diào)試系統(tǒng)的研究與實現(xiàn)[EB/OL].中國科技論文在線.

      [5] 陳必泉,黃承惠.GDBSERVER原理分析及其應(yīng)用[J]. 計算機工程與設(shè)計,2005, 3.

      猜你喜歡
      仿真器固件數(shù)據(jù)包
      SmartSniff
      基于固件的遠程身份認證
      基于多線程的慣導(dǎo)邏輯仿真器設(shè)計
      計算機工程(2015年4期)2015-07-05 08:28:57
      提取ROM固件中的APP
      電腦愛好者(2015年7期)2015-04-09 08:54:02
      基于Libpcap的網(wǎng)絡(luò)數(shù)據(jù)包捕獲器的設(shè)計與實現(xiàn)
      一種通過USB接口的可靠固件升級技術(shù)
      奧林巴斯XZ—2新固件升級
      中國攝影(2014年1期)2014-02-24 01:50:23
      視覺注意的數(shù)據(jù)包優(yōu)先級排序策略研究
      天文測量仿真器模擬星圖精度分析
      并行片上網(wǎng)絡(luò)仿真器ParaNSim的設(shè)計及性能分析
      郓城县| 桓仁| 泰顺县| 图木舒克市| 黄平县| 连南| 文安县| 体育| 阜新市| 柳河县| 铜陵市| 济源市| 扎囊县| 岐山县| 陆河县| 安福县| 刚察县| 丹江口市| 安福县| 晴隆县| 芜湖市| 兰西县| 大荔县| 梓潼县| 河西区| 汕尾市| 资兴市| 视频| 靖远县| 成都市| 石嘴山市| 农安县| 临邑县| 巫山县| 新蔡县| 红河县| 二连浩特市| 庆云县| 巴里| 洪雅县| 历史|