當前位置:首頁 > 電源 > 數字電源
[導讀]對于嵌入式系統開發(fā)來說,遠程調試器非常重要,而GDB RSP協議與USB通信一般在嵌入式調試系統中占有重要位置。文章在研究GDB RSP協議與USB通信的基礎上,針對ZW100 DSP處理器的體系架構,給出了一種基于RSP命令交互與USB數據通信實現硬件仿真器與PC端調試軟件進行調試信息交互的開發(fā)與實現方法。該設計實現了GDB通過硬件仿真器下載程序到目標板進行開發(fā)調試的功能,使得開發(fā)簡潔便利,縮短了研發(fā)周期。

1 引言

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

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

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

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

本文通過對GDB RSP協議與USB通信技術的研究與應用,針對一款具有自主知識產權的ZW100DSP處理器成功開發(fā)了一套調試系統,從而為該款DSP的應用提供了極大的便利。該調試系統的框架如圖1所示。

 

 

2 GDB RSP協議與EZ-USB FX2芯片概述

2.1 GDB RSP協議

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

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

 

 

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

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

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

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

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

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

● m和M:讀寫內存地址空間;

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

● X:加載二進制數據;

● z和Z:清除或者設置斷點。

2.2 Cypress EZ-USB FX2功能

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

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

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

(1)USB2.0單芯片解決方案,包括USB2.0收發(fā)器,串行接口引擎(SIE)和增強型51內核???ldquo;軟配置”RAM,大小為16 K,可取代傳統51的RAM和ROM,程序可以通過USB口下載或者通過外部EEPROM裝載,同時也支持外界存儲設備。

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

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

 

 

3 研究與實現

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

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

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

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

(1)TD_POLL()用戶任務調度函數;

(2)如果發(fā)現USB設備請求,則執(zhí)行對應的USB請求;

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

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

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

3.2.1 void SetAddr(DWORD addr)函數的實現

SetAddr函數的實現過程可以由圖4來表示。

 

 

3.2.2 int ReadReg(ULONG addr, ULONG *val)函數的實現

考慮到GDB調試器要頻繁讀取DS P 內核寄存器及相關的內存地址空間內容, 因此USB采用異步通信的方式來完成讀取功能, P C 端的RSP Se r v e r 通過啟動傳送線程實現數據的異步傳輸。R e a d R e g 函數的實現流程如圖5 所示。[!--empirenews.page--]

3.2.3 int WriteReg(ULONG addr, ULONG data)函數的實現

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

 

 

 

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

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

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

 

 

 

 

4 結束語

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

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯系該專欄作者,如若文章內容侵犯您的權益,請及時聯系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或將催生出更大的獨角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數字化轉型技術解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關鍵字: AWS AN BSP 數字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術公司SODA.Auto推出其旗艦產品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關鍵字: 汽車 人工智能 智能驅動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據媒體報道,騰訊和網易近期正在縮減他們對日本游戲市場的投資。

關鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數據產業(yè)博覽會開幕式在貴陽舉行,華為董事、質量流程IT總裁陶景文發(fā)表了演講。

關鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數據產業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數字世界的話語權最終是由生態(tài)的繁榮決定的。

關鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經營業(yè)績穩(wěn)中有升 落實提質增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領增長 以科技創(chuàng)新為引領,提升企業(yè)核心競爭力 堅持高質量發(fā)展策略,塑強核心競爭優(yōu)勢...

關鍵字: 通信 BSP 電信運營商 數字經濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術學會聯合牽頭組建的NVI技術創(chuàng)新聯盟在BIRTV2024超高清全產業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現場 NVI技術創(chuàng)新聯...

關鍵字: VI 傳輸協議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯合招商會上,軟通動力信息技術(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關鍵字: BSP 信息技術
關閉
關閉