欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

支持多種底層接口的在線仿真器裝置的制作方法

文檔序號:6437483閱讀:213來源:國知局
專利名稱:支持多種底層接口的在線仿真器裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種嵌入式CPU在線仿真器,尤其涉及一種支持多種與目標(biāo)CPU連接的底層接口的在線仿真器。
背景技術(shù)
目前,嵌入式技術(shù)應(yīng)用已經(jīng)在現(xiàn)實(shí)生活中無處不在,居家旅行,交通控制,無線通信,多媒體娛樂等都應(yīng)用到了嵌入式技術(shù)。在嵌入式CPU程序開發(fā)調(diào)試過程中,程序開發(fā)人員一般都會(huì)使用到在線仿真下載調(diào)試程序,設(shè)置斷點(diǎn)、單步執(zhí)行、觀察、修改處理器寄存器以及內(nèi)存變量。在線仿真器是連接PC機(jī)上處理器調(diào)試程序和目標(biāo)CPU的中間體,實(shí)現(xiàn)PC上調(diào)試軟件與目標(biāo)CPU之間通信。而PC調(diào)試軟件與目標(biāo)CPU的通信實(shí)際上在線仿真器接收來自PC調(diào)試軟件的調(diào)試命令,并解析命令,告知CPU該進(jìn)行如何操作,如果CPU有返回值, 在線仿真器則繼續(xù)讀取CPU返回?cái)?shù)據(jù),并回傳給PC調(diào)試軟件。調(diào)試軟件以此得到CPU內(nèi)部數(shù)據(jù),而程序開發(fā)人員根據(jù)這些數(shù)據(jù)判斷程序是否正確執(zhí)行。目前,在線仿真器與PC調(diào)試軟件之間一般都通過USB接口通信,在線仿真器在PC 調(diào)試軟件接口端,對數(shù)據(jù)的處理方式基本統(tǒng)一。而另一方面,雖然大多數(shù)CPU都支持以JTAG 通信方式進(jìn)行在線調(diào)試,但是,不同嵌入式CPU與在線仿真器的底層接口卻還各不相同。以至于,如果程序開發(fā)人員需要選用其它的處理器,就需要重新購買新的在線仿真器,增加了成本;還需要重新學(xué)習(xí)新的在線仿真器的使用,增加了程序開發(fā)的難度。

