當(dāng)前位置:首頁(yè) > 電源 > 數(shù)字電源
[導(dǎo)讀]對(duì)于嵌入式系統(tǒng)開(kāi)發(fā)來(lái)說(shuō),遠(yuǎn)程調(diào)試器非常重要,而GDB RSP協(xié)議與USB通信一般在嵌入式調(diào)試系統(tǒng)中占有重要位置。文章在研究GDB RSP協(xié)議與USB通信的基礎(chǔ)上,針對(duì)ZW100 DSP處理器的體系架構(gòu),給出了一種基于RSP命令交互與USB數(shù)據(jù)通信實(shí)現(xiàn)硬件仿真器與PC端調(diào)試軟件進(jìn)行調(diào)試信息交互的開(kāi)發(fā)與實(shí)現(xiàn)方法。該設(shè)計(jì)實(shí)現(xiàn)了GDB通過(guò)硬件仿真器下載程序到目標(biāo)板進(jìn)行開(kāi)發(fā)調(diào)試的功能,使得開(kāi)發(fā)簡(jiǎn)潔便利,縮短了研發(fā)周期。

1 引言

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

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

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

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

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

 

 

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

2.1 GDB RSP協(xié)議

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

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

 

 

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

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

● C:報(bào)告目標(biāo)CPU掛起的原因;

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

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

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

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

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

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

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

2.2 Cypress EZ-USB FX2功能

硬件仿真器采用Cypress的EZ-USB FX2芯片與PC端的調(diào)試進(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.

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

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

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

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

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

 

 

3 研究與實(shí)現(xiàn)

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

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

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

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

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

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

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

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

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

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

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

 

 

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

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

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

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

 

 

 

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

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

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

 

 

 

 

4 結(jié)束語(yǔ)

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

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

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

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

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

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

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

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

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

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

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

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

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

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

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