專利名稱:一種交叉調(diào)試系統(tǒng)、方法及調(diào)試器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于系統(tǒng)調(diào)試領(lǐng)域,尤其涉及一種交叉調(diào)試系統(tǒng)、方法及調(diào)試器。
背景技術(shù):
交叉調(diào)試系統(tǒng)是一種分布式系統(tǒng),主要應(yīng)用于支持JTAG (Joint Test ActionGroup,聯(lián)合測(cè)試行為組織,也稱為國(guó)際標(biāo)準(zhǔn)測(cè)試協(xié)議)的處理器中。其中JTAG標(biāo)準(zhǔn) 用于測(cè)試訪問(wèn)端口、采用邊界掃描的方法來(lái)測(cè)試印刷電路板。其包括宿主機(jī)、調(diào)試器和目標(biāo) 機(jī)。其中宿主機(jī)主要用于運(yùn)行調(diào)試軟件,目標(biāo)機(jī)主要用于待調(diào)試程序,宿主機(jī)中的調(diào)試軟件 通過(guò)調(diào)試器獲取目標(biāo)機(jī)的處理器信息,并對(duì)目標(biāo)機(jī)進(jìn)行控制,以對(duì)運(yùn)行在目標(biāo)機(jī)中的待調(diào) 試程序進(jìn)行調(diào)試。其可用于底層代碼、上層應(yīng)用程序的調(diào)試、芯片功能的驗(yàn)證等,也可以作 為測(cè)試工具使用。請(qǐng)參閱圖1,為現(xiàn)有的交叉調(diào)試系統(tǒng)的典型結(jié)構(gòu),該交叉調(diào)試系統(tǒng)包括宿主機(jī)、調(diào) 試器和目標(biāo)機(jī)。其中調(diào)試器一般為通過(guò)并口與宿主機(jī)連接的簡(jiǎn)易電纜,如wiggler電纜,或 者專用的調(diào)試器,如BDI2000。其具體調(diào)試過(guò)程簡(jiǎn)述如下宿主機(jī)中的調(diào)試軟件通過(guò)調(diào)試器 獲取目標(biāo)機(jī)的處理器的信息,并通過(guò)調(diào)試器控制目標(biāo)機(jī)的處理器,以實(shí)現(xiàn)對(duì)運(yùn)行在目標(biāo)機(jī) 中的程序進(jìn)行調(diào)試?,F(xiàn)有的上述調(diào)試器,如wiggler電纜雖然造價(jià)便宜,但必須采用帶有并口的計(jì)算 機(jī)作為宿主機(jī),且調(diào)試速度慢,使用不便?,F(xiàn)有的專用調(diào)試器,如BDI2000,雖然功能齊全、速 度快,但其價(jià)格昂貴。且現(xiàn)有的上述兩種調(diào)試器一般只支持一種類型處理器的調(diào)試,且需要 用戶依據(jù)所使用的目標(biāo)機(jī)的處理器類型選擇調(diào)試軟件,從而給用戶帶來(lái)極大地不便。
發(fā)明內(nèi)容
本發(fā)明實(shí)施例的目的在于提供一種調(diào)試器,旨在解決現(xiàn)有的調(diào)試器由于只支持一 種類型處理器的調(diào)試而帶來(lái)的極大不便的問(wèn)題。本發(fā)明實(shí)施例是這樣實(shí)現(xiàn)的,一種調(diào)試器,所述調(diào)試器包括第一接口單元,用于接收外部輸入的調(diào)試指令,還用于接收外部輸入的檢測(cè)程序 和/或調(diào)試固件,,并輸出所述調(diào)試固件的調(diào)試結(jié)果,或者所述檢測(cè)程序的檢測(cè)結(jié)果和所述 調(diào)試固件的調(diào)試結(jié)果;微控制器單元,與所述第一接口單元連接,用于運(yùn)行所述檢測(cè)程序,通過(guò)所述檢測(cè) 程序檢測(cè)目標(biāo)機(jī)的處理器類型,獲取適用于所述目標(biāo)機(jī)的處理器類型的調(diào)試固件,并運(yùn)行 所述調(diào)試固件,通過(guò)所述調(diào)試固件將所述第一接口單元接收的調(diào)試指令轉(zhuǎn)換成JTAG指令;第二接口單元,與所述微控制器單元連接,用于發(fā)送所述微控制器單元的JTAG指 令,并接收根據(jù)所述JTAG指令進(jìn)行調(diào)試的調(diào)試結(jié)果。本發(fā)明實(shí)施例的另一目的在于提供一種交叉調(diào)試系統(tǒng),所述系統(tǒng)包括所述調(diào)試 器,以及分別與所述調(diào)試器連接的宿主機(jī)和目標(biāo)機(jī)。本發(fā)明實(shí)施例的再一目的在于提供一種交叉調(diào)試方法,所述方法包括下述步驟
一種交叉調(diào)試方法,所述交叉調(diào)試的系統(tǒng)包括宿主機(jī)和目標(biāo)機(jī)和調(diào)試器,所述方 法包括調(diào)試器通過(guò)檢測(cè)程序檢測(cè)目標(biāo)機(jī)的處理器類型;調(diào)試器根據(jù)所述目標(biāo)機(jī)的處理器類型,獲取適用于所述處理器類型的調(diào)試固件;調(diào)試器通過(guò)所述調(diào)試固件接收并解析宿主機(jī)發(fā)送的調(diào)試指令,并將所述調(diào)試指令 轉(zhuǎn)換成JTAG指令后,發(fā)送至目標(biāo)機(jī),控制目標(biāo)機(jī)的調(diào)試。在本發(fā)明實(shí)施例中,調(diào)試器通過(guò)檢測(cè)程序檢測(cè)目標(biāo)機(jī)的處理器類型,并根據(jù)目標(biāo) 機(jī)的處理器類型獲取適用于該目標(biāo)機(jī)的處理器類型的調(diào)試固件,通過(guò)該調(diào)試固件將宿主機(jī) 發(fā)送的調(diào)試指令轉(zhuǎn)換成JTAG指令后,發(fā)送至目標(biāo)機(jī),控制目標(biāo)機(jī)的調(diào)試,從而可方便、快捷 的對(duì)不同類型處理器的目標(biāo)機(jī)進(jìn)行調(diào)試。調(diào)試器與宿主機(jī)之間通過(guò)USB接口進(jìn)行通信,從 而使調(diào)試器與宿主機(jī)之間的通信速度快、使用方便。通過(guò)將檢測(cè)程序和調(diào)試固件內(nèi)置于宿 主機(jī)中,在調(diào)試過(guò)程中,依次從宿主機(jī)中下載檢測(cè)程序和調(diào)試固件,從而使調(diào)試器的硬件簡(jiǎn) 單、體積小、成本低。
圖1是現(xiàn)有技術(shù)提供的交叉調(diào)試系統(tǒng)的結(jié)構(gòu)框圖;圖2是本發(fā)明實(shí)施例提供的調(diào)試器的結(jié)構(gòu)框圖;圖3是本發(fā)明實(shí)施例提供的交叉調(diào)試系統(tǒng)的結(jié)構(gòu)框圖;圖4是本發(fā)明另一實(shí)施例提供的交叉調(diào)試系統(tǒng)的結(jié)構(gòu)框圖;圖5是本發(fā)明實(shí)施例提供的交叉調(diào)試方法的實(shí)現(xiàn)流程圖;圖6是本發(fā)明另一實(shí)施例提供的交叉調(diào)試方法的實(shí)現(xiàn)流程圖。
具體實(shí)施例方式為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì) 本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并 不用于限定本發(fā)明。在本發(fā)明實(shí)施例中,調(diào)試器通過(guò)檢測(cè)程序檢測(cè)目標(biāo)機(jī)的處理器類型,并根據(jù)目標(biāo) 機(jī)的處理器類型獲取適用于該目標(biāo)機(jī)的處理器類型的調(diào)試固件,通過(guò)該調(diào)試固件接收并解 析宿主機(jī)發(fā)送的調(diào)試指令,并將調(diào)試指令發(fā)送至目標(biāo)機(jī),以控制目標(biāo)機(jī)的調(diào)試。圖2示出了本發(fā)明實(shí)施例提供的調(diào)試器的結(jié)構(gòu),為了便于說(shuō)明,僅示出了與本發(fā) 明實(shí)施例相關(guān)的部分。該調(diào)試器包括第一接口單元21,與第一接口單元21連接的微控制器 單元22和與微控制器處理單元22連接的第二接口單元23。其中第一接口單元21接收外部輸入的調(diào)試指令,還用于接收外部輸入的檢測(cè)程序和/ 或調(diào)試固件,并輸出調(diào)試固件的調(diào)試結(jié)果,或者檢測(cè)程序的檢測(cè)結(jié)果和調(diào)試固件的調(diào)試結(jié) 果。該第一接口單元21可以為USB接口單元。在本發(fā)明實(shí)施例中,該第一接口單元21接收檢測(cè)程序和/或調(diào)試固件,并接收調(diào) 試指令,該第一接口單元21輸出調(diào)試結(jié)果,或者檢測(cè)結(jié)果和調(diào)試結(jié)果。其中檢測(cè)程序用于 檢測(cè)目標(biāo)機(jī)的處理器類型,得到檢測(cè)結(jié)果。該檢測(cè)結(jié)果為目標(biāo)機(jī)的處理器類型。調(diào)試固件 用于接收并解析調(diào)試指令,將調(diào)試指令轉(zhuǎn)換成JTAG指令,以對(duì)目標(biāo)機(jī)進(jìn)行調(diào)試,得到調(diào)試結(jié)果。微控制器單元22與第一接口單元21以及第二接口單元23連接,用于運(yùn)行檢測(cè)程 序和調(diào)試固件,通過(guò)檢測(cè)程序檢測(cè)目標(biāo)機(jī)的處理器類型,通過(guò)調(diào)試固件將第一接口單元21 接收的調(diào)試指令轉(zhuǎn)換成JTAG指令,以對(duì)目標(biāo)機(jī)進(jìn)行調(diào)試,得到調(diào)試結(jié)果。在本發(fā)明實(shí)施例中,當(dāng)?shù)谝唤涌趩卧?1為USB接口單元時(shí),該微控制器單元22包 括USB控制組件221和GPIO引腳222。該USB控制組件221與USB接口單元連接,用于與 宿主機(jī)通過(guò)USB接口單元通信。GPIO引腳222用于模擬JTAG時(shí)序,以通過(guò)第二接口單元 23發(fā)送轉(zhuǎn)換得到的JTAG指令。第二接口單元23發(fā)送微控制器單元22的JTAG指令并接收根據(jù)該JTAG指令進(jìn)行 調(diào)試的調(diào)試結(jié)果。其中第二接口單元23可以為JTAG接口。在本發(fā)明另一實(shí)施例中,該調(diào)試器還包括存儲(chǔ)單元24。該存儲(chǔ)單元24存儲(chǔ)檢測(cè) 程序和/或調(diào)試固件。當(dāng)該存儲(chǔ)單元24中存儲(chǔ)有檢測(cè)程序時(shí),第一接口單元21接收的數(shù) 據(jù)包括調(diào)試固件,接收的指令包括但不限于調(diào)試指令;當(dāng)該存儲(chǔ)單元24中存儲(chǔ)有調(diào)試固件 時(shí),第一接口單元21接收的數(shù)據(jù)包括檢測(cè)程序,接收的指令包括但不限于調(diào)試指令;當(dāng)該 存儲(chǔ)單元24中存儲(chǔ)有檢測(cè)程序和調(diào)試固件時(shí),第一接口單元21接收的指令包括但不限于 調(diào)試指令。在本發(fā)明另一實(shí)施例中,該調(diào)試器還包括LED控制單元25,該LED控制單元25通 過(guò)LED燈輸出調(diào)試器當(dāng)前的狀態(tài)。圖3示出了本發(fā)明實(shí)施例提供的采用上述調(diào)試器的交叉調(diào)試系統(tǒng)的結(jié)構(gòu),為了便 于說(shuō)明,僅示出了與本發(fā)明實(shí)施例相關(guān)的部分。該交叉調(diào)試系統(tǒng)包括宿主機(jī)1,與宿主機(jī)1 連接并通信的調(diào)試器2,以及與調(diào)試器2連接并通信的目標(biāo)機(jī)3。其中宿主機(jī)1包括存儲(chǔ)單元11、檢測(cè)程序下載單元12、固件下載單元13和調(diào)試處理單 元14。該調(diào)試器2包括第一接口單元21、微控制器單元22和第二接口單元23。該第一接 口單元21可以為USB接口單元,該第二接口單元可以為JTAG接口單元。其中存儲(chǔ)單元11存儲(chǔ)檢測(cè)程序和調(diào)試固件。其中檢測(cè)程序用于檢測(cè)目標(biāo)機(jī)3的處理器 類型。調(diào)試固件用于接收并解析宿主機(jī)發(fā)送的調(diào)試指令,并將調(diào)試指令轉(zhuǎn)換成JTAG指令。 在本發(fā)明實(shí)施例中,為了具有不同類型處理器的目標(biāo)機(jī)進(jìn)行調(diào)試,可以在存儲(chǔ)單元11中存 儲(chǔ)多種適用于不同類型處理器的調(diào)試固件。檢測(cè)程序下載單元12主動(dòng)或者在調(diào)試器2的請(qǐng)求下,通過(guò)與調(diào)試器2之間的第一 接口單元21,將存儲(chǔ)單元11中存儲(chǔ)的檢測(cè)程序發(fā)送至調(diào)試器2。微控制器單元22運(yùn)行第一接口單元21接收的檢測(cè)程序,通過(guò)該檢測(cè)程序檢測(cè)目 標(biāo)機(jī)3的處理器類型,并通過(guò)第一接口單元21將目標(biāo)機(jī)3的處理器類型輸出至宿主機(jī)1。固件下載單元13在接收到調(diào)試器2輸出的目標(biāo)機(jī)3的處理器類型時(shí),獲取適用于 目標(biāo)機(jī)3的處理器類型的調(diào)試固件,并通過(guò)調(diào)試器2的第一接口單元21將適用于目標(biāo)機(jī)3 的處理器類型的調(diào)試固件下載至調(diào)試器2。調(diào)試處理單元14接收用戶輸入的調(diào)試指令,并將該調(diào)試指令發(fā)送至調(diào)試器2。其 中調(diào)試處理單元14包括調(diào)試軟件(Debug Tools)和測(cè)試軟件(Test Tools).調(diào)試軟件通 過(guò)調(diào)試器2調(diào)試目標(biāo)機(jī)3,測(cè)試軟件通過(guò)調(diào)試器2測(cè)試目標(biāo)機(jī)硬件。在本發(fā)明實(shí)施例中,當(dāng) 第一接口單元為USB接口單元時(shí),調(diào)試軟件可通過(guò)USB連接方式或者網(wǎng)絡(luò)方式與調(diào)試器2通信,測(cè)試軟件通過(guò)USB連接方式與調(diào)試器2通信。微控制器單元22在監(jiān)測(cè)到第一接口單元21接收到調(diào)試固件時(shí),運(yùn)行該調(diào)試固件, 通過(guò)該調(diào)試固件接收并解析宿主機(jī)1發(fā)送的調(diào)試指令,并將該調(diào)試指令轉(zhuǎn)換成JTAG指令 后,通過(guò)第二接口單元23發(fā)送至目標(biāo)機(jī)3,以對(duì)目標(biāo)機(jī)3進(jìn)行調(diào)試,同時(shí)通過(guò)第二接口單元 23獲取對(duì)目標(biāo)機(jī)3的調(diào)試結(jié)果,再通過(guò)第一接口單元21將該調(diào)試結(jié)果返回至宿主機(jī)1。在本發(fā)明另一實(shí)施例中,該調(diào)試器還包括LED控制單元25,該LED控制單元25通 過(guò)LED燈輸出調(diào)試器當(dāng)前的狀態(tài)。圖4示出了本發(fā)明另一實(shí)施例提供的采用上述調(diào)試器的交叉調(diào)試系統(tǒng)的結(jié)構(gòu),為 了便于說(shuō)明,僅示出了與本發(fā)明實(shí)施例相關(guān)的部分。該交叉調(diào)試系統(tǒng)包括宿主機(jī)1,與宿主 機(jī)1連接并通信的調(diào)試器2,以及與調(diào)試器2連接并通信的目標(biāo)機(jī)3。其中宿主機(jī)1包括調(diào)試處理單元14。該調(diào)試器2包括存儲(chǔ)單元24、第一接口單元21、 微控制器22和第二接口單元23。該第一解耦單元21可以為USB接口單元,該第二接口單 元可以為JTAG接口單元。其中存儲(chǔ)單元24存儲(chǔ)檢測(cè)程序和調(diào)試固件。其中檢測(cè)程序用于檢測(cè)目標(biāo)機(jī)3的處理器 類型。調(diào)試固件用于接收并解析宿主機(jī)發(fā)送的調(diào)試指令,并將調(diào)試指令轉(zhuǎn)換成JTAG指令。 在本發(fā)明實(shí)施例中,為了具有不同類型處理器的目標(biāo)機(jī)進(jìn)行調(diào)試,可以在存儲(chǔ)單元11中存 儲(chǔ)多種適用于不同類型處理器的調(diào)試固件。微控制器22運(yùn)行存儲(chǔ)單元24中存儲(chǔ)的檢測(cè)程序,通過(guò)該檢測(cè)程序檢測(cè)目標(biāo)機(jī)3 的處理器類型。微控制器22從存儲(chǔ)單元24中獲取適用于目標(biāo)機(jī)3的處理器類型的調(diào)試固件。調(diào)試處理單元14接收用戶輸入的調(diào)試指令,并將該調(diào)試指令發(fā)送至調(diào)試器2。其 中調(diào)試處理單元14包括調(diào)試軟件(Debug Tools)和測(cè)試軟件(Test Tools).調(diào)試軟件通 過(guò)調(diào)試器2調(diào)試目標(biāo)機(jī)3,測(cè)試軟件通過(guò)調(diào)試器2測(cè)試目標(biāo)機(jī)硬件。在本發(fā)明實(shí)施例中,當(dāng) 第一接口單元21為USB接口單元時(shí),調(diào)試軟件可通過(guò)USB連接方式或者網(wǎng)絡(luò)方式與調(diào)試器 2通信,測(cè)試軟件通過(guò)USB連接方式與調(diào)試器2通信。微控制器22運(yùn)行適用于目標(biāo)機(jī)3的處理器類型的調(diào)試固件,通過(guò)該調(diào)試固件接收 并解析宿主機(jī)1通過(guò)第一接口單元21發(fā)送的調(diào)試指令,并將該調(diào)試指令轉(zhuǎn)換成JTAG指令 后,通過(guò)第二接口單元23發(fā)送至目標(biāo)機(jī)3,以對(duì)目標(biāo)機(jī)3進(jìn)行調(diào)試,同時(shí)通過(guò)第二接口單元 23接收對(duì)目標(biāo)機(jī)3的調(diào)試結(jié)果,并通過(guò)第一接口單元21將調(diào)試結(jié)果輸出至宿主機(jī)1。可以理解,也可以將檢測(cè)程序存儲(chǔ)于宿主機(jī)中,將調(diào)試固件存儲(chǔ)于調(diào)試器中,還可 以將調(diào)試固件存儲(chǔ)于宿主機(jī)中,而將檢測(cè)程序存儲(chǔ)于調(diào)試器中。圖5示出了圖3所述的交叉調(diào)試系統(tǒng)的交叉調(diào)試方法的實(shí)現(xiàn)流程,在圖3所述的 交叉調(diào)試系統(tǒng)中,檢測(cè)程序和適用于不同類型處理器的調(diào)試固件均預(yù)先存儲(chǔ)于宿主機(jī)中, 其具體步驟詳述如下在步驟S501中,調(diào)試器從宿主機(jī)中下載檢測(cè)程序,并通過(guò)該檢測(cè)程序檢測(cè)目標(biāo)機(jī) 的處理器類型,調(diào)試器同時(shí)將目標(biāo)機(jī)的處理器類型輸出至宿主機(jī)。為了加快調(diào)試器與宿主機(jī)之間的通信速度,在本發(fā)明實(shí)施例中,調(diào)試器與宿主機(jī) 通過(guò)USB接口進(jìn)行通信,即調(diào)試器通過(guò)USB接口從宿主機(jī)下載檢測(cè)程序,并通過(guò)USB接口將 檢測(cè)到的目標(biāo)機(jī)的處理器類型輸出至宿主機(jī)。
在步驟S502中,宿主機(jī)根據(jù)目標(biāo)機(jī)的處理器類型,查找適用于該處理器類型的調(diào) 試固件,并將查找到的調(diào)試固件下載至調(diào)試器。在本發(fā)明實(shí)施例中,通過(guò)預(yù)先將適用于不同類型處理器的調(diào)試固件存儲(chǔ)在宿主機(jī) 中,在宿主機(jī)接收到調(diào)試器輸出的目標(biāo)機(jī)的處理器類型后,根據(jù)目標(biāo)機(jī)的處理器類型,從存 儲(chǔ)在目標(biāo)機(jī)中的調(diào)試固件中查找適用于該處理器類型的調(diào)試固件,并將查找到的調(diào)試固件 傳送至調(diào)試器。在步驟S503中,調(diào)試器通過(guò)該調(diào)試固件接收并解析宿主機(jī)發(fā)送的調(diào)試指令,并將 調(diào)試指令轉(zhuǎn)換成JTAG指令后,發(fā)送至目標(biāo)機(jī),以對(duì)目標(biāo)機(jī)進(jìn)行調(diào)試。為了對(duì)目標(biāo)機(jī)以及目標(biāo)機(jī)硬件進(jìn)行調(diào)試和測(cè)試,該宿主機(jī)中可同時(shí)包括調(diào)試軟件 和測(cè)試軟件。其中調(diào)試軟件通過(guò)調(diào)試器調(diào)試目標(biāo)機(jī);測(cè)試軟件通過(guò)調(diào)試器測(cè)試目標(biāo)機(jī)硬件。 在本發(fā)明實(shí)施例中,當(dāng)調(diào)試器與宿主機(jī)通過(guò)USB接口連接時(shí),調(diào)試軟件與調(diào)試器通過(guò)USB連 接方式或者網(wǎng)絡(luò)方式通信,測(cè)試軟件與調(diào)試器通過(guò)USB連接方式通信。由于宿主機(jī)發(fā)送的調(diào)試指令不一定都是有效的調(diào)試指令,因此,為了避免不必要 的失誤操作給系統(tǒng)調(diào)試造成影響,在本發(fā)明另一實(shí)施例中,通過(guò)監(jiān)測(cè)調(diào)試器的USB接口的 數(shù)據(jù),并判斷從USB接口接收的數(shù)據(jù)是否為有效調(diào)試指令,如果是,則將調(diào)試指令轉(zhuǎn)換成 JTAG指令后,發(fā)送至目標(biāo)機(jī),以對(duì)目標(biāo)機(jī)進(jìn)行調(diào)試,否則繼續(xù)監(jiān)測(cè)并判斷調(diào)試器的USB接口 接收的數(shù)據(jù)是否為有效的調(diào)試指令。在步驟S504中,調(diào)試器將目標(biāo)機(jī)的調(diào)試結(jié)果輸出至宿主機(jī)。在本發(fā)明實(shí)施例中,由于檢測(cè)程序和調(diào)試固件均預(yù)先內(nèi)置于宿主機(jī)中,在需要通 過(guò)調(diào)試器對(duì)目標(biāo)機(jī)進(jìn)行調(diào)試時(shí),才從宿主機(jī)中下載檢測(cè)程序,由宿主機(jī)查找適用于目標(biāo)機(jī) 的處理器類型的調(diào)試固件,并傳送至調(diào)試器,以使宿主機(jī)通過(guò)調(diào)試器中的調(diào)試固件對(duì)目標(biāo) 機(jī)進(jìn)行調(diào)試,從而使調(diào)試器可以適用于具有不同處理器類型的目標(biāo)機(jī),同時(shí)對(duì)調(diào)試器的存 儲(chǔ)空間的要求較低,降低調(diào)試器的成本,減小調(diào)試器的體積。圖6示出了圖4所述的交叉調(diào)試系統(tǒng)的交叉調(diào)試方法的實(shí)現(xiàn)流程,在圖4所述的 交叉調(diào)試系統(tǒng)中,檢測(cè)程序和適用于不同類型處理器的調(diào)試固件均預(yù)先存儲(chǔ)于調(diào)試器中, 其具體步驟詳述如下在步驟S601中,調(diào)試器通過(guò)預(yù)先存儲(chǔ)的檢測(cè)程序檢測(cè)目標(biāo)機(jī)的處理器類型。在本發(fā)明實(shí)施例中,預(yù)先將檢測(cè)程序內(nèi)置于調(diào)試器中,調(diào)試器即可通過(guò)該檢測(cè)程 序檢測(cè)目標(biāo)機(jī)的處理器類型。在步驟S602中,根據(jù)目標(biāo)機(jī)的處理器類型,獲取適用于目標(biāo)機(jī)的處理器類型的調(diào) 試固件。在本發(fā)明實(shí)施例中,由于不同類型的處理器,調(diào)試方法不盡相同,對(duì)于不同類型的 處理器,需要采用對(duì)應(yīng)的調(diào)試固件來(lái)實(shí)現(xiàn)調(diào)試過(guò)程。因此,需要根據(jù)目標(biāo)機(jī)的處理器類型, 獲取適用于目標(biāo)機(jī)的處理器類型的調(diào)試固件。在本發(fā)明實(shí)施例中,可以預(yù)先將適用于不同類型處理器的調(diào)試固件內(nèi)置于調(diào)試器 中,在檢測(cè)到目標(biāo)機(jī)的處理器類型后,調(diào)試器直接根據(jù)處理器類型獲取適用于該處理器類 型的調(diào)試固件。在步驟S603中,調(diào)試器通過(guò)該調(diào)試固件接收并解析宿主機(jī)發(fā)送的調(diào)試指令,并將 調(diào)試指令轉(zhuǎn)換成JTAG指令后,發(fā)送至目標(biāo)機(jī),以對(duì)目標(biāo)機(jī)進(jìn)行調(diào)試。
在本發(fā)明實(shí)施例中,調(diào)試器與目標(biāo)機(jī)采用EJTAG電纜連接,并通過(guò)JTAG協(xié)議進(jìn)行 通信。調(diào)試器通過(guò)該調(diào)試固件接收并解析宿主機(jī)發(fā)送的調(diào)試指令,并將該調(diào)試指令轉(zhuǎn)換成 JTAG指令后發(fā)送至目標(biāo)機(jī),以對(duì)目標(biāo)機(jī)進(jìn)行調(diào)試。為了對(duì)目標(biāo)機(jī)以及目標(biāo)機(jī)硬件進(jìn)行調(diào)試和測(cè)試,該宿主機(jī)中可同時(shí)包括調(diào)試軟件 和測(cè)試軟件。其中調(diào)試軟件通過(guò)調(diào)試器調(diào)試目標(biāo)機(jī);測(cè)試軟件通過(guò)調(diào)試器測(cè)試目標(biāo)機(jī)硬件。 在本發(fā)明實(shí)施例中,當(dāng)調(diào)試器與宿主機(jī)通過(guò)USB接口連接時(shí),調(diào)試軟件與調(diào)試器通過(guò)USB連 接方式或者網(wǎng)絡(luò)方式通信,測(cè)試軟件與調(diào)試器通過(guò)USB連接方式通信。由于宿主機(jī)發(fā)送的調(diào)試指令不一定都是有效的調(diào)試指令,因此,為了避免不必要 的失誤操作給系統(tǒng)調(diào)試造成影響,在本發(fā)明另一實(shí)施例中,通過(guò)監(jiān)測(cè)調(diào)試器的USB接口的 數(shù)據(jù),并判斷從USB接口接收的數(shù)據(jù)是否為有效調(diào)試指令,如果是,則將調(diào)試指令轉(zhuǎn)換成 JTAG指令后,發(fā)送至目標(biāo)機(jī),以對(duì)目標(biāo)機(jī)進(jìn)行調(diào)試,否則繼續(xù)監(jiān)測(cè)并判斷調(diào)試器的USB接口 接收的數(shù)據(jù)是否為有效的調(diào)試指令。在步驟S604中,調(diào)試器將目標(biāo)機(jī)的調(diào)試結(jié)果輸出至宿主機(jī)。綜上所述,本發(fā)明實(shí)施例提供的交叉調(diào)試方法包括下述步驟調(diào)試器通過(guò)檢測(cè)程序檢測(cè)目標(biāo)機(jī)的處理器類型;調(diào)試器根據(jù)所述目標(biāo)機(jī)的處理器類型,獲取適用于所述處理器類型的調(diào)試固件;調(diào)試器通過(guò)所述調(diào)試固件接收并解析宿主機(jī)發(fā)送的調(diào)試指令,并將所述調(diào)試指令 轉(zhuǎn)換成JTAG指令后,發(fā)送至目標(biāo)機(jī),控制目標(biāo)機(jī)的調(diào)試。在本發(fā)明實(shí)施例中,調(diào)試器通過(guò)檢測(cè)程序檢測(cè)與其連接的目標(biāo)機(jī)的處理器類型, 再獲取適用于該目標(biāo)機(jī)的處理器類型的調(diào)試固件,并通過(guò)該調(diào)試固件接收并解析宿主機(jī)發(fā) 送的調(diào)試指令,并將調(diào)試指令轉(zhuǎn)化成JTAG指令后,發(fā)送至目標(biāo)機(jī),以對(duì)目標(biāo)機(jī)進(jìn)行調(diào)試,從 而可方便、快捷的對(duì)不同類型處理器的目標(biāo)機(jī)進(jìn)行調(diào)試和測(cè)試。調(diào)試器與宿主機(jī)之間通過(guò) USB接口進(jìn)行通信,從而使調(diào)試器與宿主機(jī)之間的通信速度快、使用方便。通過(guò)將檢測(cè)程序 和調(diào)試固件內(nèi)置于宿主機(jī)中,在調(diào)試過(guò)程中,依次從宿主機(jī)中下載檢測(cè)程序和調(diào)試固件,從 而使調(diào)試器的硬件簡(jiǎn)單、體積小、成本低。以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精 神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
一種調(diào)試器,其特征在于,所述調(diào)試器包括第一接口單元,用于接收外部輸入的調(diào)試指令,還用于接收外部輸入的檢測(cè)程序和/或調(diào)試固件,并輸出所述調(diào)試固件的調(diào)試結(jié)果,或者所述檢測(cè)程序的檢測(cè)結(jié)果和所述調(diào)試固件的調(diào)試結(jié)果;微控制器單元,與所述第一接口單元連接,用于運(yùn)行所述檢測(cè)程序,通過(guò)所述檢測(cè)程序檢測(cè)目標(biāo)機(jī)的處理器類型,獲取適用于所述目標(biāo)機(jī)的處理器類型的調(diào)試固件,并運(yùn)行所述調(diào)試固件,通過(guò)所述調(diào)試固件將所述第一接口單元接收的調(diào)試指令轉(zhuǎn)換成JTAG指令;第二接口單元,與所述微控制器單元連接,用于發(fā)送所述微控制器單元的JTAG指令,并接收根據(jù)所述JTAG指令進(jìn)行調(diào)試的調(diào)試結(jié)果。
2.如權(quán)利要求1所述的調(diào)試器,其特征在于,所述微控制器單元還用于通過(guò)所述第一 接口單元將目標(biāo)機(jī)的處理器類型輸出,以獲取適用于所述目標(biāo)機(jī)的處理器類型的調(diào)試固 件。
3.如權(quán)利要求1或2所述的調(diào)試器,其特征在于,所述調(diào)試器還包括 存儲(chǔ)單元,用于存儲(chǔ)所述檢測(cè)程序和所述調(diào)試固件;此時(shí)所述微控制器單元還用于從所述存儲(chǔ)單元中獲取適用于所述目標(biāo)機(jī)的處理器類型的 調(diào)試固件。
4.如權(quán)利要求1所述的調(diào)試器,其特征在于,所述第一接口單元為USB接口單元,所述 第二接口單元為JTAG接口單元。
5.一種交叉調(diào)試系統(tǒng),其特征在于,所述系統(tǒng)包括權(quán)利要求1所述的調(diào)試器,以及分別 與所述調(diào)試器連接的宿主機(jī)和目標(biāo)機(jī)。
6.如權(quán)利要求5所述的系統(tǒng),其特征在于,所述宿主機(jī)包括 存儲(chǔ)單元,用于存儲(chǔ)所述檢測(cè)程序和所述調(diào)試固件;檢測(cè)程序下載單元,用于主動(dòng)或者在所述調(diào)試器的請(qǐng)求下,將所述存儲(chǔ)單元中存儲(chǔ)的 檢測(cè)程序發(fā)送至所述調(diào)試器;固件下載單元,用于在接收到所述調(diào)試器輸出的目標(biāo)機(jī)的處理器類型時(shí),獲取適用于 所述目標(biāo)機(jī)的處理器類型的調(diào)試固件,并將所述調(diào)試固件下載至所述調(diào)試器;調(diào)試處理單元,用于接收用戶輸入的調(diào)試指令,并將所述調(diào)試指令發(fā)送至所述調(diào)試器;所述調(diào)試器包括第一接口單元,用于接收檢測(cè)程序和調(diào)試固件以及調(diào)試指令,并輸出所述檢測(cè)程序的 檢測(cè)結(jié)果和所述調(diào)試固件的調(diào)試結(jié)果;所述微控制器單元運(yùn)行所述檢測(cè)程序,通過(guò)所述檢測(cè)程序檢測(cè)目標(biāo)機(jī)的處理器類型, 并將所述目標(biāo)機(jī)的處理器類型輸出至所述宿主機(jī),同時(shí)運(yùn)行所述調(diào)試固件,通過(guò)所述調(diào)試 固件將所述第一接口單元接收的調(diào)試指令轉(zhuǎn)換成JTAG指令;所述第二接口單元發(fā)送所述微控制器單元的JTAG指令,并接收根據(jù)所述JTAG指令進(jìn) 行調(diào)試的調(diào)試結(jié)果。
7.如權(quán)利要求5所述的系統(tǒng),其特征在于,所述調(diào)試器包括 存儲(chǔ)單元,用于存儲(chǔ)所述檢測(cè)程序和所述調(diào)試固件;第一接口單元,用于接收調(diào)試指令,并輸出所述調(diào)試固件的調(diào)試結(jié)果;微控制器單元,與所述第一接口單元以及存儲(chǔ)單元連接,用于運(yùn)行所述存儲(chǔ)單元中的 檢測(cè)程序,通過(guò)所述檢測(cè)程序檢測(cè)目標(biāo)機(jī)的處理器類型,并從所述存儲(chǔ)單元中獲取適用于 所述目標(biāo)機(jī)的處理器類型的調(diào)試固件,同時(shí)運(yùn)行所述調(diào)試固件,通過(guò)所述調(diào)試固件將所述 第一接口單元接收的調(diào)試指令轉(zhuǎn)換成JTAG指令;第二接口單元,與所述微控制器連接,用于發(fā)送所述微控制器單元的JTAG指令,并接 收根據(jù)所述JTAG指令進(jìn)行調(diào)試的調(diào)試結(jié)果;所述宿主機(jī)包括調(diào)試處理單元,用于接收用戶輸入的調(diào)試指令,并將所述調(diào)試指令發(fā)送至所述調(diào)試器。
8.一種交叉調(diào)試方法,其特征在于,所述交叉調(diào)試的系統(tǒng)包括宿主機(jī)、目標(biāo)機(jī)和調(diào)試 器,所述方法包括調(diào)試器通過(guò)檢測(cè)程序檢測(cè)目標(biāo)機(jī)的處理器類型;調(diào)試器根據(jù)所述目標(biāo)機(jī)的處理器類型,獲取適用于所述處理器類型的調(diào)試固件;調(diào)試器通過(guò)所述調(diào)試固件接收并解析宿主機(jī)發(fā)送的調(diào)試指令,并將所述調(diào)試指令轉(zhuǎn)換 成JTAG指令后,發(fā)送至目標(biāo)機(jī),控制目標(biāo)機(jī)的調(diào)試。
9.如權(quán)利要求8所述的方法,其特征在于,在調(diào)試器通過(guò)檢測(cè)程序檢測(cè)目標(biāo)機(jī)的處理 器類型的步驟之前,所述方法還包括調(diào)試器從宿主機(jī)中下載檢測(cè)程序。
10.如權(quán)利要求8所述的方法,其特征在于,調(diào)試器根據(jù)所述目標(biāo)機(jī)的處理器類型,獲 取適用于所述處理器類型的調(diào)試固件的步驟包括調(diào)試器將所述目標(biāo)機(jī)的處理器類型輸出至宿主機(jī);宿主機(jī)從預(yù)先存儲(chǔ)的調(diào)試固件中查找適用于所述目標(biāo)機(jī)的處理器類型的調(diào)試固件,并 將調(diào)試固件傳送至調(diào)試器。
全文摘要
本發(fā)明適用于系統(tǒng)調(diào)試領(lǐng)域,提供了一種調(diào)試器、交叉調(diào)試系統(tǒng)和方法,該調(diào)試器包括第一接口單元,用于接收檢測(cè)程序和/或調(diào)試固件以及調(diào)試指令,并輸出調(diào)試結(jié)果,或者檢測(cè)結(jié)果和調(diào)試結(jié)果;微控制器單元,與第一接口單元連接,用于運(yùn)行檢測(cè)程序,通過(guò)檢測(cè)程序檢測(cè)目標(biāo)機(jī)的處理器類型,獲取適用于目標(biāo)機(jī)的處理器類型的調(diào)試固件,并運(yùn)行該調(diào)試固件,通過(guò)該調(diào)試固件將第一接口單元接收的調(diào)試指令轉(zhuǎn)換成JTAG指令;第二接口單元,與微控制器單元連接,用于發(fā)送微控制器單元的JTAG指令,并接收調(diào)試結(jié)果。本發(fā)明由于可以根據(jù)目標(biāo)機(jī)的處理器類型采用對(duì)應(yīng)的調(diào)試固件對(duì)目標(biāo)機(jī)進(jìn)行調(diào)試,從而可方便、快捷的對(duì)不同類型處理器的目標(biāo)機(jī)進(jìn)行調(diào)試和測(cè)試。
文檔編號(hào)G06F11/36GK101930395SQ20091010836
公開(kāi)日2010年12月29日 申請(qǐng)日期2009年6月18日 優(yōu)先權(quán)日2009年6月18日
發(fā)明者桑偉 申請(qǐng)人:炬才微電子(深圳)有限公司