發(fā)明內(nèi)容
為了克服現(xiàn)有在線仿真器與CPU接口不統(tǒng)一而造成的生產(chǎn)成本和開發(fā)難度增加的不足,本發(fā)明提供一種同時(shí)支持多種與CPU通信的底層接口、有效降低生產(chǎn)成本、減少程序開發(fā)的難度的支持多種底層接口的在線仿真器裝置。本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是一種支持多種底層接口的在線仿真器裝置,所述在線仿真器裝置包括調(diào)試命令接收單元,用以接收來自PC機(jī)調(diào)試軟件的命令數(shù)據(jù),并對命令的格式進(jìn)行正確性檢查,對于格式正確的命令,調(diào)試命令接收單元會(huì)向命令解析與執(zhí)行單元發(fā)出操作請求,對于格式錯(cuò)誤的命令不作處理;命令解析與執(zhí)行單元,用以對來自調(diào)試命令接收單元的操作請求進(jìn)行解析,并根據(jù)解析得到的命令類型將操作分解成微操作,以微操作的形式向所述JTAG接口驅(qū)動(dòng)單元發(fā)出接口轉(zhuǎn)換請求;JTAG接口驅(qū)動(dòng)單元,用以接收命令解釋與執(zhí)行單元的微操作轉(zhuǎn)換請求,向目標(biāo) CPU發(fā)送JTAG接口驅(qū)動(dòng)信號,或從目標(biāo)CPU讀取數(shù)據(jù);JTAG驅(qū)動(dòng)單元在每個(gè)微操作驅(qū)動(dòng)完成之后向所述命令解析與執(zhí)行單元發(fā)出JTAG接口驅(qū)動(dòng)完成信號;數(shù)據(jù)封裝單元,用以在讀調(diào)試命令下,接收J(rèn)TAG接口驅(qū)動(dòng)單元返回的數(shù)據(jù)并將數(shù)據(jù)按照設(shè)定格式封裝后按字節(jié)發(fā)回給PC機(jī)調(diào)試軟件。
作為優(yōu)選的一種方案所述命令解析與執(zhí)行單元中,解析執(zhí)行的命令包括目標(biāo) CPU通用寄存器讀寫命令、目標(biāo)CPU控制寄存器讀寫命令、目標(biāo)CPU中輔助調(diào)試單元寄存器讀寫命令以及與目標(biāo)CPU相連的存儲(chǔ)器讀寫命令。作為優(yōu)選的另一種方案所述命令解析與執(zhí)行單元中,微操作包括備份CPU通用寄存器,恢復(fù)CPU通用寄存器,更新CPU通用寄存器,讀取CPU通用寄存器,備份CPU輔助調(diào)試單元現(xiàn)場寄存器,恢復(fù)CPU輔助調(diào)試單元現(xiàn)場寄存器和更新CPU輔助調(diào)試單元現(xiàn)場寄存器。進(jìn)一步,所述命令解析與執(zhí)行單元將PC機(jī)的調(diào)試命令解析為多個(gè)微操作,并控制 JTAG接口驅(qū)動(dòng)單元按序完成各個(gè)微操作步驟。所述命令解析與執(zhí)行單元對相同的調(diào)試命令解析為相同的微操作組合,而與連接目標(biāo)CPU的底層接口無關(guān)。作為優(yōu)選的再一種方案所述JTAG接口驅(qū)動(dòng)單元包含微操作控制狀態(tài)機(jī)和一個(gè)公用的TAP狀態(tài)機(jī),每個(gè)微操作控制狀態(tài)機(jī)與TAP控制器對應(yīng)一種底層接口。進(jìn)一步,所述JTAG接口驅(qū)動(dòng)單元中,微操作控制狀態(tài)機(jī)首先解析微操作及其對應(yīng)的參數(shù),然后將解析得到的一些參數(shù)輸入到TAP狀態(tài)機(jī),微操作控制狀態(tài)機(jī)啟動(dòng)TAP狀態(tài)機(jī),并等待TAP狀態(tài)機(jī)運(yùn)行結(jié)束。更進(jìn)一步,所述JTAG接口驅(qū)動(dòng)單元中,通過設(shè)置裝置中的寄存器選擇使用其中一個(gè)微操作控制狀態(tài)機(jī),由此實(shí)現(xiàn)對多種底層接口的支持。本發(fā)明的有益效果主要表現(xiàn)在1)調(diào)試命令執(zhí)行過程統(tǒng)一化。本發(fā)明通過將調(diào)試命令分解成微操作組合,實(shí)現(xiàn)了對于不同底層接口的命令執(zhí)行過程統(tǒng)一。2、可擴(kuò)展性好。 本發(fā)明通過將上層命令的執(zhí)行與底層接口的驅(qū)動(dòng)分離開,使得整體架構(gòu)清晰,可擴(kuò)展性好, 只要設(shè)計(jì)一個(gè)微操作控制狀態(tài)機(jī)就能實(shí)現(xiàn)對一種新的底層接口的支持。


