本發(fā)明涉及jtag調(diào)試領(lǐng)域,尤其是一種jtag遠(yuǎn)程調(diào)試方法。
背景技術(shù):
隨著嵌入式系統(tǒng)的不斷發(fā)展和應(yīng)用越來(lái)越廣泛,針對(duì)不同應(yīng)用的嵌入式軟件的開(kāi)發(fā)也越來(lái)越受到重視。在系統(tǒng)設(shè)計(jì)領(lǐng)域,應(yīng)用軟件的開(kāi)發(fā)越發(fā)變得昂貴,消耗的時(shí)間也越來(lái)越多。一個(gè)好的調(diào)試器可以給予嵌入式軟件開(kāi)發(fā)人員很好的幫助,達(dá)到事半功倍的效果。隨著芯片設(shè)計(jì)的復(fù)雜度越來(lái)越高,軟件開(kāi)發(fā)和系統(tǒng)調(diào)試階段是產(chǎn)品上市時(shí)間的重要部分。在板級(jí),通過(guò)軟件模擬、驗(yàn)證和分析等系統(tǒng)功能調(diào)試已經(jīng)遠(yuǎn)遠(yuǎn)不能滿足功能正確性調(diào)試和故障定位等要求,所以微處理器硬件上支持片上測(cè)試和調(diào)試功能顯得十分重要。嵌入式系統(tǒng)的開(kāi)發(fā)與實(shí)
現(xiàn),已在逐漸步入利用soc(systemonchip)技術(shù)的軟硬件協(xié)同設(shè)計(jì)階段。現(xiàn)在高集成度、高時(shí)鐘頻率的高性能嵌入式微處理器芯片設(shè)計(jì)時(shí)都引入片上調(diào)試邏輯。調(diào)試器在開(kāi)發(fā)過(guò)程中變得更加重要,越來(lái)越多的微處理器集成了片上調(diào)試支持結(jié)構(gòu)來(lái)減輕嵌入式系統(tǒng)軟件開(kāi)發(fā)人員的負(fù)擔(dān)。
jtag(jointtestactiongroup,聯(lián)合測(cè)試行動(dòng)小組)是一種國(guó)際標(biāo)準(zhǔn)測(cè)試協(xié)議,主要用于芯片內(nèi)部測(cè)試及對(duì)系統(tǒng)進(jìn)行仿真、調(diào)試,jtag技術(shù)是一種嵌入式調(diào)試技術(shù),它在芯片內(nèi)部封裝了專門(mén)的測(cè)試電路tap(testaccessport,測(cè)試訪問(wèn)口),通過(guò)專用的jtag測(cè)試工具對(duì)內(nèi)部節(jié)點(diǎn)進(jìn)行測(cè)試。如今大多數(shù)比較復(fù)雜的器件都支持jtag協(xié)議,如arm、dsp、fpga器件等。標(biāo)準(zhǔn)的jtag接口是4線:tms、tck、tdi、tdo,分別為測(cè)試模式選擇、測(cè)試時(shí)鐘、測(cè)試數(shù)據(jù)輸入和測(cè)試數(shù)據(jù)輸出。傳統(tǒng)方式為usb轉(zhuǎn)jtag,無(wú)法實(shí)現(xiàn)遠(yuǎn)程調(diào)試,在某些特定條件下使用十分不便。并且傳統(tǒng)方式同一臺(tái)電腦只能調(diào)試一臺(tái)對(duì)應(yīng)設(shè)備,多電腦也無(wú)法協(xié)同調(diào)試多臺(tái)設(shè)備。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于克服現(xiàn)有技術(shù)的不足,提供一種jtag遠(yuǎn)程調(diào)試方法與系統(tǒng),實(shí)現(xiàn)遠(yuǎn)程調(diào)試,可以利用同一臺(tái)或者多臺(tái)電腦調(diào)試多臺(tái)對(duì)應(yīng)設(shè)備。
本發(fā)明的目的是通過(guò)以下技術(shù)方案來(lái)實(shí)現(xiàn)的:一種jtag遠(yuǎn)程調(diào)試方法,它包括如下步驟:
s1jtag轉(zhuǎn)換模塊上電自檢:若自檢正常,則進(jìn)行下一步驟,反之終止調(diào)試重復(fù)自檢;在必要情況下可以不進(jìn)行自檢;
s2檢查jtag轉(zhuǎn)換模塊與調(diào)試中心是否連接:若已連接,則進(jìn)行下一步驟,反之終止調(diào)試,在必要情況下可以不進(jìn)行連接檢測(cè);
s3調(diào)試中心將調(diào)試數(shù)據(jù)進(jìn)行組幀并打包或者接收jtag轉(zhuǎn)換模塊上傳的數(shù)據(jù)包并解析;
s4jtag轉(zhuǎn)換模塊接收調(diào)試中心發(fā)送的數(shù)據(jù)包或者將被測(cè)設(shè)備jtag返回的數(shù)據(jù)組包發(fā)送給調(diào)試中心;jtag轉(zhuǎn)換模塊接收調(diào)試中心的數(shù)據(jù)包或者發(fā)送給調(diào)試中心的數(shù)據(jù)包通過(guò)不同的ip地址和端口地址來(lái)區(qū)分不同的被測(cè)設(shè)備和不同的調(diào)試中心;
s5解析jtag協(xié)議,包括串并轉(zhuǎn)換和并串轉(zhuǎn)換以及fifo緩存、時(shí)序同步。
進(jìn)一步限定,所述的調(diào)試中心將調(diào)試數(shù)據(jù)進(jìn)行打包具體包括如下子步驟:
s31調(diào)試中心對(duì)jtag轉(zhuǎn)換模塊實(shí)行安全認(rèn)證;當(dāng)系統(tǒng)存在不同的jtag轉(zhuǎn)換模塊時(shí),為每個(gè)jtag轉(zhuǎn)換模塊自動(dòng)或者手動(dòng)分配不同的ip以及端口地址;
s32調(diào)試中心將調(diào)試數(shù)據(jù)格式進(jìn)行轉(zhuǎn)換,將調(diào)試數(shù)據(jù)打包成以太網(wǎng)數(shù)據(jù)幀格式,或者將網(wǎng)口收到的數(shù)據(jù)包解析成調(diào)試需要數(shù)據(jù);
s33將轉(zhuǎn)換后的數(shù)據(jù)送到網(wǎng)口,并從網(wǎng)口接收調(diào)試數(shù)據(jù)以太網(wǎng)包。
進(jìn)一步限定,所述的安全認(rèn)證是通過(guò)識(shí)別jtag轉(zhuǎn)換模塊的id信息進(jìn)行認(rèn)證。
進(jìn)一步限定,所述的數(shù)據(jù)格式進(jìn)行轉(zhuǎn)換是將數(shù)據(jù)格式轉(zhuǎn)換為換為標(biāo)準(zhǔn)以太網(wǎng)包結(jié)構(gòu)。
進(jìn)一步限定,所述的解析jtag協(xié)議,具體包括如下子步驟:
s51輸出調(diào)試時(shí)鐘tck,同時(shí)內(nèi)部時(shí)鐘時(shí)序同步;
s52輸出調(diào)試模式tms;
s53jtag轉(zhuǎn)換模塊接收到的以太網(wǎng)包解析之后進(jìn)行并串轉(zhuǎn)換并緩存、同步輸出到tdi,jtag轉(zhuǎn)換模塊發(fā)送給調(diào)試中心的數(shù)據(jù)緩存、同步之后串并轉(zhuǎn)換再打包成以太網(wǎng)數(shù)據(jù)包。
進(jìn)一步限定,所述的解析jtag協(xié)議將數(shù)據(jù)解析為jtag數(shù)據(jù)流。
進(jìn)一步限定,所述的調(diào)試中心與jtag轉(zhuǎn)換模塊通過(guò)無(wú)線或者有線網(wǎng)絡(luò)相連,jtag轉(zhuǎn)換模塊通過(guò)jtag電纜與被測(cè)設(shè)備連接。
進(jìn)一步限定,能夠同時(shí)對(duì)至少一臺(tái)被測(cè)設(shè)備進(jìn)行遠(yuǎn)程調(diào)試。
進(jìn)一步限定,所述的jtag轉(zhuǎn)換模塊包括:可編程邏輯單元、數(shù)據(jù)輸入輸出單元和以太網(wǎng)控制單元。
進(jìn)一步限定,jtag遠(yuǎn)程調(diào)試方法的流程和涉及到的jtag轉(zhuǎn)換模塊的協(xié)議轉(zhuǎn)換流程均能制作為芯片。
本發(fā)明的有益效果是:本發(fā)明提供一種jtag遠(yuǎn)程調(diào)試方法,實(shí)現(xiàn)遠(yuǎn)程調(diào)試,可以利用同一臺(tái)或多臺(tái)電腦調(diào)試多臺(tái)對(duì)應(yīng)設(shè)備。通過(guò)集成jtag轉(zhuǎn)換模塊實(shí)現(xiàn)的主要功能是以太網(wǎng)轉(zhuǎn)jtag。模塊內(nèi)部可通過(guò)燒寫(xiě)不同的軟件實(shí)現(xiàn)不同的jtag應(yīng)用。主要支持fpga或者cpld編程、下載、燒寫(xiě)、仿真、調(diào)試等;flash、存儲(chǔ)設(shè)備編程、下載、燒寫(xiě)、仿真、調(diào)試等;microprocessor/microcontroller等器件編程、下載、燒寫(xiě)、仿真、調(diào)試等;以及其他支持標(biāo)準(zhǔn)jtag標(biāo)準(zhǔn)協(xié)議的可在線調(diào)試器件。本發(fā)明用以太網(wǎng)協(xié)議的方式,替代了原來(lái)usb的流程,將原來(lái)pc與底層硬件交互的數(shù)據(jù)幀用網(wǎng)絡(luò)包形式進(jìn)行封裝。
附圖說(shuō)明
圖1為一種jtag遠(yuǎn)程調(diào)試方法流程圖;
圖2為利用本發(fā)明的調(diào)試系統(tǒng)結(jié)構(gòu)圖。
具體實(shí)施方式
下面結(jié)合附圖進(jìn)一步詳細(xì)描述本發(fā)明的技術(shù)方案,但本發(fā)明的保護(hù)范圍不局限于以下所述。
如圖1所示,一種jtag遠(yuǎn)程調(diào)試方法,它包括如下步驟:
s1jtag轉(zhuǎn)換模塊上電自檢:通電之后進(jìn)行自檢,主要檢測(cè)jtag轉(zhuǎn)換模塊的可編程邏輯單元、數(shù)據(jù)輸入輸出單元和以太網(wǎng)控制單元是否正常包括有無(wú)邏輯錯(cuò)誤,是否正常通電等,若自檢正常,則進(jìn)行下一步驟;反之終止調(diào)試,并生成錯(cuò)誤信息報(bào)告,操作員可以根據(jù)錯(cuò)誤信息報(bào)告中的錯(cuò)誤代碼進(jìn)而判斷發(fā)生的具體情況并做出相應(yīng)解決措施,執(zhí)行故障排除后重復(fù)自檢直至檢測(cè)正常為止,在必要情況下可以不進(jìn)行自檢。
s2檢查jtag轉(zhuǎn)換模塊與調(diào)試中心是否連接:即自動(dòng)檢測(cè)檢查jtag轉(zhuǎn)換模塊與調(diào)試中心的網(wǎng)絡(luò)通信是否暢通,若無(wú)異常則進(jìn)行下一步驟;反之終止調(diào)試,并提示通信連接失敗,系統(tǒng)自動(dòng)重新加載驅(qū)動(dòng),再進(jìn)行通信狀態(tài)檢測(cè),若無(wú)異常則進(jìn)行下一步驟;若還是無(wú)法連接,操作員進(jìn)行手動(dòng)加載驅(qū)動(dòng)直至連接正常,在必要情況下可以不進(jìn)行連接檢測(cè)。
s3調(diào)試中心將調(diào)試數(shù)據(jù)進(jìn)行處理:首先啟動(dòng)以太網(wǎng)轉(zhuǎn)jtag的應(yīng)用程序,調(diào)試中心同時(shí)獲取jtag轉(zhuǎn)換模塊的id等信息,并對(duì)其進(jìn)行安全認(rèn)證,若與數(shù)據(jù)庫(kù)預(yù)存的jtag轉(zhuǎn)換模塊的id信息相匹配則認(rèn)證通過(guò),反之認(rèn)證失敗,并且中斷調(diào)試中心與jtag轉(zhuǎn)換模塊的通信。當(dāng)存在不同的jtag轉(zhuǎn)換模塊時(shí),為每個(gè)jtag轉(zhuǎn)換模塊自動(dòng)或者手動(dòng)分配不同的ip以及端口地址,重復(fù)上述認(rèn)證過(guò)程。認(rèn)證通過(guò)之后,輸入調(diào)試信息,并調(diào)用xilinx等軟件對(duì)調(diào)試數(shù)據(jù)進(jìn)行數(shù)據(jù)格式轉(zhuǎn)換,將其轉(zhuǎn)換為特殊幀結(jié)構(gòu),并將數(shù)據(jù)進(jìn)行以太網(wǎng)數(shù)據(jù)包打包,相反的過(guò)程,從協(xié)議轉(zhuǎn)換接收到的以太網(wǎng)包需要進(jìn)行數(shù)據(jù)格式轉(zhuǎn)換,轉(zhuǎn)換成相應(yīng)的數(shù)據(jù)格式。
s4jtag轉(zhuǎn)換模塊接收調(diào)試中心發(fā)送的數(shù)據(jù)包:調(diào)試中心將轉(zhuǎn)換后的以太網(wǎng)包送到網(wǎng)口之后通過(guò)數(shù)據(jù)通道將數(shù)據(jù)包發(fā)送至jtag轉(zhuǎn)換模塊,同時(shí)調(diào)試中心也接收jtag轉(zhuǎn)換模塊的數(shù)據(jù)反饋。
s5解析jtag協(xié)議:jtag轉(zhuǎn)換模塊將接收到的數(shù)據(jù)包進(jìn)行解析,輸出調(diào)試時(shí)鐘tck,同時(shí)內(nèi)部時(shí)鐘時(shí)序同步;輸出調(diào)試模式tms;jtag轉(zhuǎn)換模塊接收到的以太網(wǎng)包解析之后進(jìn)行并串轉(zhuǎn)換并緩存、同步輸出到tdi,jtag轉(zhuǎn)換模塊發(fā)送給調(diào)試中心的數(shù)據(jù)緩存、同步之后串并轉(zhuǎn)換再打包成以太網(wǎng)數(shù)據(jù)包。
s6解析得到的電平信號(hào)通過(guò)jtag線纜傳輸給被測(cè)設(shè)備,并且由調(diào)試中心控制調(diào)試開(kāi)始,通過(guò)jtag轉(zhuǎn)換模塊內(nèi)部燒寫(xiě)不同的軟件實(shí)現(xiàn)不同的jtag應(yīng)用。實(shí)現(xiàn)了fpga或者cpld編程、下載、燒寫(xiě)、仿真、調(diào)試等;flash、存儲(chǔ)設(shè)備編程、下載、燒寫(xiě)、仿真、調(diào)試等;microprocessor/microcontroller等器件編程、下載、燒寫(xiě)、仿真、調(diào)試等;以及其他支持標(biāo)準(zhǔn)jtag標(biāo)準(zhǔn)協(xié)議的可在線調(diào)試器件。
優(yōu)選的,調(diào)試中心與jtag轉(zhuǎn)換模塊通過(guò)無(wú)線或者有線網(wǎng)絡(luò)相連,jtag轉(zhuǎn)換模塊通過(guò)jtag電纜與被測(cè)設(shè)備連接。
優(yōu)選的,能夠同時(shí)對(duì)至少一臺(tái)被測(cè)設(shè)備進(jìn)行遠(yuǎn)程調(diào)試。
本發(fā)明用以太網(wǎng)協(xié)議的方式,替代了原來(lái)usb的流程,將原來(lái)pc與底層硬件交互的數(shù)據(jù)幀用網(wǎng)絡(luò)包形式進(jìn)行封裝,發(fā)送至底層硬件的可編程器件;可編程器件中將網(wǎng)絡(luò)包的原jtag數(shù)據(jù)取出,并按照jtag協(xié)議規(guī)范進(jìn)行發(fā)送,jtag協(xié)議規(guī)范的反饋數(shù)據(jù)也使用以太網(wǎng)包的形式從可編程邏輯器件中反向發(fā)送至pc軟件。通過(guò)以太網(wǎng)的方式可以在調(diào)試中心上,通過(guò)網(wǎng)絡(luò)地址等特征如ip、端口號(hào),對(duì)網(wǎng)絡(luò)中的存在的不同的板卡進(jìn)行jtag調(diào)試加載。并且凡是支持標(biāo)準(zhǔn)jtag協(xié)議的調(diào)試設(shè)備,都能夠通過(guò)此方法進(jìn)行替代。
如圖2所示,一種jtag遠(yuǎn)程調(diào)試系統(tǒng),它包括:調(diào)試中心、jtag轉(zhuǎn)換模塊和被測(cè)設(shè)備;
調(diào)試中心與jtag轉(zhuǎn)換模塊通過(guò)無(wú)線或者有線網(wǎng)絡(luò)連接,jtag轉(zhuǎn)換模塊通過(guò)jtag電纜與被測(cè)設(shè)備連接;
進(jìn)一步限定,可以讓交換機(jī)接上互聯(lián)網(wǎng)公網(wǎng)口,實(shí)現(xiàn)互聯(lián)網(wǎng)遠(yuǎn)程加載調(diào)試。
進(jìn)一步限定,所述的調(diào)試中心可以同時(shí)對(duì)至少一臺(tái)被測(cè)設(shè)備進(jìn)行調(diào)試。
進(jìn)一步限定,所述的調(diào)試中心可以對(duì)被測(cè)設(shè)備進(jìn)行遠(yuǎn)程調(diào)試。
進(jìn)一步限定,所述的調(diào)試中心是安裝有以太網(wǎng)轉(zhuǎn)jtag程序及xilinx的軟件、arm的軟件、altera的軟件等的計(jì)算機(jī),此處的也可以是自定義的軟件,只要滿足jtag協(xié)議規(guī)范。
進(jìn)一步限定,所述的jtag轉(zhuǎn)換模塊包括:可編程邏輯單元、數(shù)據(jù)輸入輸出單元和以太網(wǎng)控制單元。
進(jìn)一步限定,所述的以太網(wǎng)控制單元為以太網(wǎng)phy或者以太網(wǎng)控制器的至少一種。
進(jìn)一步限定,可編程邏輯單元可以是單片機(jī)、cpld、fpga、powerpc、arm等任何器件。
進(jìn)一步限定,被測(cè)設(shè)備包括cpld、mcu、fpga、flash及其他支持jtag調(diào)試器件的一種或多種。
以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)理解本發(fā)明并非局限于本文所披露的形式,不應(yīng)看作是對(duì)其他實(shí)施例的排除。比如,將整個(gè)方法流程、利用jtag轉(zhuǎn)換模塊的轉(zhuǎn)換流程所制作的芯片等都屬于本發(fā)明的其他實(shí)施例。而可用于各種其他組合、修改和環(huán)境,并能夠在本文所述構(gòu)想范圍內(nèi),通過(guò)上述教導(dǎo)或相關(guān)領(lǐng)域的技術(shù)或知識(shí)進(jìn)行改動(dòng)。而本領(lǐng)域人員所進(jìn)行的改動(dòng)和變化不脫離本發(fā)明的精神和范圍,則都應(yīng)在本發(fā)明所附權(quán)利要求的保護(hù)范圍內(nèi)。