圖1是在線仿真器裝置總體結(jié)構(gòu)示意圖。圖2是寫存儲(chǔ)調(diào)試命令格式的示例圖。圖3是調(diào)試命令接收單元內(nèi)部結(jié)構(gòu)示意圖。圖4是命令解析與執(zhí)行單元內(nèi)部結(jié)構(gòu)示意圖。圖5是JTAG接口驅(qū)動(dòng)單元內(nèi)部結(jié)構(gòu)示意圖。圖6是數(shù)據(jù)封裝單元內(nèi)部結(jié)構(gòu)示意圖。
具體實(shí)施例方式下面結(jié)合附圖對本發(fā)明做進(jìn)一步描述。參照圖1 圖6,一種支持多種底層接口的在線仿真器裝置,所述在線仿真裝置是以幀的形式接收調(diào)試命令的。幀是由若干字節(jié)組成的,第一個(gè)字節(jié)總是為0x68,標(biāo)識命令幀的開始,緊接著的一個(gè)字節(jié)為命令碼,其后是命令帶的參數(shù),最后一個(gè)字節(jié)總是0x16標(biāo)識幀的結(jié)束。所述在線仿真器裝置包括調(diào)試命令接收單元,參照圖3,該單元以8比特并行的方式接收PC調(diào)試軟件發(fā)過來的調(diào)試命令,單元中包含一個(gè)狀態(tài)機(jī)控制數(shù)據(jù)的讀取行為。該單元在調(diào)試命令緩存不為空,并且該單元為空閑狀態(tài)或者命令解析與執(zhí)行單元需要數(shù)據(jù)時(shí)發(fā)出讀請求信號;在單元為空閑狀態(tài)下讀出的數(shù)據(jù)被認(rèn)為是命令幀開始標(biāo)識,如果數(shù)據(jù)不為0x68,則單元返回空閑狀態(tài),如果幀開始標(biāo)識正確則繼續(xù)讀下一個(gè)字節(jié)數(shù)據(jù),并認(rèn)為該數(shù)據(jù)為命令碼,讀出命令碼之后將該命令碼與當(dāng)前所支持的所有命令進(jìn)行格式比較,如果命令格式錯(cuò)誤則不作處理, 單元重新回到空閑狀態(tài);如果命令格式正則從命令碼中分離出命令類型作為操作請求發(fā)給命令解析與執(zhí)行單元,并等待命令解析與執(zhí)行單元執(zhí)行完調(diào)試命令并發(fā)出命令執(zhí)行完成信號;然后調(diào)試命令接收單元讀出命令幀的最后一個(gè)字節(jié),命令幀結(jié)束標(biāo)識,并重新回到空閑狀態(tài)。命令解析與執(zhí)行單元參照圖4,負(fù)責(zé)對來自調(diào)試命令接收單元的操作請求進(jìn)行解析,并根據(jù)解析得到的命令將操作分成多個(gè)微操作,并以微操作形式向JTAG接口驅(qū)動(dòng)單元發(fā)出接口轉(zhuǎn)換請求。該單元根據(jù)調(diào)試命令接收單元發(fā)出的操作請求,分析出具體命令,這些命令包含存儲(chǔ)器讀寫命令,CPU寄存器讀寫命令和CPU輔助調(diào)試單元寄存器讀寫命令。命令解析與執(zhí)行單元中包含3個(gè)狀態(tài)機(jī)負(fù)責(zé)對這3類命令的執(zhí)行,并由上述命令解析的結(jié)果激活相應(yīng)的狀態(tài)機(jī)。每個(gè)上述微操作對應(yīng)狀態(tài)機(jī)中的一個(gè)或兩個(gè)狀態(tài),稱之為微操作狀態(tài) 對于在一個(gè)狀態(tài)能完成的微操作,狀態(tài)機(jī)在一個(gè)微操作狀態(tài)發(fā)出微操作請求并在下一個(gè)狀態(tài)等待微操作的完成;對于兩個(gè)狀態(tài)完成的微操作,狀態(tài)機(jī)在前一個(gè)狀態(tài)初始化一些微操作所需的參數(shù),包括發(fā)出調(diào)試命令中數(shù)據(jù)讀取命令幀中的數(shù)據(jù),在第二個(gè)狀態(tài)發(fā)出微操作請求并在下一個(gè)狀態(tài)等待微操作完成。命令解析與執(zhí)行單元在讀類型的調(diào)試命令開始執(zhí)行的時(shí)候向數(shù)據(jù)封裝單元發(fā)出數(shù)據(jù)封裝請求,單元在狀態(tài)機(jī)完成命令的時(shí)候會(huì)發(fā)出命令完成信號。在該單元中3個(gè)狀態(tài)機(jī)都會(huì)發(fā)出調(diào)試命令數(shù)據(jù)讀請求信號,這3個(gè)信號通過一個(gè)或門輸出到調(diào)試命令接收單元;也都會(huì)發(fā)出命令完成信號,同樣通過一個(gè)或門輸出到調(diào)試命令接收單元;三個(gè)狀態(tài)機(jī)發(fā)出的微操作請求信號通過一個(gè)數(shù)據(jù)選擇器輸出,選擇器的選擇信號依賴于上述命令解析結(jié)果,調(diào)試命令數(shù)據(jù)則通過調(diào)試命令接收單元直通到該單元,同時(shí)該數(shù)據(jù)還會(huì)直通到JTAG接口驅(qū)動(dòng)單元。JTAG接口驅(qū)動(dòng)單元參照圖5,該單元負(fù)責(zé)執(zhí)行來自命令解析與執(zhí)行單元的微操作命令,向目標(biāo)CPU發(fā)送JTAG接口驅(qū)動(dòng)信號,或從目標(biāo)CPU讀取數(shù)據(jù)JTAG驅(qū)動(dòng)單元在每個(gè)微操作驅(qū)動(dòng)完成之后向所述命令解析與執(zhí)行單元發(fā)出JTAG接口驅(qū)動(dòng)完成信號。JTAG接口驅(qū)動(dòng)單元中包含若干個(gè)微操作控制狀態(tài)機(jī)和一個(gè)公用的TAP狀態(tài)機(jī)以及進(jìn)行JTAG通信的數(shù)據(jù)移位寄存器,每個(gè)微操作控制狀態(tài)機(jī)對應(yīng)一種底層接口,該單元能夠根據(jù)用戶的設(shè)置在接收到微操作請求的時(shí)候選擇激活其中一個(gè)微操作控制狀態(tài)機(jī)。在微操作控制狀態(tài)機(jī)中,通過解析微操作命令得到TAP狀態(tài)機(jī)所需的參數(shù)并激活TAP狀態(tài)機(jī)開始接口轉(zhuǎn)換,多個(gè)微操作控制狀態(tài)機(jī)輸出的TAP狀態(tài)機(jī)參數(shù)通過數(shù)據(jù)選擇器共同驅(qū)動(dòng)TAP狀態(tài)機(jī),輸出的TAP 狀態(tài)機(jī)參數(shù)包括指令、指令長度、數(shù)據(jù)和數(shù)據(jù)長度。微操縱控制狀態(tài)機(jī)在執(zhí)行讀類型的微操作時(shí),會(huì)通過驅(qū)動(dòng)TAP狀態(tài)機(jī)讀出目標(biāo)CPU返回的數(shù)據(jù)并傳給數(shù)據(jù)封裝單元,并在向數(shù)據(jù)封轉(zhuǎn)單元傳送數(shù)據(jù)之前傳送數(shù)據(jù)的長度信息,同時(shí)會(huì)在所有有效數(shù)據(jù)發(fā)送完成之后,發(fā)出信號告知數(shù)據(jù)封裝單元數(shù)據(jù)已經(jīng)全部讀取完成。數(shù)據(jù)封裝單元參照圖6,該單元負(fù)責(zé)在需要有數(shù)據(jù)返回到調(diào)試軟件的調(diào)試命令的執(zhí)行過程中,接收來自JTAG接口驅(qū)動(dòng)單元的數(shù)據(jù),并將數(shù)據(jù)按照調(diào)試命令幀相似的格式
5封裝成一幀,然后傳回給PC端。該單元中包含一個(gè)狀態(tài)機(jī)控制數(shù)據(jù)的讀取與封裝發(fā)送過程,狀態(tài)機(jī)在空閑狀態(tài)收到來自調(diào)試命令與解析單元發(fā)來的數(shù)據(jù)封裝請求時(shí)被初始化,然后讀取JTAG接口驅(qū)動(dòng)單元傳來的數(shù)據(jù),封裝數(shù)據(jù),并回傳給PC端。數(shù)據(jù)的讀取,封裝與回傳過程是同步執(zhí)行的,封裝過程就是在數(shù)據(jù)頭加入幀開始標(biāo)識0x68和數(shù)據(jù)長度,在數(shù)據(jù)末加入結(jié)束標(biāo)識0x16。該單元在收到JTAG接口驅(qū)動(dòng)單元發(fā)來的數(shù)據(jù)讀取完成信號之后,向 PC端發(fā)出最后一個(gè)結(jié)束字節(jié),重新回到空閑狀態(tài)。本實(shí)施實(shí)例中對“讀存儲(chǔ)器”命令進(jìn)行解析執(zhí)行。PC調(diào)試軟件8發(fā)過來的調(diào)試命令數(shù)據(jù)如圖2所示,具體表示是向存儲(chǔ)器地址OxSOOOFCAO處寫入一個(gè)32位的數(shù)據(jù) 0x4433AA55o調(diào)試命令接收單元2在空閑狀態(tài)下接收到調(diào)試命令數(shù)據(jù)的第一個(gè)字節(jié)0x68時(shí),表示一次新的調(diào)試命令數(shù)據(jù)傳輸?shù)拈_始,并在下一次接收的數(shù)據(jù)將是命令字節(jié);調(diào)試命令接收單元2接收到命令字節(jié)0x44后,將該命令與當(dāng)前支持的所有命令碼比較看是否為有效命令;命令格式正確,調(diào)試命令接收單元2向命令解析與執(zhí)行單元3發(fā)出操作請求,同時(shí)會(huì)繼續(xù)接收調(diào)試命令數(shù)據(jù)并發(fā)給命令解析與執(zhí)行單元3和JTAG接口轉(zhuǎn)換單元5。命令解析與執(zhí)行單元3在空閑狀態(tài)下接收到調(diào)試命令接收單元2發(fā)來的操作請求信號之后,對命令碼0x44進(jìn)行命令解析;解析得知該命令為“存儲(chǔ)器寫命令”,且要寫數(shù)據(jù)的寬度為32位。命令解析與執(zhí)行單元接收下一個(gè)字節(jié)數(shù)據(jù)0x03,表示需要向存儲(chǔ)器寫入 4個(gè)字節(jié),也就是一次寫操作。該單元對該命令的執(zhí)行過程是將該命令分解成備份CPU輔助調(diào)試單元現(xiàn)場寄存器、備份CPU通用寄存器RO和Rl、更新CPU通用寄存器RO和Rl、更新 CPU輔助調(diào)試單元現(xiàn)場寄存器、恢復(fù)CPU通用寄存器RO和Rl、恢復(fù)CPU輔助調(diào)試單元現(xiàn)場寄存器這9個(gè)微操作組合。命令解析與執(zhí)行單元3依次對每一個(gè)微操作作如下處理向JTAG 接口驅(qū)動(dòng)單元5發(fā)出JTAG接口轉(zhuǎn)換請求,并等待JTAG接口驅(qū)動(dòng)單元完成該次轉(zhuǎn)換。JTAG接口驅(qū)動(dòng)單元5在空閑狀態(tài)下接收到命令解析與執(zhí)行單元3發(fā)來的JTAG接口轉(zhuǎn)換請求之后,與當(dāng)前目標(biāo)CPU底層接口對應(yīng)的微操作控制狀態(tài)機(jī)4解析要處理的微操作,并產(chǎn)生控制TAP狀態(tài)機(jī)的4個(gè)參數(shù)IR_data、IR_length、DR_data、DR_length,其中IR_ length為IR_data的比特長度,DR_length為DR_data的比特長度;微操作控制狀態(tài)機(jī)將參數(shù)傳給TAP狀態(tài)機(jī)6,并啟動(dòng)TAP狀態(tài)機(jī)轉(zhuǎn)換;TAP狀態(tài)機(jī)6在轉(zhuǎn)換完成之后向微操作控制狀態(tài)機(jī)4發(fā)出轉(zhuǎn)換完成信號,微操作控制狀態(tài)機(jī)4在收到轉(zhuǎn)換完成信號之后會(huì)向命令解析與執(zhí)行單元3發(fā)出JTAG接口驅(qū)動(dòng)完成信號。每個(gè)微操作執(zhí)行過程依次如下1)在執(zhí)行備份CPU輔助調(diào)試單元現(xiàn)場寄存器微操作中,TAP狀態(tài)機(jī)6產(chǎn)生JTAG信號驅(qū)動(dòng)與目標(biāo)CPU連接的JTAG接口,目標(biāo)CPU輔助調(diào)試單元會(huì)將現(xiàn)場寄存器通過JTAG接口返回到JTAG接口驅(qū)動(dòng)單元5 JTAG接口驅(qū)動(dòng)單元在TAP轉(zhuǎn)換完成之后,將目標(biāo)CPU返回的值保存在寄存器中完成當(dāng)前微操作;2)在執(zhí)行備份CPU通用寄存器RO微操作中,微操作控制狀態(tài)機(jī)4需要兩次啟動(dòng) TAP狀態(tài)機(jī)首先,微操作控制狀態(tài)機(jī)請求寫CPU輔助調(diào)試單元現(xiàn)場寄存器,設(shè)置TAP狀態(tài)機(jī)的4個(gè)參數(shù)并啟動(dòng)TAP狀態(tài)機(jī),此時(shí)參數(shù)中的DR_data為CPU的一條指令“mov r0, r0” 的指令碼,CPU執(zhí)行這條指令并將需要回寫的值(R0寄存器的值)寫入到CPU輔助調(diào)試單元現(xiàn)場寄存器;然后微操作控制狀態(tài)機(jī)4第二次啟動(dòng)TAP狀態(tài)機(jī)進(jìn)行轉(zhuǎn)換,讀出CPU輔助調(diào)試單元現(xiàn)場寄存器,并將目標(biāo)CPU返回的值保存在寄存器中完成當(dāng)前微操作;
3)執(zhí)行備份CPU通用寄存器Rl微操作與備份CPU通用寄存器RO微操作類似;4)在執(zhí)行更新CPU通用寄存器RO微操作中,微操作控制狀態(tài)機(jī)需要讀出調(diào)試命令接收單元2發(fā)來的數(shù)據(jù)首先,微結(jié)構(gòu)4接收調(diào)試命令接收單元2發(fā)來的4個(gè)字節(jié),組成一個(gè)32位的數(shù)據(jù)OxSOOOFCAO作為寫存儲(chǔ)器的地址,然后啟動(dòng)TAP狀態(tài)機(jī),將上述地址信息和一條指令“mov r0, r0”的指令碼組合寫入CPU輔助調(diào)試單元現(xiàn)場寄存器,TAP狀態(tài)機(jī)轉(zhuǎn)換完成后,CPU執(zhí)行這條指令并將尚儒地址信息寫入到CPU寄存器RO中,完成更新CPU通用寄存器RO的微操作;5)按照上述相同的步驟,再以調(diào)試命令接收單元發(fā)來的32位數(shù)據(jù)0x4433AA55更新CPU通用寄存器Rl ;6)在執(zhí)行更新CPU輔助調(diào)試單元現(xiàn)場寄存器微操作中,微操作控制狀態(tài)機(jī)4產(chǎn)生 TAP狀態(tài)機(jī)的4個(gè)參數(shù)并啟動(dòng)TAP狀態(tài)機(jī),其中DR_data為CPU的一條指令“st r0, rl”的指令碼,TAP狀態(tài)機(jī)轉(zhuǎn)換完成后,CPU執(zhí)行這條指令并將寄存器Rl中存儲(chǔ)的數(shù)據(jù)寫入寄存器 RO所指向的存儲(chǔ)器地址中,完成寫存儲(chǔ)器的操作;7)執(zhí)行恢復(fù)CPU通用寄存器Rl微操作和更新CPU通用寄存器Rl微操作類似,只是微操作控制狀態(tài)機(jī)傳給TAP狀態(tài)機(jī)的參數(shù)DR_data為在第三步備份CPU通用寄存器Rl 微操作中保存的結(jié)果;8)恢復(fù)CPU通用寄存器RO微操作與恢復(fù)CPU通用寄存器RO微操作類似;9)在執(zhí)行恢復(fù)CPU輔助調(diào)試單元現(xiàn)場寄存器微操作中,微操作控制狀態(tài)機(jī)4啟動(dòng) TAP狀態(tài)機(jī),請求寫CPU輔助調(diào)試單元現(xiàn)場假寄存器操作轉(zhuǎn)換,其中,TAP狀態(tài)機(jī)的參數(shù)DR_ data為在第一步備份CPU輔助調(diào)試單元現(xiàn)場寄存器微操作中保存的結(jié)果。在命令解析與執(zhí)行單元3接收到最后一次微操作完成信號時(shí),表示當(dāng)前調(diào)試命令已經(jīng)完成,而此時(shí)調(diào)試命令接收單元2繼續(xù)讀出最后的一個(gè)字節(jié)0x16,調(diào)試命令接收單元2 將此字節(jié)認(rèn)為是調(diào)試命令結(jié)束標(biāo)識,之后調(diào)試命令接收單元2重新回到空閑狀態(tài)準(zhǔn)備接收新的命令。
權(quán)利要求
1.一種支持多種底層接口的在線仿真器裝置,其特征在于所述在線仿真器裝置包括調(diào)試命令接收單元,用以接收來自PC機(jī)調(diào)試軟件的命令數(shù)據(jù),并對命令的格式進(jìn)行正確性檢查,對于格式正確的命令,調(diào)試命令接收單元會(huì)向命令解析與執(zhí)行單元發(fā)出操作請求,對于格式錯(cuò)誤的命令不作處理;命令解析與執(zhí)行單元,用以對來自調(diào)試命令接收單元的操作請求進(jìn)行解析,并根據(jù)解析得到的命令類型將操作分解成微操作,以微操作的形式向所述JTAG接口驅(qū)動(dòng)單元發(fā)出接口轉(zhuǎn)換請求;JTAG接口驅(qū)動(dòng)單元,用以接收命令解釋與執(zhí)行單元的微操作轉(zhuǎn)換請求,向目標(biāo)CPU發(fā)送JTAG接口驅(qū)動(dòng)信號,或從目標(biāo)CPU讀取數(shù)據(jù);JTAG驅(qū)動(dòng)單元在每個(gè)微操作驅(qū)動(dòng)完成之后向所述命令解析與執(zhí)行單元發(fā)出JTAG接口驅(qū)動(dòng)完成信號;數(shù)據(jù)封裝單元,用以在讀調(diào)試命令下,接收J(rèn)TAG接口驅(qū)動(dòng)單元返回的數(shù)據(jù)并將數(shù)據(jù)按照設(shè)定格式封裝后按字節(jié)發(fā)回給PC機(jī)調(diào)試軟件。
2.如權(quán)利要求1所述的支持多種底層接口的在線仿真器裝置,其特征在于所述命令解析與執(zhí)行單元中,解析執(zhí)行的命令包括目標(biāo)CPU通用寄存器讀寫命令、目標(biāo)CPU控制寄存器讀寫命令、目標(biāo)CPU中輔助調(diào)試單元寄存器讀寫命令以及與目標(biāo)CPU相連的存儲(chǔ)器讀寫命令。
3.如權(quán)利要求1或2所述的支持多種底層接口的在線仿真器裝置,其特征在于所述命令解析與執(zhí)行單元中,微操作包括備份CPU通用寄存器,恢復(fù)CPU通用寄存器,更新CPU 通用寄存器,讀取CPU通用寄存器,備份CPU輔助調(diào)試單元現(xiàn)場寄存器,恢復(fù)CPU輔助調(diào)試單元現(xiàn)場寄存器和更新CPU輔助調(diào)試單元現(xiàn)場寄存器。
4.如權(quán)利要求1或2所述的支持多種底層接口的在線仿真器裝置,其特征在于所述命令解析與執(zhí)行單元將PC機(jī)的調(diào)試命令解析為多個(gè)微操作,并控制JTAG接口驅(qū)動(dòng)單元按序完成各個(gè)微操作步驟。
5.如權(quán)利要求1或2所述的支持多種底層接口的在線仿真器裝置,其特征在于所述命令解析與執(zhí)行單元對相同的調(diào)試命令解析為相同的微操作組合,而與連接目標(biāo)CPU的底層接口無關(guān)。
6.如權(quán)利要求1所述的支持多種底層接口的在線仿真器裝置,其特征在于所述JTAG 接口驅(qū)動(dòng)單元包含微操作控制狀態(tài)機(jī)和一個(gè)公用的TAP狀態(tài)機(jī),每個(gè)微操作控制狀態(tài)機(jī)與 TAP控制器對應(yīng)一種底層接口。
7.如權(quán)利要求6所述的支持多種底層接口的在線仿真器裝置,其特征在于所述JTAG 接口驅(qū)動(dòng)單元中,微操作控制狀態(tài)機(jī)首先解析微操作及其對應(yīng)的參數(shù),然后將解析得到的一些參數(shù)輸入到TAP狀態(tài)機(jī),微操作控制狀態(tài)機(jī)啟動(dòng)TAP狀態(tài)機(jī),并等待TAP狀態(tài)機(jī)運(yùn)行結(jié)束ο
8.如權(quán)利要求6所述的支持多種底層接口的在線仿真器裝置,其特征在于所述JTAG 接口驅(qū)動(dòng)單元中,通過設(shè)置裝置中的寄存器選擇使用其中一個(gè)微操作控制狀態(tài)機(jī),由此實(shí)現(xiàn)對多種底層接口的支持。
全文摘要
一種支持多種底層接口的在線仿真器裝置,包括調(diào)試命令接收單元,用以接收和檢查來自PC機(jī)的調(diào)試命令;命令解析與執(zhí)行單元,用以解析命令,并將命令分解成多個(gè)微操作;JTAG接口與驅(qū)動(dòng)單元,用以解析與執(zhí)行微操作,將微操作轉(zhuǎn)換成JTAG接口信號驅(qū)動(dòng)目標(biāo)CPU,或從目標(biāo)CPU讀取數(shù)據(jù);數(shù)據(jù)封裝單元,用以對于不同的目標(biāo)CPU底層接口,命令解析與執(zhí)行單元對相同的命令有相同的分解,而JTAG接口驅(qū)動(dòng)單元中有多個(gè)微操作控制狀態(tài)機(jī)分別對應(yīng)于不同的底層接口,通過設(shè)置,使用其中一個(gè)與底層接口對應(yīng)的微操作控制狀態(tài)機(jī)。本發(fā)明同時(shí)支持多種與CPU通信的底層接口、有效降低生產(chǎn)成本、減少程序開發(fā)的難度。
文檔編號G06F11/36GK102508777SQ201110345228
公開日2012年6月20日 申請日期2011年11月4日 優(yōu)先權(quán)日2011年11月4日
發(fā)明者嚴(yán)曉浪, 葛海通, 黃歡歡 申請人:杭州中天微系統(tǒng)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
1
灯塔市| 金平| 河曲县| 株洲市| 连江县| 馆陶县| 奉贤区| 洛宁县| 彭泽县| 黄平县| 花垣县| 石门县| 临澧县| 灵川县| 微山县| 彰化市| 南靖县| 松潘县| 米泉市| 海淀区| 东乌珠穆沁旗| 峡江县| 如东县| 仙桃市| 封丘县| 无棣县| 高邑县| 巩留县| 吴堡县| 页游| 荥经县| 平安县| 嵊泗县| 文山县| 江源县| 株洲市| 唐海县| 尚义县| 牟定县| 金寨县| 乌兰察布市|